Agent coordination
เป้าหมาย
เป้าหมาย
เป้าหมาย คือวัตถุประสงค์ระยะยาวหนึ่งรายการที่แนบกับเซสชัน OpenClaw ปัจจุบัน เป้าหมายทำให้เอเจนต์และผู้ดำเนินการมีจุดหมายร่วมกันสำหรับงานที่ใช้เวลานาน โดยไม่เปลี่ยนจุดหมายนั้นให้เป็นงานเบื้องหลัง การแจ้งเตือน งาน Cron หรือ คำสั่งถาวร
เป้าหมายเป็นสถานะของเซสชัน โดยจะย้ายไปพร้อมกับคีย์เซสชัน คงอยู่หลังจาก
เริ่มกระบวนการใหม่ และปรากฏใน /goal เครื่องมือเป้าหมายสำหรับโมเดล และส่วนท้ายของ TUI
ผลลัพธ์เมื่อคำสั่งแบบแยกส่วนเสร็จสิ้นจะส่งกลับไปยังเธรดสำหรับผู้ใช้ต้นทาง ดังนั้น เทิร์นถัดไปจะยังคงเห็นเป้าหมายเดิม แม้ว่าการเรียกใช้คำสั่งจะใช้ เซสชันนโยบายแซนด์บ็อกซ์แยกต่างหาก
เริ่มต้นอย่างรวดเร็ว
/goal start ทำให้ CI ผ่านสำหรับ PR 87469 และพุชการแก้ไข/goal/goal edit ทำให้ CI ผ่านสำหรับ PR 87469 พุชการแก้ไข และอัปเดตเอกสาร/goal pause กำลังรอ CI/goal resume/goal complete พุชและตรวจสอบแล้ว/goal clearstart เป็นตัวเลือก: /goal get CI green for PR 87469 ก็สร้างเป้าหมายเช่นกัน
เนื่องจากข้อความใดๆ หลัง /goal ที่ไม่ใช่คำสั่งการทำงานที่รู้จักจะถือเป็น
วัตถุประสงค์ใหม่
เป้าหมายมีไว้เพื่ออะไร
ใช้เป้าหมายเมื่อเซสชันมีผลลัพธ์ที่ชัดเจนซึ่งควรแสดงให้เห็นอยู่เสมอ ตลอดหลายเทิร์น:
- การปิดงาน PR: แก้ไข ตรวจสอบ autoreview พุช และเปิดหรืออัปเดต PR
- การดีบัก: ทำให้บั๊กเกิดซ้ำ ระบุส่วนที่เป็นเจ้าของ แพตช์ และ พิสูจน์การแก้ไข
- การจัดทำเอกสาร: อ่านเอกสารที่เกี่ยวข้อง เขียนหน้าใหม่ เชื่อมโยงข้ามหน้า และ ตรวจสอบบิลด์เอกสาร
- งานบำรุงรักษา: ตรวจสอบสถานะปัจจุบัน ทำการเปลี่ยนแปลงในขอบเขตที่จำกัด เรียกใช้ การตรวจสอบที่เหมาะสม และรายงานสิ่งที่เปลี่ยนแปลง
เป้าหมายไม่ใช่คิวงาน ใช้ Task Flow, งาน, งาน Cron หรือ คำสั่งถาวร เมื่องานควรทำงานแบบแยกส่วน ทำซ้ำตามกำหนดเวลา กระจายออกเป็นงานย่อยที่มีการจัดการ หรือคงอยู่ในรูปแบบนโยบาย
ข้อมูลอ้างอิงคำสั่ง
/goal ที่ไม่มีอาร์กิวเมนต์จะแสดงข้อมูลสรุปเป้าหมายปัจจุบัน:
เป้าหมายสถานะ: ใช้งานอยู่วัตถุประสงค์: ทำให้ CI ผ่านสำหรับ PR 87469 และพุชการแก้ไขโทเค็นที่ใช้: 12kงบประมาณโทเค็น: 12k/50k คำสั่ง: /goal edit <objective>, /goal pause, /goal complete, /goal clear| คำสั่ง | ผลลัพธ์ |
|---|---|
/goal หรือ /goal status |
แสดงเป้าหมายปัจจุบัน |
/goal start <objective> |
สร้างเป้าหมายใหม่สำหรับเซสชันปัจจุบัน |
/goal set <objective>, /goal create <objective> |
ชื่อแทนสำหรับ start |
/goal <objective> |
สร้างเป้าหมายใหม่เช่นกัน (ข้อความใดๆ ที่ไม่ใช่คำสั่งการทำงานที่รู้จัก) |
/goal edit <objective> |
เรียบเรียงวัตถุประสงค์ปัจจุบันใหม่ โดยคงสถานะและการนับโทเค็นไว้ |
/goal pause [note] |
หยุดเป้าหมายที่ใช้งานอยู่ชั่วคราว |
/goal resume [note] |
ดำเนินเป้าหมายที่หยุดชั่วคราว ถูกบล็อก ถูกจำกัดการใช้งาน หรือถูกจำกัดงบประมาณต่อ |
/goal complete [note] |
ทำเครื่องหมายว่าบรรลุเป้าหมายแล้ว |
/goal done [note] |
ชื่อแทนสำหรับ complete |
/goal block [note] |
ทำเครื่องหมายว่าเป้าหมายถูกบล็อก |
/goal blocked [note] |
ชื่อแทนสำหรับ block |
/goal clear |
นำเป้าหมายออกจากเซสชัน |
แต่ละเซสชันมีเป้าหมายได้ครั้งละหนึ่งรายการเท่านั้น การเริ่มเป้าหมายที่สองจะล้มเหลว
พร้อม Goal error: goal already exists จนกว่าจะล้างเป้าหมายปัจจุบัน
/goal start ไม่รองรับแฟล็กงบประมาณโทเค็น โดยตั้งงบประมาณได้เฉพาะ
ผ่านเครื่องมือ create_goal สำหรับโมเดลเท่านั้น
สถานะ
active: เซสชันกำลังดำเนินการตามเป้าหมายpaused: ผู้ดำเนินการหยุดเป้าหมายชั่วคราว โดย/goal resumeจะทำให้เป้าหมายกลับมาใช้งาน อีกครั้งblocked: เอเจนต์หรือผู้ดำเนินการรายงานสิ่งที่ขัดขวางจริง โดย/goal resumeจะทำให้เป้าหมายกลับมาใช้งานอีกครั้งเมื่อมีข้อมูลหรือสถานะใหม่budget_limited: ใช้งบประมาณโทเค็นที่กำหนดไว้ครบแล้ว โดย/goal resumeจะเริ่มดำเนินการจากวัตถุประสงค์เดิมอีกครั้งด้วยช่วงงบประมาณใหม่usage_limited: สงวนไว้สำหรับสถานะหยุดเนื่องจากขีดจำกัดการใช้งานในอนาคต โดย/goal resumeจะเริ่มดำเนินการอีกครั้งในลักษณะเดียวกันcomplete: บรรลุเป้าหมายแล้ว เป้าหมายที่เสร็จสมบูรณ์เป็นสถานะสิ้นสุด ให้ใช้/goal clearก่อนเริ่มเป้าหมายอื่น
/new และ /reset จะล้างเป้าหมายของเซสชันปัจจุบัน เนื่องจากคำสั่งเหล่านี้ตั้งใจ
เริ่มบริบทเซสชันใหม่
งบประมาณโทเค็น
เป้าหมายสามารถมีงบประมาณโทเค็นจำนวนบวกที่เป็นตัวเลือกได้ โดยตั้งค่าผ่าน
พารามิเตอร์ token_budget ของเครื่องมือ create_goal งบประมาณวัดจาก
จำนวนโทเค็นล่าสุดของเซสชัน ณ เวลาที่สร้างเป้าหมาย หากเซสชันมีเพียง
สแนปช็อตโทเค็นที่ล้าสมัยหรือไม่ทราบค่าเมื่อเริ่มเป้าหมาย OpenClaw จะรอ
สแนปช็อตล่าสุดครั้งถัดไปและใช้ค่านั้นเป็นค่าฐาน เพื่อไม่ให้นับโทเค็นที่ใช้ก่อน
มีเป้าหมายรวมในงบประมาณ
เมื่อการใช้งานถึงงบประมาณ เป้าหมายจะเปลี่ยนเป็น budget_limited การดำเนินการนี้
ไม่ลบเป้าหมายหรือล้างวัตถุประสงค์ แต่จะแจ้งผู้ดำเนินการและ
เอเจนต์ว่าจะไม่มีการดำเนินการตามเป้าหมายอย่างต่อเนื่องอีกจนกว่าจะดำเนินการต่อหรือ
ล้างเป้าหมาย การดำเนินการต่อจะเริ่มช่วงงบประมาณใหม่จากจำนวนโทเค็นล่าสุด
ในปัจจุบัน
งบประมาณโทเค็นเป็นข้อจำกัดป้องกันสำหรับเป้าหมายของเซสชัน ไม่ใช่เพดานการเรียกเก็บเงิน โควตาของ ผู้ให้บริการ การรายงานค่าใช้จ่าย และพฤติกรรมของหน้าต่างบริบทยังคงใช้การควบคุม การใช้งานและโมเดลตามปกติของ OpenClaw
เครื่องมือโมเดล
OpenClaw เปิดเผยเครื่องมือเป้าหมายสามรายการแก่ชุดควบคุมเอเจนต์:
| เครื่องมือ | วัตถุประสงค์ |
|---|---|
get_goal |
อ่านเป้าหมายของเซสชันปัจจุบัน ได้แก่ สถานะ วัตถุประสงค์ การใช้โทเค็น และงบประมาณโทเค็น |
create_goal |
สร้างเป้าหมายเฉพาะเมื่อผู้ใช้หรือคำสั่งระบบร้องขออย่างชัดเจนเท่านั้น จะล้มเหลวหากเซสชันมีเป้าหมายอยู่แล้ว |
update_goal |
ทำเครื่องหมายเป้าหมายเป็น complete หรือ blocked |
โมเดลไม่สามารถหยุดชั่วคราว ดำเนินการต่อ ล้าง หรือแทนที่เป้าหมายโดยไม่แจ้งได้ การดำเนินการเหล่านี้ยังคงเป็น
การควบคุมของผู้ดำเนินการ/เซสชันผ่าน /goal และคำสั่งรีเซ็ต เพื่อให้เอเจนต์
สามารถรายงานการบรรลุผลหรือสิ่งที่ขัดขวางจริงโดยไม่เปลี่ยน
จุดหมายอย่างเงียบๆ
update_goal ควรทำเครื่องหมายเป้าหมายเป็น complete เฉพาะเมื่อบรรลุ
วัตถุประสงค์จริงแล้วเท่านั้น และควรทำเครื่องหมายเป้าหมายเป็น blocked เฉพาะหลังจาก
เงื่อนไขที่ขัดขวางเดิมเกิดซ้ำอย่างน้อยสามเทิร์นของเป้าหมายติดต่อกัน ไม่ใช่เพราะ
ความยากลำบากทั่วไปหรือยังเก็บรายละเอียดไม่เรียบร้อย
บริบทเป้าหมายในทุกเทิร์น
ทุกเทิร์นของผู้ใช้/แชตที่มีเป้าหมายที่ใช้งานอยู่จะมีบรรทัดบริบทบทบาทผู้ใช้นี้:
เป้าหมายที่ใช้งานอยู่: <objective> — ดำเนินการต่อหรืออัปเดตสถานะ (get_goal/update_goal)OpenClaw รักษาบรรทัดให้กระชับโดยตัดทอนวัตถุประสงค์ที่ยาว เป้าหมายที่หยุดชั่วคราว ถูกบล็อก ถูกจำกัดงบประมาณ ถูกจำกัดการใช้งาน และเสร็จสมบูรณ์จะไม่ถูกแทรก เพื่อให้การหยุดของผู้ดำเนินการยังมีผลจนกว่าจะดำเนินเป้าหมายต่อ
UI ควบคุม
UI ควบคุมบนเว็บแสดงเป้าหมายเป็นแถบขนาดกะทัดรัดเหนือช่องเขียนแชต:
ไอคอนสถานะ ป้ายสถานะ (ตัวอย่างเช่น Pursuing goal) วัตถุประสงค์
ที่ถูกตัดทอน และตัวจับเวลาที่ผ่านไปแบบสด
แถบนี้มีตัวควบคุมแบบอินไลน์:
- ดินสอ เติม
/goal edit <objective>ลงในช่องเขียนล่วงหน้าเพื่อให้ เรียบเรียงและส่งวัตถุประสงค์ใหม่ได้ - หยุดชั่วคราว / ดำเนินการต่อ สลับระหว่าง
/goal pauseและ/goal resumeตาม สถานะปัจจุบัน - ถังขยะ ส่ง
/goal clear - เครื่องหมายบั้ง ขยายแถบเพื่อแสดงวัตถุประสงค์ฉบับเต็ม หมายเหตุสถานะ ล่าสุด การใช้โทเค็น และเวลาที่ผ่านไป
ปุ่มการดำเนินการจะถูกซ่อนขณะที่ช่องเขียนไม่สามารถส่งได้ (ตัวอย่างเช่น เมื่อการเชื่อมต่อ Gateway ขัดข้อง) แต่เครื่องหมายบั้งสำหรับขยายยังคงทำงาน
TUI
ส่วนท้ายของ TUI จะแสดงเป้าหมายของเซสชันที่ใช้งานอยู่ถัดจากช่องเอเจนต์ เซสชัน และโมเดล ก่อนตัวบ่งชี้โทเค็น/โหมด
ตัวอย่างส่วนท้าย:
Pursuing goal (12k/50k)สำหรับเป้าหมายที่ใช้งานอยู่ซึ่งมีงบประมาณโทเค็นGoal paused (/goal resume)สำหรับเป้าหมายที่หยุดชั่วคราวGoal blocked (/goal resume)สำหรับเป้าหมายที่ถูกบล็อกGoal hit usage limits (/goal resume)สำหรับเป้าหมายที่ถูกจำกัดการใช้งานGoal unmet (50k/50k)สำหรับเป้าหมายที่ถูกจำกัดงบประมาณGoal achieved (42k)สำหรับเป้าหมายที่เสร็จสมบูรณ์
ส่วนท้ายออกแบบให้กะทัดรัด ใช้ /goal เพื่อดูวัตถุประสงค์ฉบับเต็ม
หมายเหตุ งบประมาณโทเค็น และคำสั่งที่ใช้ได้
พฤติกรรมของช่องทาง
/goal ทำงานในเซสชัน OpenClaw ที่รองรับคำสั่ง รวมถึง TUI และ
พื้นผิวแชตที่อนุญาตคำสั่งข้อความ สถานะเป้าหมายแนบอยู่กับ
คีย์เซสชัน ไม่ใช่การรับส่ง ดังนั้นสองพื้นผิวที่ใช้คีย์เซสชันร่วมกันจะเห็น
เป้าหมายเดียวกัน
สถานะเป้าหมายไม่ใช่คำสั่งการส่ง: สถานะนี้ไม่บังคับให้ตอบกลับผ่าน ช่องทาง ไม่เปลี่ยนพฤติกรรมคิว ไม่อนุมัติเครื่องมือ และไม่กำหนดเวลางาน
การแก้ไขปัญหา
| ข้อความ | ความหมาย |
|---|---|
Goal error: goal already exists |
เซสชันมีเป้าหมายอยู่แล้ว ใช้ /goal เพื่อตรวจสอบ ใช้ /goal complete หากเสร็จแล้ว หรือใช้ /goal clear ก่อนเริ่มวัตถุประสงค์อื่น |
Goal error: goal not found |
เซสชันยังไม่มีเป้าหมาย เริ่มเป้าหมายด้วย /goal start <objective> |
Goal error: goal is already complete |
เป้าหมายอยู่ในสถานะสิ้นสุด ล้างเป้าหมายก่อนเริ่มหรือดำเนินวัตถุประสงค์อื่นต่อ |
หากการใช้โทเค็นแสดง 0 หรือดูเหมือนล้าสมัย เซสชันที่ใช้งานอยู่อาจยังไม่มี
สแนปช็อตโทเค็นล่าสุด การใช้งานจะรีเฟรชเมื่อ OpenClaw บันทึกการใช้งานเซสชัน
และผลรวมที่คำนวณจากบทสนทนา