CLI commands

CLI กระดานงาน

openclaw workboard คือส่วนติดต่อผ่านเทอร์มินัลสำหรับ Plugin Workboard ที่มาพร้อมระบบ ช่วยให้ผู้ปฏิบัติงานแสดงรายการการ์ด สร้างการ์ด ตรวจสอบการ์ดหนึ่งใบ และสั่งให้ Gateway ที่กำลังทำงานส่งงานที่พร้อมไปยังรอบการทำงานของผู้ปฏิบัติงาน subagent

เปิดใช้ Plugin ก่อนใช้คำสั่ง:

bash
openclaw plugins enable workboardopenclaw gateway restart

การใช้งาน

bash
openclaw workboard list [--board <id>] [--status <status>] [--include-archived] [--json]openclaw workboard create <title...> [--notes <text>] [--status <status>] [--priority <priority>] [--agent <id>] [--board <id>] [--labels <items>] [--json]openclaw workboard show <id> [--json]openclaw workboard move <id> --status <status> [--json]openclaw workboard dispatch [--board <id>] [--max-starts <count>] [--admin] [--url <url>] [--token <token>] [--timeout <ms>] [--json]

คำสั่งนี้อ่านและเขียนฐานข้อมูล SQLite ที่ Plugin เป็นเจ้าของ ซึ่งเป็นฐานข้อมูลเดียวกับที่แดชบอร์ดและเครื่องมือเอเจนต์ Workboard ใช้ รหัสการ์ดเป็น UUID ส่วนคำสั่งที่รับรหัสการ์ดยังรับคำนำหน้ารหัสที่ระบุได้อย่างไม่กำกวมด้วย (เอาต์พุตข้อความแบบย่อแสดงอักขระ 8 ตัวแรก)

ค่าที่ใช้ได้สำหรับ status: triage, backlog, todo, scheduled, ready, running, review, blocked, done ค่าที่ใช้ได้สำหรับ priority: low, normal, high, urgent

list

bash
openclaw workboard listopenclaw workboard list --board default --status readyopenclaw workboard list --json

เอาต์พุตข้อความมีรูปแบบย่อ:

text
7f4a2c10  ready     high    default agent-a  แก้ไข Heartbeat ของผู้ปฏิบัติงานที่ค้างอยู่

คอลัมน์ประกอบด้วยคำนำหน้ารหัส สถานะ ลำดับความสำคัญ รหัสบอร์ด รหัสเอเจนต์ซึ่งมีหรือไม่มีก็ได้ และชื่อเรื่อง

แฟล็ก วัตถุประสงค์
--board <id> จำกัดผลลัพธ์ไว้ที่เนมสเปซของบอร์ดหนึ่งรายการ
--status <status> จำกัดผลลัพธ์ไว้ที่สถานะ Workboard หนึ่งสถานะ
--include-archived รวมการ์ดที่เก็บถาวรไว้ในเอาต์พุตข้อความแบบย่อ
--json แสดงรายการการ์ดทั้งหมดเป็น JSON สำหรับเครื่อง

โดยค่าเริ่มต้น เอาต์พุตข้อความแบบย่อจะซ่อนการ์ดที่เก็บถาวรไว้ เพื่อให้ CLI ตรงกับ /workboard list ส่ง --include-archived เพื่อแสดงการ์ดเหล่านั้น เอาต์พุต JSON จะเก็บรายการการ์ดทั้งหมดไว้เสมอ รวมถึงการ์ดที่เก็บถาวร เพื่อรองรับระบบอัตโนมัติที่มีอยู่

create

bash
openclaw workboard create "Fix stale worker heartbeat" --priority high --labels bug,workboardopenclaw workboard create "Write Workboard docs" --status ready --agent docs-agent --board docs --notes "Cover CLI, slash command, dispatch, and SQLite state."
แฟล็ก วัตถุประสงค์
--notes <text> บันทึกเริ่มต้นของการ์ด
--status <status> สถานะเริ่มต้น ค่าเริ่มต้นคือ todo
--priority <priority> ลำดับความสำคัญ ค่าเริ่มต้นคือ normal
--agent <id> มอบหมายการ์ดให้เอเจนต์หรือรหัสเจ้าของ
--board <id> จัดเก็บการ์ดในเนมสเปซของบอร์ด
--labels <items> ป้ายกำกับที่คั่นด้วยจุลภาค
--json แสดงการ์ดที่สร้างเป็น JSON สำหรับเครื่อง

create เขียนลงในสถานะ SQLite ของ Workboard โดยตรง การ์ดจะปรากฏทันทีในแท็บ Workboard ของ Control UI และในเครื่องมือ Workboard

show

bash
openclaw workboard show 7f4a2c10openclaw workboard show 7f4a2c10 --json

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

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

move

bash
openclaw workboard move 7f4a2c10 --status reviewopenclaw workboard move 7f4a2c10 --status done --json

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

dispatch

bash
openclaw workboard dispatchopenclaw workboard dispatch --jsonopenclaw workboard dispatch --max-starts 10openclaw workboard dispatch --adminopenclaw workboard dispatch --url http://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"

ก่อนอื่น dispatch จะเรียกเมธอด RPC workboard.cards.dispatch ของ Gateway ที่กำลังทำงาน ซึ่งใช้รันไทม์ subagent เดียวกับการดำเนินการส่งงานในแดชบอร์ด ดังนั้นการ์ดที่พร้อมจึงกลายเป็นรอบการทำงานของผู้ปฏิบัติงานที่ติดตามเป็นงาน พร้อมคีย์เซสชันที่เชื่อมโยงกัน --max-starts ใช้เมธอดแบบเพิ่มเติม workboard.cards.dispatchWithOptions เพื่อให้ Gateway รุ่นเก่าปฏิเสธตัวเลือกก่อนเริ่มผู้ปฏิบัติงานใดๆ หลังอัปเกรด ให้รีสตาร์ต Gateway ก่อนใช้แฟล็กนี้ การ์ดที่กำหนดเอเจนต์ไว้จะใช้คีย์เซสชัน subagent ที่จำกัดขอบเขตตามเอเจนต์ ส่วนการ์ดที่ไม่ได้กำหนดเอเจนต์จะยังคงใช้คีย์ subagent ที่ไม่จำกัดขอบเขต เพื่อคงเอเจนต์เริ่มต้นที่กำหนดค่าไว้ของ Gateway

ลูปการส่งงาน:

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

การคัดเลือกเป็นแบบระมัดระวัง โดยค่าเริ่มต้น การส่งงานหนึ่งครั้งจะเริ่มผู้ปฏิบัติงานไม่เกินสามราย ข้ามการ์ดที่เก็บถาวรหรือมีการอ้างสิทธิ์อยู่แล้ว และเริ่มการ์ดเพียงหนึ่งใบต่อเจ้าของหรือเอเจนต์ในการประมวลผลหนึ่งรอบ การ์ดที่มีเจ้าของเป็นงานที่กำลังทำงานหรืออยู่ระหว่างรีวิวจะถูกเก็บไว้สำหรับการส่งงานครั้งถัดไป ส่ง --max-starts <count> พร้อมจำนวนเต็มบวกเพื่อเปลี่ยนขีดจำกัดต่อรอบ กฎหนึ่งการ์ดต่อเจ้าของยังคงมีผล ดังนั้นจำนวนที่เริ่มจริงอาจต่ำกว่า

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

หากไม่ได้ระบุเป้าหมาย Gateway อย่างชัดเจน และ Gateway ภายในเครื่องใช้งานไม่ได้หรือยังไม่เปิดเผยเมธอดการส่งงานของ Workboard CLI จะถอยกลับไปใช้การส่งงานแบบข้อมูลเท่านั้นกับสถานะ Workboard ภายในเครื่อง การส่งงานแบบข้อมูลเท่านั้นยังคงเลื่อนลำดับการขึ้นต่อกัน ล้างการอ้างสิทธิ์ที่ค้าง และบล็อกรอบการทำงานที่หมดเวลาได้ แต่จะไม่เริ่มผู้ปฏิบัติงาน ความล้มเหลวด้านการรับรองความถูกต้อง สิทธิ์ และการตรวจสอบความถูกต้อง รวมถึงความล้มเหลวของเป้าหมาย --url หรือ --token ที่ระบุไว้อย่างชัดเจน จะถูกรายงานโดยตรงแทนการเรียกใช้การถอยกลับ

เอาต์พุตข้อความรายงานการเริ่มผู้ปฏิบัติงาน:

text
การส่งงานเสร็จสมบูรณ์: เริ่มแล้ว=2 ล้มเหลว=0

เอาต์พุตการถอยกลับระบุไว้อย่างชัดเจน:

text
Gateway ใช้งานไม่ได้; ส่งงานแบบข้อมูลเท่านั้น: เลื่อนแล้ว=1 บล็อกแล้ว=0

เอาต์พุต JSON มีผลลัพธ์การส่งงาน การส่งงานที่รองรับโดย Gateway อาจมี started และ startFailures ส่วนการถอยกลับแบบข้อมูลเท่านั้นมี gatewayUnavailable: true โทเค็นการอ้างสิทธิ์ถูกปกปิดจากเอาต์พุต JSON ของการ์ด

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

ความสอดคล้องกับคำสั่งแบบทับ

ช่องทางที่รองรับคำสั่งสามารถใช้คำสั่งแบบทับที่ตรงกัน:

text
/workboard list/workboard show 7f4a2c10/workboard create แก้ไข Heartbeat ของผู้ปฏิบัติงานที่ค้างอยู่/workboard move 7f4a2c10 --status review/workboard dispatch

การส่งงานด้วยคำสั่งแบบทับยังใช้รันไทม์ subagent ของ Gateway จึงมีพฤติกรรมการอ้างสิทธิ์ การเริ่มผู้ปฏิบัติงาน และความล้มเหลวเช่นเดียวกับเส้นทาง Gateway ของแดชบอร์ดและ CLI

/workboard list และ /workboard show เป็นคำสั่งอ่านสำหรับผู้ส่งคำสั่งที่ได้รับอนุญาต /workboard create, /workboard move และ /workboard dispatch แก้ไขสถานะบอร์ด และต้องมีสถานะเจ้าของบนส่วนติดต่อแชต หรือเป็นไคลเอนต์ Gateway ที่มี operator.write หรือ operator.admin

สิทธิ์

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

คำสั่ง list, create, show และ move ภายในเครื่องทำงานกับไดเรกทอรีสถานะ OpenClaw ภายในเครื่องที่โปรไฟล์ปัจจุบันใช้ ใช้ --dev หรือ --profile <name> กับคำสั่งระดับบนสุด openclaw เมื่อต้องการใช้รูทสถานะอื่น

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

ไม่มีการ์ดปรากฏ

ยืนยันว่าเปิดใช้ Plugin สำหรับโปรไฟล์และรูทสถานะเดียวกัน:

bash
openclaw plugins inspect workboard --runtime --json

หากแดชบอร์ดแสดงการ์ดแต่ CLI ไม่แสดง ให้ตรวจสอบว่าทั้งสองคำสั่งใช้การตั้งค่า --dev หรือ --profile เดียวกัน

การส่งงานระบุว่าเป็นแบบข้อมูลเท่านั้น

เริ่มหรือรีสตาร์ต Gateway:

bash
openclaw gateway restartopenclaw gateway status --deep

จากนั้นลอง openclaw workboard dispatch อีกครั้ง การถอยกลับแบบข้อมูลเท่านั้นมีประโยชน์สำหรับการล้างสถานะภายในเครื่อง แต่รอบการทำงานของผู้ปฏิบัติงานต้องใช้ Gateway ที่ทำงานอยู่

การส่งงานไม่เริ่มสิ่งใด

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

bash
openclaw workboard list --status ready

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

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

Was this useful?
On this page

On this page