Agent coordination
เป้าหมาย
เป้าหมาย
เป้าหมาย คือวัตถุประสงค์ระยะยาวหนึ่งรายการที่ผูกกับเซสชัน OpenClaw ปัจจุบัน เป้าหมายช่วยให้เอเจนต์และผู้ควบคุมมีจุดหมายร่วมกันสำหรับงานที่ใช้เวลานาน โดยไม่เปลี่ยนจุดหมายนั้นให้เป็นงานเบื้องหลัง การเตือน งาน Cron หรือ คำสั่งถาวร
เป้าหมายเป็นสถานะของเซสชัน โดยจะย้ายไปพร้อมคีย์เซสชัน คงอยู่แม้เริ่ม
กระบวนการใหม่ และปรากฏใน /goal เครื่องมือเป้าหมายสำหรับโมเดล และส่วนท้ายของ
TUI
เริ่มต้นอย่างรวดเร็ว
/goal start get CI green for PR 87469 and push the fix/goal/goal edit get CI green for PR 87469, push the fix, and update docs/goal pause waiting for CI/goal resume/goal complete pushed and verified/goal clearstart เป็นตัวเลือก: /goal get CI green for PR 87469 ก็สร้างเป้าหมายเช่นกัน
เนื่องจากข้อความใดก็ตามหลัง /goal ที่ไม่ใช่คำสั่งการทำงานที่รู้จักจะถือเป็น
วัตถุประสงค์ใหม่
เป้าหมายมีไว้เพื่ออะไร
ใช้เป้าหมายเมื่อเซสชันมีผลลัพธ์ที่เป็นรูปธรรมซึ่งควรแสดงให้เห็นอยู่เสมอ ตลอดหลายรอบการโต้ตอบ:
- การปิดงาน PR: แก้ไข ตรวจสอบ autoreview พุช และเปิดหรืออัปเดต PR
- การดีบัก: ทำให้บั๊กเกิดซ้ำ ระบุส่วนที่เป็นเจ้าของ แพตช์ และ พิสูจน์ว่าการแก้ไขได้ผล
- การดำเนินงานเอกสาร: อ่านเอกสารที่เกี่ยวข้อง เขียนหน้าใหม่ เชื่อมโยงข้ามหน้า และ ตรวจสอบการบิลด์เอกสาร
- งานบำรุงรักษา: ตรวจสอบสถานะปัจจุบัน ทำการเปลี่ยนแปลงในขอบเขตที่จำกัด เรียกใช้ การตรวจสอบที่เหมาะสม และรายงานสิ่งที่เปลี่ยนแปลง
เป้าหมายไม่ใช่คิวงาน ใช้ โฟลว์งาน, งาน, งาน Cron หรือ คำสั่งถาวร เมื่องานควรทำงานแยกจากเซสชัน ทำซ้ำตามกำหนดเวลา กระจายเป็นงานย่อยที่มีการจัดการ หรือคงอยู่เป็นนโยบาย
ข้อมูลอ้างอิงคำสั่ง
/goal ที่ไม่มีอาร์กิวเมนต์จะแสดงข้อมูลสรุปเป้าหมายปัจจุบัน:
GoalStatus: activeObjective: get CI green for PR 87469 and push the fixTokens used: 12kToken budget: 12k/50k Commands: /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 เฉพาะเมื่อ
เงื่อนไขที่ขัดขวางเดิมเกิดซ้ำติดต่อกันอย่างน้อยสามรอบของเป้าหมาย ไม่ใช่เพราะ
ความยากลำบากทั่วไปหรือรายละเอียดที่ยังไม่สมบูรณ์
บริบทเป้าหมายในทุกการโต้ตอบ
ทุกการโต้ตอบของผู้ใช้หรือแชตที่มีเป้าหมายทำงานอยู่จะมีบรรทัดบริบทในบทบาทผู้ใช้ดังนี้:
Active goal: <objective> — advance it or update its status (get_goal/update_goal).OpenClaw ทำให้บรรทัดนี้กระชับด้วยการตัดวัตถุประสงค์ที่ยาว เป้าหมายที่หยุดชั่วคราว ถูกบล็อก ถูกจำกัดงบประมาณ ถูกจำกัดการใช้งาน และเสร็จสมบูรณ์จะไม่ถูกแทรก ดังนั้นคำสั่งหยุดของผู้ควบคุมจะยังมีผลจนกว่าจะดำเนินเป้าหมายต่อ
ส่วนติดต่อควบคุม
ส่วนติดต่อควบคุมบนเว็บแสดงเป้าหมายเป็นแถบขนาดกะทัดรัดเหนือช่องเขียนข้อความแชต:
ไอคอนสถานะ ป้ายสถานะ (เช่น 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 บันทึกการใช้งานของเซสชัน
และยอดรวมที่คำนวณจากบันทึกบทสนทนา