Sessions and memory

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

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

ตัวอย่าง:

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

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

เปิดใช้งานข้อผูกมัด

ข้อผูกมัดปิดอยู่โดยค่าเริ่มต้น เปิดใช้งานในคอนฟิก:

openclaw config set commitments.enabled true
openclaw config set commitments.maxPerDay 3

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

{
  "commitments": {
    "enabled": true,
    "maxPerDay": 3
  }
}

commitments.maxPerDay จำกัดจำนวนการติดตามผลที่อนุมานได้ซึ่งสามารถส่งมอบได้ ต่อเซสชันเอเจนต์ในหนึ่งวันแบบเลื่อนหน้าต่าง ค่าเริ่มต้นคือ 3

วิธีการทำงาน

หลังจากเอเจนต์ตอบกลับ OpenClaw อาจรันรอบการสกัดข้อมูลเบื้องหลังที่ซ่อนอยู่ใน บริบทแยกต่างหาก รอบนั้นจะมองหาเฉพาะข้อผูกมัดสำหรับการติดตามผลที่อนุมานได้เท่านั้น จะไม่เขียนลงในบทสนทนาที่มองเห็นได้ และจะไม่ขอให้เอเจนต์หลัก ให้เหตุผลเกี่ยวกับการสกัดข้อมูล

เมื่อพบตัวเลือกที่มีความมั่นใจสูง OpenClaw จะจัดเก็บข้อผูกมัดพร้อมกับ:

  • id ของเอเจนต์
  • คีย์เซสชัน
  • ช่องทางดั้งเดิมและเป้าหมายการส่งมอบ
  • ช่วงเวลาครบกำหนด
  • การติดตามผลที่แนะนำแบบสั้น
  • เมทาดาทาที่ไม่ใช่คำสั่งเพื่อให้ Heartbeat ตัดสินใจว่าจะส่งหรือไม่

การส่งมอบเกิดขึ้นผ่าน Heartbeat เมื่อข้อผูกมัดถึงกำหนด Heartbeat จะเพิ่มข้อผูกมัดลงในเทิร์น Heartbeat สำหรับขอบเขตเอเจนต์และช่องทางเดียวกัน โมเดลสามารถส่งการติดตามผลที่เป็นธรรมชาติหนึ่งครั้ง หรือ reply HEARTBEAT_OK เพื่อยกเลิกได้ หากกำหนดค่า Heartbeat ด้วย target: "none" ข้อผูกมัดที่ถึงกำหนดจะยังคง อยู่ภายในและไม่ส่งการติดตามผลภายนอก พรอมป์การส่งมอบข้อผูกมัดจะไม่ เล่นข้อความบทสนทนาดั้งเดิมซ้ำ และเทิร์น Heartbeat ของข้อผูกมัดที่ถึงกำหนดจะทำงาน โดยไม่มีเครื่องมือ OpenClaw

OpenClaw จะไม่ส่งมอบข้อผูกมัดที่อนุมานได้ทันทีหลังจากเขียน เวลาครบกำหนดจะถูกบังคับให้อย่างน้อยเป็นหนึ่งช่วงเวลา Heartbeat หลังจากสร้างข้อผูกมัด ดังนั้นการติดตามผลจะไม่สะท้อนกลับมาในช่วงเวลาเดียวกับที่ถูก อนุมาน

ขอบเขต

ข้อผูกมัดถูกจำกัดขอบเขตไว้กับบริบทเอเจนต์และช่องทางที่แน่นอนซึ่งสร้างขึ้น การติดตามผลที่อนุมานขณะคุยกับเอเจนต์หนึ่งใน Discord จะไม่ถูก ส่งมอบโดยเอเจนต์อื่น ช่องทางอื่น หรือเซสชันที่ไม่เกี่ยวข้อง

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

ข้อผูกมัดเทียบกับการแจ้งเตือน

ความต้องการ ใช้
"เตือนฉันตอน 15:00 น." งานที่กำหนดเวลาไว้
"ส่งสัญญาณถึงฉันในอีก 20 นาที" งานที่กำหนดเวลาไว้
"รันรายงานนี้ทุกวันทำงาน" งานที่กำหนดเวลาไว้
"ฉันมีสัมภาษณ์พรุ่งนี้" ข้อผูกมัด
"ฉันไม่ได้นอนทั้งคืน" ข้อผูกมัด
"ติดตามผลถ้าฉันไม่ตอบเธรดที่เปิดอยู่นี้" ข้อผูกมัด

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

จัดการข้อผูกมัด

ใช้ CLI เพื่อตรวจสอบและล้างข้อผูกมัดที่จัดเก็บไว้:

openclaw commitments
openclaw commitments --all
openclaw commitments --agent main
openclaw commitments --status snoozed
openclaw commitments dismiss cm_abc123

ดู openclaw commitments สำหรับอ้างอิงคำสั่ง

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

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

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

openclaw config set commitments.enabled false

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

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

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

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