Sessions and memory

ข้อผูกพันที่อนุมานได้

Commitments คือความทรงจำสำหรับการติดตามผลที่มีอายุสั้น เมื่อเปิดใช้งาน OpenClaw สามารถ สังเกตได้ว่าบทสนทนาก่อให้เกิดโอกาสในการกลับมาติดตามในอนาคต และจดจำ เพื่อนำกลับมากล่าวถึงในภายหลัง

ตัวอย่าง:

  • กล่าวถึงการสัมภาษณ์ในวันพรุ่งนี้ OpenClaw อาจกลับมาสอบถามหลังจากนั้น
  • บอกว่ารู้สึกหมดแรง OpenClaw อาจถามภายหลังว่าได้นอนหลับหรือไม่
  • เอเจนต์บอกว่าจะติดตามผลหลังจากมีบางอย่างเปลี่ยนแปลง OpenClaw อาจติดตาม เรื่องที่ยังค้างอยู่นั้น

Commitments ไม่ใช่ข้อเท็จจริงถาวรอย่าง MEMORY.md และไม่ใช่การแจ้งเตือน ที่กำหนดไว้อย่างแม่นยำ แต่มีสถานะอยู่ระหว่างความทรงจำกับระบบอัตโนมัติ โดย OpenClaw จะจดจำ ภาระผูกพันที่เชื่อมโยงกับบทสนทนา จากนั้น Heartbeat จะส่งมอบเมื่อถึงกำหนด

เปิดใช้งาน Commitments

Commitments ปิดอยู่โดยค่าเริ่มต้น (commitments.enabled: false) เปิดใช้งานในการกำหนดค่า:

bash
openclaw config set commitments.enabled trueopenclaw config set commitments.maxPerDay 3

openclaw.json ที่เทียบเท่า:

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 ที่จัดเก็บไว้:

bash
openclaw commitmentsopenclaw commitments --allopenclaw commitments --agent mainopenclaw commitments --status snoozedopenclaw commitments dismiss cm_abc123

ดูข้อมูลอ้างอิงคำสั่งทั้งหมดได้ที่ openclaw commitments

ความเป็นส่วนตัวและค่าใช้จ่าย

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

Commitments ที่จัดเก็บไว้เป็นหน่วยความจำการดำเนินงานภายในเครื่องของ OpenClaw ในฐานข้อมูลสถานะ SQLite ที่ใช้ร่วมกัน ไม่ใช่หน่วยความจำระยะยาว ปิดใช้งานฟีเจอร์ด้วย:

bash
openclaw config set commitments.enabled false

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

หากการติดตามผลที่คาดไว้ไม่ปรากฏ:

  • ยืนยันว่า commitments.enabled เป็น true
  • ตรวจสอบ openclaw commitments --all เพื่อหาระเบียนที่รอดำเนินการ ยกเลิกแล้ว เลื่อนเวลาไว้ หรือหมดอายุ
  • ตรวจสอบให้แน่ใจว่า Heartbeat กำลังทำงานสำหรับเอเจนต์
  • ตรวจสอบว่าเซสชันของเอเจนต์นั้นถึง commitments.maxPerDay แล้วหรือไม่
  • โปรดจำไว้ว่าการเตือนความจำแบบเจาะจงจะถูกข้ามโดยการแยก Commitments และควร ปรากฏใน งานที่ตั้งเวลาไว้ แทน

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

Was this useful?
On this page

On this page