Plugin guides

Plugin กระดานงาน

Plugin Workboard เพิ่มบอร์ดสไตล์ Kanban ที่เป็นตัวเลือกให้กับ Control UI: การ์ดงานขนาดเหมาะกับเอเจนต์ การมอบหมายให้เอเจนต์ และลิงก์กลับไปยังงาน การรัน และเซสชันแดชบอร์ดของการ์ด

Workboard ได้รับการออกแบบให้มีขนาดเล็กโดยตั้งใจ โดยติดตามงานปฏิบัติการภายในเครื่องสำหรับ OpenClaw Gateway หนึ่งตัว ไม่ได้มีไว้แทน GitHub Issues, Linear, Jira หรือ ระบบจัดการโครงการของทีมอื่นๆ

เปิดใช้งาน

Workboard รวมมาให้แล้วแต่ปิดใช้งานเป็นค่าเริ่มต้น:

  1. เปิด Plugins ใน Control UI หรือใช้ /settings/plugins โดยอิงตาม พาธฐานของ Control UI ที่กำหนดค่าไว้ ตัวอย่างเช่น พาธฐาน /openclaw จะใช้ /openclaw/settings/plugins
  2. ค้นหา Workboard แล้วเลือก Enable เนื่องจาก Workboard รวมอยู่ใน OpenClaw แล้ว จึงไม่ต้องใช้การดำเนินการ Install
  3. หาก UI แจ้งว่าต้องรีสตาร์ต ให้รีสตาร์ต Gateway

แท็บ Workboard จะปรากฏในแถบนำทางของแดชบอร์ดหลังจากรันไทม์ของ Plugin โหลดเสร็จ ขณะที่ปิดใช้งาน แท็บนี้จะถูกซ่อนจากการนำทาง การเปิดเส้นทาง /workboard โดยตรงขณะที่ Plugin ปิดใช้งานหรือถูกบล็อกโดย plugins.allow/plugins.deny จะแสดงสถานะว่า Plugin ไม่พร้อมใช้งานแทนข้อมูล การ์ด

ขั้นตอน CLI ที่เทียบเท่ากันคือ:

bash
openclaw plugins enable workboardopenclaw gateway restartopenclaw dashboard

การกำหนดค่า

Workboard ไม่มีการกำหนดค่าเฉพาะสำหรับ Plugin ให้เปิด/ปิดใช้งานด้วยรายการ Plugin มาตรฐาน:

json5
{  plugins: {    entries: {      workboard: {        enabled: true,        config: {},      },    },  },}
bash
openclaw plugins disable workboardopenclaw gateway restart

ฟิลด์ของการ์ด

ฟิลด์ ค่า
status triage, backlog, todo, scheduled, ready, running, review, blocked, done
priority low, normal, high, urgent
labels สตริงรูปแบบอิสระ
agentId เอเจนต์ที่มอบหมายซึ่งระบุหรือไม่ก็ได้
การอ้างอิงที่ลิงก์ไว้ งาน การรัน เซสชัน หรือ URL ต้นทางที่ระบุหรือไม่ก็ได้
execution เมตาดาทาที่ระบุหรือไม่ก็ได้สำหรับการรัน Codex/Claude ที่เริ่มจากการ์ด (เอนจิน โหมด โมเดล เซสชัน การรัน id สถานะ)

นอกจากนี้ การ์ดยังมีเมตาดาทาแบบกระชับสำหรับความพยายาม ความคิดเห็น ลิงก์ หลักฐาน อาร์ติแฟกต์ การตั้งค่าระบบอัตโนมัติ ไฟล์แนบ บันทึกของเวิร์กเกอร์ สถานะโปรโตคอล ของเวิร์กเกอร์ การอ้างสิทธิ์ การวินิจฉัย การแจ้งเตือน id เทมเพลต สถานะการเก็บถาวร และ การตรวจหาเซสชันที่ล้าสมัย รวมถึงรายการเหตุการณ์ล่าสุด (created, edited, moved, linked, specified, decomposed, claimed, heartbeat, execution_updated, attempt_started, attempt_updated, comment_added, link_added, proof_added, artifact_added, attachment_added, diagnostic, notification, dispatch, orchestration, protocol_violation, archived, unarchived, stale) เมตาดาทานี้ช่วยให้ ผู้ปฏิบัติงานดูได้ว่าการ์ดเคลื่อนผ่านบอร์ดอย่างไรโดยไม่ต้องเปิดเซสชันที่ลิงก์ไว้ เมตาดาทานี้เป็นบริบทการปฏิบัติงานภายในเครื่อง ไม่ใช่สิ่งทดแทนข้อความถอดเสียงของ เซสชันหรือประวัติ GitHub issue

Plugin และ Control UI ใช้สัญญาการ์ด Workboard เดียวกัน ดังนั้นการรีเฟรชแดชบอร์ด จึงคงที่มาและสิทธิ์กำกับของเวิร์กสเปซ สถานะการอ้างสิทธิ์ การดำเนินการวินิจฉัย และหมายเลขลำดับการแจ้งเตือน แทนที่จะฉายสำเนาการ์ดขนาดเล็กกว่าที่ใช้เฉพาะ UI ระบบจะเพิกเฉยต่อชนิดการวินิจฉัย ระดับความรุนแรงของการวินิจฉัย และ ชนิดการแจ้งเตือนที่ไม่รู้จัก จนกว่าทั้งสองส่วนจะรองรับ โดยจะไม่เขียนค่าเหล่านี้ ใหม่ให้เป็นสถานะอื่นที่ถูกต้อง

แดชบอร์ดที่เปิดอยู่จะอัปเดตจากการทำให้ plugin.workboard.changed ใช้ไม่ได้ แต่ละ เหตุการณ์มีเพียงยุคและหมายเลขแก้ไขของที่เก็บ จากนั้น UI จะอ่านการ์ดฉบับมาตรฐาน อีกครั้งผ่าน RPC operator.read ตามปกติ หมายเลขแก้ไขหลายรายการจะถูกรวมเป็น การอ่านติดตามผลครั้งเดียว Workboard จะเลื่อนการอ่านนั้นออกไปขณะที่กำลังลาก แก้ไข หรือเขียนการ์ด แล้วดำเนินการต่อหลังจากการโต้ตอบภายในเครื่องเสร็จสิ้น การเชื่อมต่อใหม่จะโหลดข้อมูลฉบับมาตรฐานอีกครั้งเสมอ ไม่มีการสำรวจข้อมูลการ์ด ทั้งหมดเป็นกิจวัตร และ Refresh ยังคงพร้อมใช้สำหรับการกู้คืนด้วยตนเอง

เมื่อมีมากกว่าหนึ่งบอร์ด แถบเครื่องมือจะมีตัวกรอง Board ซึ่งอิงกับ เมตาดาทาของบอร์ดที่จัดเก็บถาวร แทนที่จะอิงเฉพาะการ์ดที่มองเห็นอยู่ในขณะนั้น ดังนั้นจึงยังเลือกบอร์ดที่ว่างและบอร์ดที่เก็บถาวรได้ การ์ดที่ไม่มี id บอร์ดอย่างชัดเจนจะอยู่ในบอร์ดฉบับมาตรฐาน default บอร์ดที่เลือกจะถูกจัดเก็บ ในพารามิเตอร์คิวรี ?board= จึงสามารถบุ๊กมาร์กหรือแชร์ URL ของ Workboard ที่กรองแล้วได้ การเลือก All boards จะลบพารามิเตอร์นี้

การ์ดจะถูกจัดเก็บในสถานะ Gateway ของ Plugin เอง และย้ายไปพร้อมกับสถานะ OpenClaw ส่วนที่เหลือของ Gateway นั้น (ดู พื้นที่จัดเก็บ)

การเริ่มงานจากการ์ด

การ์ดที่ยังไม่ได้ลิงก์สามารถเริ่มงานได้โดยตรง:

  • Run Codex / Run Claude เริ่มการรันเอเจนต์ที่มีการติดตามงานด้วย เอนจินที่ระบุอย่างชัดเจน ส่งพรอมต์ของการ์ด และทำเครื่องหมายการ์ดเป็น running การรัน Codex ใช้ openai/gpt-5.6-sol; การรัน Claude ใช้ anthropic/claude-sonnet-4-6
  • Open Codex / Open Claude สร้างเซสชันแดชบอร์ดที่ลิงก์ไว้โดยไม่ ส่งพรอมต์ของการ์ดหรือย้ายการ์ด สำหรับงานแบบดำเนินการเองที่ยังคง เชื่อมโยงกับบอร์ด

การเริ่มแบบอัตโนมัติใช้เส้นทางการรันเอเจนต์ที่มีการติดตามงานของ Gateway (ใช้เอเจนต์และโมเดลเริ่มต้น เว้นแต่จะเลือก Codex/Claude อย่างชัดเจน) จากนั้น Workboard จะลิงก์งานที่ได้ id การรัน และคีย์เซสชันกลับไปยังการ์ด การดำเนินการที่ลิงก์ไว้ แต่ละครั้งยังบันทึกสรุปความพยายาม (เอนจิน โหมด โมเดล id การรัน การประทับเวลา สถานะ จำนวนความล้มเหลวสะสม) เพื่อให้ยังมองเห็นความล้มเหลวซ้ำๆ ได้

แดชบอร์ดจะรีเฟรชสถานะงานจากบัญชีแยกประเภทงานของ Gateway โดยจับคู่งาน กับการ์ดตาม id งาน id การรัน หรือคีย์เซสชันที่ลิงก์ไว้ งานที่อยู่ในคิว/กำลังทำงาน จะทำให้วงจรชีวิตของการ์ดยังคงทำงานอยู่ ส่วนงานที่เสร็จสิ้น ล้มเหลว หมดเวลา หรือ ถูกยกเลิกจะย้ายการ์ดไปยัง review หรือ blocked โดยใช้กฎการซิงค์เดียวกัน กับเซสชันที่ลิงก์ไว้ (ดู การซิงค์วงจรชีวิตของเซสชัน)

เครื่องมือเอเจนต์

เครื่องมือ วัตถุประสงค์
workboard_list แสดงรายการการ์ดแบบย่อพร้อมสถานะการอ้างสิทธิ์/การวินิจฉัย และกรองตามบอร์ดได้ตามต้องการ
workboard_read ส่งคืนการ์ดหนึ่งใบพร้อมบริบทของผู้ปฏิบัติงานที่จำกัดขอบเขต (บันทึก ความพยายาม ความคิดเห็น ลิงก์ หลักฐาน อาร์ติแฟกต์ ผลลัพธ์ของรายการแม่ งานล่าสุดของผู้รับมอบหมาย และการวินิจฉัยที่ทำงานอยู่)
workboard_create สร้างการ์ดโดยกำหนดรายการแม่ ผู้เช่า Skills บอร์ด เมทาดาทาของเวิร์กสเปซ คีย์ idempotency ขีดจำกัดรันไทม์ และงบประมาณการลองใหม่ได้ตามต้องการ
workboard_link เชื่อมโยงการ์ดแม่กับการ์ดลูก การ์ดลูกจะคงอยู่ในสถานะ todo จนกว่าการ์ดแม่ทุกรายการจะถึง done จากนั้นการเลื่อนขั้นโดยการจัดส่งจะย้ายการ์ดเหล่านั้นไปยัง ready
workboard_claim อ้างสิทธิ์การ์ดสำหรับเอเจนต์ที่เรียกใช้ และย้าย backlog/todo/ready ไปยัง running
workboard_heartbeat รีเฟรช Heartbeat ของการอ้างสิทธิ์ระหว่างการทำงานที่ใช้เวลานานกว่า
workboard_release ปลดการอ้างสิทธิ์หลังเสร็จสิ้น หยุดพัก หรือส่งมอบงาน และสามารถย้ายการ์ดไปยังสถานะถัดไปได้
workboard_complete / workboard_block เครื่องมือวงจรชีวิตแบบมีโครงสร้างสำหรับสรุปขั้นสุดท้าย หลักฐาน อาร์ติแฟกต์ และรายการการ์ดที่สร้างขึ้น (ต้องอ้างอิงการ์ดที่เชื่อมโยงกลับมายังการ์ดที่เสร็จสมบูรณ์) หรือเหตุผลที่ขัดขวางการทำงาน
workboard_attachment_add / workboard_attachment_read / workboard_attachment_delete จัดเก็บไฟล์แนบขนาดเล็กของการ์ดในสถานะ SQLite ของ Plugin ทำดัชนีบนการ์ด และแสดงในบริบทของผู้ปฏิบัติงาน
workboard_worker_log / workboard_protocol_violation บันทึกบรรทัดล็อกของผู้ปฏิบัติงานและบล็อกการ์ดเมื่อผู้ปฏิบัติงานอัตโนมัติหยุดโดยไม่เรียก workboard_complete/workboard_block
workboard_board_create / workboard_board_archive / workboard_board_delete จัดการเมทาดาทาของบอร์ดที่บันทึกถาวร (ชื่อที่แสดง คำอธิบาย สถานะการเก็บถาวร และเวิร์กสเปซเริ่มต้น)
workboard_runs ส่งคืนประวัติความพยายามรันที่บันทึกถาวรสำหรับการ์ด
workboard_specify เปลี่ยนการ์ดคัดกรอง/แบ็กล็อกแบบคร่าว ๆ ให้เป็นการ์ด todo ที่ชัดเจนขึ้น และบันทึกสรุปข้อกำหนดไว้ในการ์ด
workboard_decompose แตกการ์ดควบคุมงานแม่ออกเป็นการ์ดลูกที่เชื่อมโยงกัน โดยสืบทอดเมทาดาทาของบอร์ด/ผู้เช่า และสามารถทำให้การ์ดแม่เสร็จสมบูรณ์พร้อมรายการการ์ดที่สร้างขึ้น
workboard_notify_subscribe / workboard_notify_list / workboard_notify_events / workboard_notify_advance / workboard_notify_unsubscribe จัดการการสมัครรับการแจ้งเตือน การอ่านเหตุการณ์สามารถเล่นซ้ำได้อย่างปลอดภัย ส่วน advance จะเลื่อนเคอร์เซอร์ถาวรเพื่อให้ผู้เรียกทำงานต่อได้โดยไม่สูญเสียหรืออ่านเหตุการณ์การ์ดที่เสร็จสิ้น/ล้มเหลว/ค้างซ้ำ
workboard_boards / workboard_stats ตรวจสอบเนมสเปซของบอร์ดและสถิติคิว
workboard_promote / workboard_reassign / workboard_reclaim กู้คืนหรือส่งมอบงานที่ติดค้าง
workboard_comment / workboard_proof เพิ่มบันทึกการส่งมอบงานหรือแนบข้อมูลอ้างอิงหลักฐาน/อาร์ติแฟกต์
workboard_unblock ย้ายงานที่ถูกบล็อกกลับไปยัง todo
workboard_move ย้ายการ์ดไปยังสถานะอื่น โดยการ์ดที่ถูกอ้างสิทธิ์กำหนดให้ผู้เรียกต้องมีขอบเขตการอ้างสิทธิ์ของเอเจนต์
workboard_dispatch กระตุ้นการเลื่อนขั้นตามการขึ้นต่อกันหรือการล้างการอ้างสิทธิ์ที่ค้างโดยไม่เปิดใช้ผู้ปฏิบัติงาน ส่วนการเปิดใช้ผู้ปฏิบัติงานใช้การจัดส่งผ่าน Gateway หรือคำสั่งแบบเครื่องหมายทับ

สถานะหลักฐานเป็นผลลัพธ์ที่ผู้ปฏิบัติงานรายงาน ไม่ใช่การตรวจสอบอิสระ รายการ passed หมายความว่าผู้ปฏิบัติงานรายงานว่าคำสั่งหรือการตรวจสอบของตนสำเร็จ ผู้ใช้งานที่ต้องการ เกณฑ์คุณภาพแบบอิสระควรตรวจสอบคำสั่ง URL หรืออาร์ติแฟกต์ที่แนบมา และ เรียกใช้ตัวตรวจสอบของตนเอง workboard_proof จะส่งคืน proofId ของระเบียนใหม่ เมื่อ workboard_complete รายงานสถานะสิ้นสุดของหลักฐานเดียวกันนั้น ให้ส่ง proofId เพื่อให้ ระเบียนที่รอดำเนินการได้รับการแก้ไข ณ ตำแหน่งเดิมโดยไม่สูญเสียข้อมูลประจำตัวหรือการประทับเวลา หลักฐานที่ มีสถานะสิ้นสุดเดียวกันอยู่แล้วจะถูกนำกลับมาใช้โดยไม่เปลี่ยนแปลง หลักฐานการเสร็จสมบูรณ์ที่ไม่มี proofId จะยังคงเป็นแบบเพิ่มต่อท้ายเท่านั้น ดังนั้นการลองใหม่ในภายหลังจึงไม่สามารถเขียนทับประวัติเก่าเพียงเพราะ คำสั่งหรือบันทึกเหมือนกัน

การ์ดที่ถูกอ้างสิทธิ์จะปฏิเสธการแก้ไขผ่านเครื่องมือเอเจนต์จากเอเจนต์อื่น เว้นแต่ผู้เรียก จะถือโทเค็นการอ้างสิทธิ์ที่ workboard_claim ส่งคืน การ์ดทุกใบที่ส่งคืนโดย เครื่องมือเอเจนต์หรือการเรียก Gateway RPC จะปกปิด metadata.claim.token เป็น [redacted] (ตัวโทเค็นจะถูกส่งคืนเพียงครั้งเดียวที่ระดับบนสุดจาก workboard_claim เท่านั้น) เพื่อให้ผู้ดูแลแดชบอร์ดและเอเจนต์อื่นตรวจสอบสถานะการอ้างสิทธิ์ได้โดยไม่เคย เห็นโทเค็นที่ใช้งานได้ การกู้คืนดำเนินการผ่าน workboard_promote/workboard_reassign/workboard_reclaim ซึ่ง ไม่ต้องใช้โทเค็น

การจัดส่ง

การจัดส่งทำงานภายใน Gateway โดยไม่สร้างโพรเซส OS ใด ๆ ตามอำเภอใจ เซสชันเอเจนต์ย่อย ตามปกติของ OpenClaw ยังคงเป็นเจ้าของการดำเนินการ การจัดส่งหนึ่งรอบจะ:

  1. เลื่อนขั้นการ์ดที่การขึ้นต่อกันพร้อมแล้ว
  2. บันทึกเมทาดาทาการจัดส่งในการ์ดที่พร้อม
  3. บล็อกการอ้างสิทธิ์ที่หมดอายุหรือการรันที่หมดเวลา
  4. ทำเครื่องหมายการ์ดคัดกรองที่กำหนดค่าโดยบอร์ดเป็นตัวเลือกสำหรับการควบคุมงาน
  5. อ้างสิทธิ์การ์ดที่พร้อมจำนวนเล็กน้อยเป็นชุด และเริ่มการรันของผู้ปฏิบัติงานผ่าน รันไทม์เอเจนต์ย่อยของ Gateway

ผู้ปฏิบัติงานจะได้รับบริบทของการ์ดที่จำกัดขอบเขต พร้อมโทเค็นการอ้างสิทธิ์ที่จำเป็นต่อการส่ง Heartbeat ทำให้เสร็จสมบูรณ์ หรือบล็อกการ์ดผ่านเครื่องมือ Workboard

พาธของเวิร์กสเปซเป็นไปตามสิทธิ์ระบบไฟล์ที่มีอยู่ของผู้เรียก ไคลเอนต์ Gateway ที่มี operator.write สามารถใช้เวิร์กสเปซของเอเจนต์ที่กำหนดค่าไว้ ส่วนไคลเอนต์ operator.admin สามารถใช้เช็กเอาต์อื่นบนโฮสต์ได้ เครื่องมือเอเจนต์ที่อยู่ในแซนด์บ็อกซ์ใช้ สิทธิ์เข้าถึงเวิร์กสเปซของแซนด์บ็อกซ์ ขณะที่เครื่องมือเฉพาะเวิร์กสเปซที่ไม่อยู่ในแซนด์บ็อกซ์ใช้ รูทเวิร์กสเปซที่กำหนดค่าไว้ Workboard จะบันทึกสิทธิ์ดังกล่าวเมื่อมีการ กำหนดเวิร์กสเปซ และหาจุดตัดกับสิทธิ์ปัจจุบันของผู้เรียกอีกครั้งในขณะจัดส่ง ดังนั้นการ์ดที่บันทึกถาวรจึงไม่สามารถขยายสิทธิ์เข้าถึงของผู้เรียกในภายหลังได้ การ์ดเก่าที่มี เวิร์กสเปซโฮสต์ระบุไว้อย่างชัดเจนแต่ไม่มีสิทธิ์ที่บันทึกไว้ ต้องบันทึกเวิร์กสเปซนั้น ใหม่ก่อนการจัดส่งแบบเต็มโฮสต์ ส่วนการ์ดที่ไม่มีพาธโฮสต์จะนำ สิทธิ์ของผู้เรียกปัจจุบันมาใช้เมื่อจัดส่งครั้งแรก

การจัดส่งที่ผูกกับเวิร์กสเปซจะยอมรับไดเรกทอรีหรือเช็กเอาต์ Git เฉพาะเมื่อ รูทของรีโพซิทอรีตรงกับเวิร์กสเปซเอเจนต์เป้าหมายทุกประการ คำขอ worktree จะถูกจำกัดให้เหลือไดเรกทอรีนั้นและบันทึกถาวรเป็นเวิร์กสเปซแบบไดเรกทอรี เพื่อให้ โฮสต์ไม่สร้างเช็กเอาต์หรือเรียกใช้โค้ดตั้งค่ารีโพซิทอรี ผู้ปฏิบัติงานเป้าหมาย ต้องใช้แซนด์บ็อกซ์ Docker ที่เขียนได้และไม่ใช้ร่วมกันสำหรับเวิร์กสเปซนั้นโดยเฉพาะ โดยไม่มีการดำเนินการแบบยกระดับ การแทนที่การเรียกใช้โฮสต์/Node ที่บันทึกถาวร หรือ เครื่องมือ Plugin และ MCP ที่ยังไม่ได้จัดประเภท Workboard จะแจกแจงเครื่องมือที่ลงทะเบียนไว้ แทนการเชื่อถือคำนำหน้า workboard_* และการจัดส่งจะปฏิเสธคอนเทนเนอร์ Docker ที่กำลังทำงานหากแฮชเมานต์/การกำหนดค่าจริงของคอนเทนเนอร์นั้นล้าสมัย การจัดส่งจะรายงาน นโยบายเป้าหมายที่ไม่เข้ากันแทนการเริ่มผู้ปฏิบัติงานที่มีข้อจำกัดน้อยกว่า การจัดส่งแบบเต็มโฮสต์สามารถกำหนดเป้าหมายเช็กเอาต์ภายในเครื่องอื่น ๆ และคงการตั้งค่า worktree ที่มีการจัดการตามปกติไว้

สิทธิ์ของเวิร์กสเปซไม่ได้สร้างโมเดลสิทธิ์วงจรชีวิตของการ์ดชุดที่สอง ผู้เรียกที่แก้ไขการ์ด Workboard ได้สามารถย้ายการ์ดผ่านสถานะเดียวกัน ด้วยตนเองบนทุกพื้นผิว ส่วนสิทธิ์เข้าถึงเวิร์กสเปซแบบอ่านอย่างเดียวจะป้องกันเฉพาะ การจัดส่งผู้ปฏิบัติงานที่ต้องใช้สิทธิ์เขียน

การเลือกผู้ปฏิบัติงาน

แต่ละรอบจะเริ่ม worker ไม่เกิน 3 ตัวโดยค่าเริ่มต้น การ์ดที่พร้อมจะเรียงตาม ลำดับความสำคัญ ตามด้วยตำแหน่ง และเวลาที่สร้าง แต่ละรอบจะเริ่มเพียงหนึ่งการ์ดต่อ เจ้าของ/เอเจนต์ และข้ามเจ้าของที่มีงานกำลังทำงานหรือรอรีวิวอยู่บน บอร์ดแล้ว การ์ดที่เก็บถาวรแล้ว การ์ดที่มีการอ้างสิทธิ์อยู่ และการ์ดที่ไม่ได้อยู่ในสถานะ ready จะไม่ถูกเลือกเพื่อเริ่ม worker (แต่ยังอาจได้รับผลจาก ส่วนข้อมูลของการ dispatch ได้แก่ การล้างการอ้างสิทธิ์ที่ค้าง การเลื่อนสถานะการขึ้นต่อกัน และการล้างงานที่หมดเวลา)

คีย์เซสชันจะกำหนดแบบตายตัวต่อบอร์ด/การ์ด ดังนั้นการ dispatch ซ้ำจะกำหนดเส้นทาง กลับไปยังเลน worker เดิม แทนที่จะสร้างเซสชันที่ไม่เกี่ยวข้องกัน:

  • การ์ดที่กำหนดผู้รับผิดชอบแล้ว: agent:<agentId>:subagent:workboard-<boardId>-<cardId>
  • การ์ดที่ยังไม่ได้กำหนดผู้รับผิดชอบ: subagent:workboard-<boardId>-<cardId> (Gateway จะระบุ เอเจนต์เริ่มต้นที่กำหนดค่าไว้)

หากไม่สามารถเริ่ม worker ได้หลังจากอ้างสิทธิ์การ์ดแล้ว Workboard จะบล็อก การ์ด ล้างการอ้างสิทธิ์ บันทึกความล้มเหลวในการเริ่มรัน และเพิ่มบรรทัด บันทึกของ worker ซึ่งมองเห็นได้ในแดชบอร์ด, JSON ของ CLI, เครื่องมือเอเจนต์ และ ข้อมูลวินิจฉัยของการ์ด

จุดเริ่มต้น

  • การดำเนินการ dispatch ในแดชบอร์ด
  • openclaw workboard dispatch
  • /workboard dispatch บนช่องทางที่รองรับคำสั่ง

ทั้งสามรายการใช้รันไทม์ซับเอเจนต์ของ Gateway เมื่อ Gateway พร้อมใช้งาน CLI มีทางเลือกสำรองสำหรับผู้ดำเนินการหนึ่งแบบ: หากการเรียก Gateway ล้มเหลวด้วย ข้อผิดพลาดการเชื่อมต่อ/ไม่พร้อมใช้งาน (หรือข้อผิดพลาด unknown method สำหรับ Gateway รุ่นเก่า) และไม่มีเป้าหมาย --url/--token ที่ระบุอย่างชัดเจน รวมถึงไม่มี Gateway ระยะไกลที่กำหนดค่าไว้ (OPENCLAW_GATEWAY_URL หรือ gateway.mode: remote) ที่มีผล CLI จะเรียกใช้ การ dispatch เฉพาะข้อมูลกับสถานะ SQLite ในเครื่อง โดยสามารถเลื่อนสถานะการขึ้นต่อกัน ล้างการอ้างสิทธิ์ที่ค้าง และบล็อกการรันที่หมดเวลาได้ แต่ไม่สามารถเริ่ม worker ได้ ความล้มเหลวด้านการยืนยันตัวตน สิทธิ์ และการตรวจสอบความถูกต้องจาก Gateway ที่เข้าถึงได้จะไม่ถือว่า ไม่พร้อมใช้งาน แต่จะแสดงเป็นข้อผิดพลาดของคำสั่ง เช่นเดียวกับความล้มเหลวใดๆ ของ Gateway เมื่อมีการระบุเป้าหมาย --url/--token อย่างชัดเจน

ข้อมูลเมตาของบอร์ดสามารถตั้งค่า autoDecompose, autoDecomposePerDispatch, defaultAssignee และ orchestratorProfile ได้ OpenClaw จะบันทึกเจตนานี้และ แสดงในบริบทของ worker ส่วนการระบุข้อกำหนด/การแยกย่อยงานจริงยังคงดำเนินการ ผ่านเครื่องมือ Workboard ตามปกติ

CLI และคำสั่งแบบสแลช

bash
openclaw workboard list [--board <id>] [--status <status>] [--include-archived] [--json]openclaw workboard create "Fix stale card lifecycle" --priority high --labels bug,workboardopenclaw workboard show <card-id> [--json]openclaw workboard move <card-id> --status <status> [--json]openclaw workboard dispatch [--board <id>] [--json]

เอาต์พุตข้อความ list จะซ่อนการ์ดที่เก็บถาวรแล้วโดยค่าเริ่มต้น (--include-archived ใช้แทนค่าเริ่มต้นนี้ได้) ส่วน --json จะรวมการ์ดที่เก็บถาวรแล้วเสมอ ซึ่งตรงกับสัญญา การ์ดแบบเต็มที่สคริปต์เดิมใช้อยู่ show และ move รองรับคำนำหน้า id ที่ระบุได้อย่างไม่กำกวม list, create, show และ move จะอ่าน/เขียนสถานะ Plugin ในเครื่องโดยตรงเสมอ เฉพาะ dispatch เท่านั้นที่เรียก Gateway ที่กำลังทำงาน พร้อมทางเลือกสำรอง ตามที่อธิบายไว้ข้างต้น

ดูแฟล็กทั้งหมด เอาต์พุต JSON พฤติกรรมทางเลือกสำรองของ Gateway การจัดการคำนำหน้า id กฎการเลือกสำหรับ dispatch และการแก้ไขปัญหาได้ที่ CLI ของ Workboard

/workboard list, /workboard show <card-id>, /workboard create <title>, /workboard move <card-id> --status <status> และ /workboard dispatch ทำงานสอดคล้องกับ CLI การแสดงรายการและการแสดงรายละเอียดเป็นการอ่านข้อมูลสำหรับผู้ส่งคำสั่งที่ได้รับอนุญาตทุกคน การสร้าง การย้าย และการ dispatch ต้องมีสถานะเจ้าของบนพื้นผิวแชต หรือเป็นไคลเอนต์ Gateway ที่มี operator.write/operator.admin การย้ายโดยผู้ดำเนินการด้วยตนเองใช้ พฤติกรรมแทนที่การอ้างสิทธิ์แบบเดียวกับการลากแล้ววางในแดชบอร์ด การเข้าถึง worktree ยังคงเป็นไปตามขอบเขตเวิร์กสเปซเดียวกันที่อธิบายไว้ข้างต้น

การซิงค์วงจรชีวิตของเซสชัน

การ์ดสามารถเชื่อมโยงกับเซสชันแดชบอร์ดที่มีอยู่ หรือเซสชันที่สร้างขึ้นเมื่อ เริ่มงานจากการ์ด การ์ดที่เชื่อมโยงจะแสดงวงจรชีวิตของเซสชันในบรรทัด: กำลังทำงาน ค้าง เชื่อมโยงแต่ไม่ได้ใช้งาน เสร็จสิ้น ล้มเหลว หรือไม่พบ นอกจากนี้ยังสามารถบันทึก เซสชันที่มีอยู่จากแท็บเซสชันด้วย เพิ่มไปยัง Workboard การ์ดจะ เชื่อมโยงกับเซสชันนั้น ใช้ป้ายกำกับเซสชันหรือพรอมต์ล่าสุดของผู้ใช้เป็นชื่อเรื่อง และเติมบันทึกเริ่มต้นจากพรอมต์ล่าสุดของผู้ใช้ร่วมกับคำตอบล่าสุดของผู้ช่วย เมื่อมีข้อมูล

หากเซสชันที่เชื่อมโยงหายไป การ์ดจะยังคงเชื่อมโยงไว้เพื่อรักษาบริบท และ ยังมีตัวควบคุมเริ่มต้นให้เริ่มใหม่ในเซสชันใหม่ หากเซสชันที่เชื่อมโยงและกำลังใช้งาน หยุดรายงานกิจกรรมล่าสุด Workboard จะทำเครื่องหมายการ์ดเป็น stale และจัดเก็บเป็นข้อมูลเมตาจนกว่าวงจรชีวิตจะล้างข้อมูลดังกล่าว

ขณะที่การ์ดอยู่ในสถานะงานที่กำลังดำเนินอยู่ Workboard จะติดตามเซสชันที่เชื่อมโยง:

สถานะเซสชันที่เชื่อมโยง สถานะการ์ด
กำลังใช้งาน running
เสร็จสมบูรณ์ review
ล้มเหลว ถูกยุติ หมดเวลา หรือถูกยกเลิก blocked

สถานะรีวิวด้วยตนเองมีผลเหนือกว่า การย้ายการ์ดไปยัง review, blocked หรือ done จะหยุดการซิงค์อัตโนมัติสำหรับการ์ดนั้นจนกว่าจะย้ายกลับไปยัง todo หรือ running

การเริ่มการ์ดจะใช้เซสชัน Gateway ตามปกติ Workboard จะจัดเก็บเฉพาะ ข้อมูลเมตาและลิงก์ของการ์ด บันทึกบทสนทนา การเลือกโมเดล และวงจรชีวิต ของการรันยังคงอยู่ภายใต้การจัดการของระบบเซสชันตามปกติ ใช้ หยุด บนการ์ดที่เชื่อมโยง และกำลังทำงานเพื่อยกเลิกการรันที่กำลังใช้งาน Workboard จะทำเครื่องหมายการ์ดนั้นเป็น blocked เพื่อให้ ยังคงมองเห็นได้สำหรับการติดตามผล

การ์ดใหม่สามารถเริ่มจากเทมเพลต Workboard (bugfix, docs, release, pr_review, plugin) เทมเพลตจะกรอกชื่อเรื่อง บันทึก ป้ายกำกับ และลำดับความสำคัญไว้ล่วงหน้า โดยจัดเก็บ id ของเทมเพลตเป็นข้อมูลเมตาของการ์ด

เวิร์กโฟลว์ในแดชบอร์ด

  1. เปิดแท็บ Workboard ใน Control UI
  2. สร้างการ์ดพร้อมชื่อเรื่อง บันทึก ลำดับความสำคัญ ป้ายกำกับ เอเจนต์ที่ระบุหรือไม่ระบุก็ได้ และ เซสชันที่เชื่อมโยงซึ่งระบุหรือไม่ระบุก็ได้ หรือเปิดเซสชันแล้วเลือก เพิ่มไปยัง Workboard สำหรับเซสชันที่มีอยู่
  3. ลากการ์ดระหว่างคอลัมน์ หรือโฟกัสตัวควบคุมสถานะแบบกะทัดรัดแล้วใช้ เมนูหรือ ArrowLeft/ArrowRight ขณะลาก การ์ดต้นทางจะจางลงและ คอลัมน์ที่พร้อมรับการวางจะแสดงเส้นขอบ
  4. เริ่มงานจากการ์ดเพื่อสร้างหรือใช้เซสชันแดชบอร์ดซ้ำ
  5. เปิดเซสชันที่เชื่อมโยงจากการ์ดขณะที่เอเจนต์กำลังทำงาน
  6. ปล่อยให้การซิงค์วงจรชีวิตย้ายงานที่กำลังทำงานไปยัง review/blocked จากนั้น ย้ายการ์ดไปยัง done ด้วยตนเองเมื่อยอมรับงานแล้ว

การวินิจฉัย

การวินิจฉัยคำนวณจากข้อมูลเมตาของการ์ดในเครื่อง การตรวจสอบในตัวจะแจ้งเตือน:

ประเภท เงื่อนไข
stranded_ready การ์ด todo/backlog/ready ที่กำหนดผู้รับผิดชอบแล้วและไม่ได้อัปเดตมานานกว่า 1 ชั่วโมง
running_without_heartbeat การ์ด running ที่ไม่มี Heartbeat ของการอ้างสิทธิ์หรือการอัปเดตการดำเนินงานมานานกว่า 20 นาที
blocked_too_long การ์ด blocked ที่ไม่ได้อัปเดตมานานกว่า 24 ชั่วโมง
repeated_failures จำนวนความล้มเหลวที่ติดตามของการ์ดถึง 2 ครั้งขึ้นไป
missing_proof การ์ด done ที่ไม่มีหลักฐาน อาร์ติแฟกต์ หรือไฟล์แนบ
orphaned_session การ์ด running ที่มี sessionKey แต่ไม่มีข้อมูลเมตา execution

สิทธิ์

เมธอด RPC ของ Gateway อยู่ภายใต้ workboard.*:

ขอบเขต เมธอด
operator.read cards.list, cards.export, cards.diagnostics, แสดงรายการ/รับไฟล์แนบ, อ่านเหตุการณ์การแจ้งเตือน, boards.list, cards.stats, cards.runs
operator.write cards.diagnostics.refresh, สร้าง/อัปเดต/ย้าย/ลบ/แสดงความคิดเห็น/เชื่อมโยง/linkDependency/หลักฐาน/อาร์ติแฟกต์, เพิ่ม/ลบไฟล์แนบ, บันทึก worker, การละเมิดโปรโตคอล, อ้างสิทธิ์/Heartbeat/ปล่อย/เลื่อนสถานะ/กำหนดใหม่/เรียกคืน/ทำให้เสร็จ/บล็อก/ยกเลิกการบล็อก, cards.dispatch, cards.bulk, เก็บถาวร, boards.upsert/archive/delete, cards.specify/decompose, สมัครรับ/ลบ/เลื่อนการแจ้งเตือน

ไม่มีเมธอด RPC ใดต้องใช้ operator.admin เบราว์เซอร์ที่เชื่อมต่อด้วยสิทธิ์ ผู้ดำเนินการแบบอ่านอย่างเดียวสามารถตรวจสอบบอร์ดได้ แต่ไม่สามารถแก้ไขการ์ดได้ ขอบเขตผู้ดูแลระบบ จะขยายพาธโฮสต์ Workboard ที่ยอมรับ แต่ไม่เปลี่ยนเมธอดที่พร้อมใช้งาน

พื้นที่จัดเก็บ

Workboard จัดเก็บข้อมูลถาวรไว้ในฐานข้อมูล SQLite เชิงสัมพันธ์ที่ Plugin เป็นเจ้าของ ภายใต้ไดเรกทอรีสถานะของ OpenClaw ได้แก่ บอร์ด การ์ด ป้ายกำกับ เหตุการณ์วงจรชีวิต ความพยายามรัน ความคิดเห็น ลิงก์การขึ้นต่อกัน หลักฐาน การอ้างอิงอาร์ติแฟกต์ ข้อมูลเมตาและบล็อบของไฟล์แนบ การวินิจฉัย การแจ้งเตือน บันทึก worker สถานะโปรโตคอล และการสมัครรับข้อมูล ทั้งหมดอยู่ในตารางของ Workboard (ไม่ใช่ รายการคีย์-ค่าของ Plugin) การส่งออกการ์ดจะรักษาเรื่องราวของบอร์ดไว้ โดยไม่ฝังเนื้อหาบล็อบของไฟล์แนบ

การติดตั้งที่เคยใช้ Workboard ในรุ่น .28 สามารถเรียกใช้ openclaw doctor --fix เพื่อย้ายเนมสเปซสถานะ Plugin แบบเดิมที่เผยแพร่แล้ว (workboard.cards, workboard.boards, workboard.notify และหากมี workboard.attachments) ไปยังฐานข้อมูลเชิงสัมพันธ์

การแก้ไขปัญหา

แท็บแจ้งว่า Workboard ไม่พร้อมใช้งาน

bash
openclaw plugins inspect workboard --runtime --json

หากกำหนดค่า plugins.allow ไว้ ให้เพิ่ม workboard ลงไป หาก plugins.deny มี workboard ให้ลบออกก่อนเปิดใช้งาน Plugin

ไม่สามารถบันทึกการ์ด

ตรวจสอบว่าการเชื่อมต่อของเบราว์เซอร์มีสิทธิ์ operator.write เซสชันผู้ดำเนินการ แบบอ่านอย่างเดียวสามารถแสดงรายการการ์ดได้ แต่ไม่สามารถสร้าง แก้ไข ย้าย หรือลบการ์ด

การเริ่มการ์ดไม่เปิดเซสชันที่คาดไว้

ตรวจสอบ id เอเจนต์และเซสชันที่เชื่อมโยงของการ์ด จากนั้นเปิดเซสชันหรือแชตเพื่อ ตรวจสอบสถานะการรันจริง

การ dispatch ไม่เริ่ม worker

ตรวจสอบว่ามีการ์ด ready อย่างน้อยหนึ่งใบที่ไม่มีการอ้างสิทธิ์อยู่:

bash
openclaw workboard list --status ready

หาก CLI รายงานการ dispatch เฉพาะข้อมูล ให้เริ่มหรือรีสตาร์ต Gateway แล้ว ลองอีกครั้ง การ dispatch เฉพาะข้อมูลจะอัปเดตสถานะบอร์ดในเครื่อง แต่ไม่สามารถเริ่ม การรัน worker ของซับเอเจนต์ได้ นอกจากนี้ การ์ดอาจถูกข้ามเมื่อมีการ์ดอื่นของ เจ้าของหรือเอเจนต์เดียวกันกำลังทำงานหรือรอรีวิวอยู่ ให้ทำงานที่กำลังใช้งานนั้น ให้เสร็จ บล็อก หรือปล่อยการอ้างสิทธิ์ก่อน dispatch งานเพิ่มเติมสำหรับเจ้าของ คนเดียวกัน

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page