Sessions and memory
ข้อผูกพันที่อนุมานได้
Commitments คือความทรงจำสำหรับการติดตามผลที่มีอายุสั้น เมื่อเปิดใช้งาน OpenClaw สามารถ สังเกตได้ว่าบทสนทนาก่อให้เกิดโอกาสในการกลับมาติดตามในอนาคต และจดจำ เพื่อนำกลับมากล่าวถึงในภายหลัง
ตัวอย่าง:
- กล่าวถึงการสัมภาษณ์ในวันพรุ่งนี้ OpenClaw อาจกลับมาสอบถามหลังจากนั้น
- บอกว่ารู้สึกหมดแรง OpenClaw อาจถามภายหลังว่าได้นอนหลับหรือไม่
- เอเจนต์บอกว่าจะติดตามผลหลังจากมีบางอย่างเปลี่ยนแปลง OpenClaw อาจติดตาม เรื่องที่ยังค้างอยู่นั้น
Commitments ไม่ใช่ข้อเท็จจริงถาวรอย่าง MEMORY.md และไม่ใช่การแจ้งเตือน
ที่กำหนดไว้อย่างแม่นยำ แต่มีสถานะอยู่ระหว่างความทรงจำกับระบบอัตโนมัติ โดย OpenClaw จะจดจำ
ภาระผูกพันที่เชื่อมโยงกับบทสนทนา จากนั้น Heartbeat จะส่งมอบเมื่อถึงกำหนด
เปิดใช้งาน Commitments
Commitments ปิดอยู่โดยค่าเริ่มต้น (commitments.enabled: false) เปิดใช้งานในการกำหนดค่า:
openclaw config set commitments.enabled trueopenclaw config set commitments.maxPerDay 3openclaw.json ที่เทียบเท่า:
{ "commitments": { "enabled": true, "maxPerDay": 3 }}commitments.maxPerDay จำกัดจำนวนการติดตามผลที่อนุมานได้ซึ่งสามารถส่งมอบ
ต่อเซสชันของเอเจนต์ภายในช่วงหนึ่งวันแบบต่อเนื่อง ค่าเริ่มต้นคือ 3
วิธีการทำงาน
หลังจากเอเจนต์ตอบกลับ OpenClaw อาจเรียกใช้กระบวนการแยกข้อมูลเบื้องหลังที่ซ่อนอยู่ใน บริบทแยกต่างหากโดยปิดใช้งานเครื่องมือ กระบวนการนี้จะค้นหาเฉพาะ Commitments สำหรับการติดตามผลที่อนุมานได้เท่านั้น โดยจะไม่เขียนลงในบทสนทนาที่มองเห็น และไม่ขอให้เอเจนต์หลัก ใช้เหตุผลเกี่ยวกับการแยกข้อมูลดังกล่าว
เมื่อพบรายการที่มีความเชื่อมั่นสูง OpenClaw จะจัดเก็บ Commitment พร้อมข้อมูลต่อไปนี้:
- รหัสเอเจนต์
- คีย์เซสชัน
- ช่องทางเดิมและเป้าหมายการส่งมอบ
- ช่วงเวลาครบกำหนด
- ข้อความติดตามสั้นๆ ที่แนะนำ
- ข้อมูลเมตาที่ไม่ใช่คำสั่ง เพื่อให้ Heartbeat ตัดสินใจว่าจะส่งหรือไม่
การส่งมอบเกิดขึ้นผ่าน Heartbeat เมื่อ Commitment ถึงกำหนด Heartbeat
จะเพิ่ม Commitment ลงในรอบการทำงานของ Heartbeat สำหรับเอเจนต์และขอบเขตช่องทางเดียวกัน
พรอมต์จะเตือนอย่างชัดเจนว่าข้อมูลเมตาของ Commitment ไม่น่าเชื่อถือ และกำชับ
ไม่ให้โมเดลทำตามคำสั่งในข้อมูลดังกล่าวหรือใช้เครื่องมือเพราะข้อมูลนั้น
โมเดลสามารถส่งข้อความติดตามที่เป็นธรรมชาติหนึ่งข้อความ หรือตอบ HEARTBEAT_OK เพื่อยกเลิก
หากกำหนดค่า Heartbeat ด้วย target: "none" Commitments ที่ถึงกำหนดจะยังคง
เป็นข้อมูลภายในและจะไม่ส่งข้อความติดตามออกไปภายนอก พรอมต์การส่งมอบ Commitment จะไม่
เล่นข้อความบทสนทนาเดิมซ้ำ แต่จะมีเพียงข้อความติดตามที่แนะนำและ
ข้อมูลเมตาเท่านั้น และรอบ Heartbeat สำหรับ Commitment ที่ถึงกำหนดจะทำงานโดยไม่มีเครื่องมือของ OpenClaw
OpenClaw จะไม่ส่งมอบ Commitment ที่อนุมานได้ทันทีหลังจากบันทึก เวลาครบกำหนดจะถูกปรับให้ไม่น้อยกว่าหนึ่งช่วงเวลา Heartbeat หลังจากสร้าง Commitment เพื่อไม่ให้การติดตามผลสะท้อนกลับมาในช่วงเวลาเดียวกับที่มีการ อนุมาน
ขอบเขต
Commitments จะจำกัดขอบเขตไว้เฉพาะเอเจนต์และบริบทของช่องทางที่สร้างรายการนั้นขึ้นมา การติดตามผลที่อนุมานได้ระหว่างการสนทนากับเอเจนต์หนึ่งใน Discord จะไม่ถูกส่ง โดยเอเจนต์อื่น ช่องทางอื่น หรือเซสชันที่ไม่เกี่ยวข้อง
ขอบเขตนี้เป็นส่วนหนึ่งของฟีเจอร์ การติดตามสอบถามอย่างเป็นธรรมชาติควรให้ความรู้สึกเหมือนเป็นการสนทนาเดิม ที่ดำเนินต่อไป ไม่ใช่ระบบเตือนความจำส่วนกลาง
Commitments เทียบกับการเตือนความจำ
| ความต้องการ | ใช้ |
|---|---|
| "เตือนฉันตอน 3 PM" | งานที่ตั้งเวลาไว้ |
| "แจ้งเตือนฉันในอีก 20 นาที" | งานที่ตั้งเวลาไว้ |
| "เรียกใช้รายงานนี้ทุกวันจันทร์ถึงศุกร์" | งานที่ตั้งเวลาไว้ |
| "ฉันมีสัมภาษณ์พรุ่งนี้" | Commitments |
| "เมื่อคืนฉันไม่ได้นอนเลย" | Commitments |
| "ติดตามผลหากฉันไม่ตอบเธรดที่ยังเปิดอยู่นี้" | Commitments |
คำขอที่ชัดเจนจากผู้ใช้อยู่ในเส้นทางของตัวจัดตารางเวลาอยู่แล้ว Commitments ใช้เฉพาะ การติดตามผลที่อนุมานได้เท่านั้น ซึ่งเป็นกรณีที่ผู้ใช้ไม่ได้ขอให้เตือนความจำ แต่บทสนทนาได้สร้างเหตุผลที่ชัดเจนว่าการติดตามสอบถามในอนาคตจะเป็นประโยชน์
จัดการ Commitments
ใช้ CLI เพื่อตรวจสอบและล้าง Commitments ที่จัดเก็บไว้:
openclaw commitmentsopenclaw commitments --allopenclaw commitments --agent mainopenclaw commitments --status snoozedopenclaw commitments dismiss cm_abc123ดูข้อมูลอ้างอิงคำสั่งทั้งหมดได้ที่ openclaw commitments
ความเป็นส่วนตัวและค่าใช้จ่าย
การแยก Commitments ใช้การประมวลผลด้วย LLM ดังนั้นการเปิดใช้งานจึงเพิ่มการใช้งานโมเดล เบื้องหลังหลังจากเทิร์นที่เข้าเกณฑ์ การประมวลผลนี้จะไม่ปรากฏในบทสนทนาที่ผู้ใช้มองเห็น แต่สามารถอ่านบทสนทนาล่าสุดที่จำเป็นต่อการตัดสินใจว่ามีสิ่งที่ต้องติดตามผลหรือไม่
Commitments ที่จัดเก็บไว้เป็นหน่วยความจำการดำเนินงานภายในเครื่องของ OpenClaw ในฐานข้อมูลสถานะ SQLite ที่ใช้ร่วมกัน ไม่ใช่หน่วยความจำระยะยาว ปิดใช้งานฟีเจอร์ด้วย:
openclaw config set commitments.enabled falseการแก้ไขปัญหา
หากการติดตามผลที่คาดไว้ไม่ปรากฏ:
- ยืนยันว่า
commitments.enabledเป็นtrue - ตรวจสอบ
openclaw commitments --allเพื่อหาระเบียนที่รอดำเนินการ ยกเลิกแล้ว เลื่อนเวลาไว้ หรือหมดอายุ - ตรวจสอบให้แน่ใจว่า Heartbeat กำลังทำงานสำหรับเอเจนต์
- ตรวจสอบว่าเซสชันของเอเจนต์นั้นถึง
commitments.maxPerDayแล้วหรือไม่ - โปรดจำไว้ว่าการเตือนความจำแบบเจาะจงจะถูกข้ามโดยการแยก Commitments และควร ปรากฏใน งานที่ตั้งเวลาไว้ แทน