CLI commands
หน่วยความจำ
openclaw memory
จัดการการทำดัชนีหน่วยความจำเชิงความหมาย การค้นหา และการเลื่อนระดับเข้าสู่ MEMORY.md
ให้บริการโดย Plugin memory-core ที่รวมมาให้ และพร้อมใช้งานเมื่อ
plugins.slots.memory เลือก memory-core (ค่าเริ่มต้น) Plugin หน่วยความจำอื่น
จะมีเนมสเปซ CLI ของตนเอง
เนื้อหาที่เกี่ยวข้อง: แนวคิดเรื่องหน่วยความจำ, Dreaming, ข้อมูลอ้างอิงการกำหนดค่าหน่วยความจำ, วิกิหน่วยความจำ, วิกิ, Plugin
memory status
openclaw memory status [--agent <id>] [--deep] [--index] [--fix] [--json] [--verbose]หากไม่มี --agent คำสั่งจะทำงานกับเอเจนต์ทุกตัวใน agents.list แต่หากไม่ได้
กำหนดค่ารายการเอเจนต์ไว้ จะใช้เอเจนต์เริ่มต้นแทน
| แฟล็ก | ผล |
|---|---|
--deep |
ตรวจสอบความพร้อมของที่เก็บเวกเตอร์ ผู้ให้บริการ embedding และการค้นหาเชิงความหมาย (ทำให้มีการเรียกผู้ให้บริการเพิ่มเติม) memory status แบบปกติจะยังคงทำงานรวดเร็วและข้ามขั้นตอนนี้ สถานะเวกเตอร์/เชิงความหมายที่ไม่ทราบหมายความว่ายังไม่ได้ตรวจสอบ searchMode: "search" สำหรับการค้นหาเชิงคำของ QMD จะข้ามการตรวจสอบเวกเตอร์เชิงความหมายเสมอ แม้ใช้ --deep |
--index |
ทำดัชนีใหม่หากที่เก็บอยู่ในสถานะไม่สะอาด มีผลให้ใช้ --deep ด้วย |
--fix |
ซ่อมแซมล็อกการเรียกคืนที่ค้างอยู่และปรับข้อมูลเมตาการเลื่อนระดับให้เป็นมาตรฐาน |
--json |
พิมพ์ JSON |
--verbose |
แสดงบันทึกรายละเอียดของแต่ละระยะ |
หากบรรทัด Dreaming ยังคงเป็น off แม้ตั้งค่า dreaming.enabled: true แล้ว หรือ
ดูเหมือนว่าการกวาดตามกำหนดเวลาไม่เคยทำงาน Cron สำหรับ Dreaming ที่ระบบจัดการจะ
อาศัยการทำงานของ Heartbeat ของเอเจนต์เริ่มต้นเพื่อเรียกการปรับให้สอดคล้องกัน ดูรายละเอียด
การจัดกำหนดเวลาได้ที่ Dreaming
สถานะยังแสดงพาธการค้นหาเพิ่มเติมทั้งหมดจาก agents.defaults.memorySearch.extraPaths
memory index
openclaw memory index [--agent <id>] [--force] [--verbose]มีขอบเขตต่อเอเจนต์เช่นเดียวกับ status --force จะทำดัชนีใหม่ทั้งหมดแทนการ
ทำแบบเพิ่มเฉพาะส่วน --verbose จะแสดงผู้ให้บริการ โมเดล แหล่งข้อมูล และ
รายละเอียดพาธเพิ่มเติมของแต่ละเอเจนต์ ก่อนแสดงความคืบหน้าการทำดัชนี
memory search
openclaw memory search [query] [--query <text>] [--agent <id>] [--max-results <n>] [--min-score <n>] [--json]- คำค้น: ระบุตามตำแหน่งด้วย
[query]หรือใช้--query <text>หากตั้งค่าทั้งคู่--queryจะมีผลเหนือกว่า หากไม่ตั้งค่าเลย คำสั่งจะแสดงข้อผิดพลาด --agent <id>: ค่าเริ่มต้นคือเอเจนต์เริ่มต้น (ไม่ใช่รายการเอเจนต์ทั้งหมด)--max-results <n>: จำกัดจำนวนผลลัพธ์ (จำนวนเต็มบวก)--min-score <n>: กรองผลลัพธ์ที่มีคะแนนต่ำกว่าค่านี้ออก
memory promote
จัดอันดับรายการระยะสั้นจาก memory/YYYY-MM-DD.md และเลือกผนวก
รายการอันดับสูงเข้าสู่ MEMORY.md
openclaw memory promote [--agent <id>] [--limit <n>] [--min-score <n>] \ [--min-recall-count <n>] [--min-unique-queries <n>] [--apply] [--include-promoted] [--json]| แฟล็ก | ค่าเริ่มต้น | ผล |
|---|---|---|
--limit <n> |
จำนวนรายการสูงสุดที่จะส่งคืน/นำไปใช้ | |
--min-score <n> |
0.75 |
คะแนนถ่วงน้ำหนักขั้นต่ำสำหรับการเลื่อนระดับ |
--min-recall-count <n> |
3 |
จำนวนการเรียกคืนขั้นต่ำที่กำหนด |
--min-unique-queries <n> |
2 |
จำนวนคำค้นที่แตกต่างกันขั้นต่ำที่กำหนด |
--apply |
แสดงตัวอย่างเท่านั้น | ผนวกรายการที่เลือกเข้าสู่ MEMORY.md และทำเครื่องหมายว่าเลื่อนระดับแล้ว |
--include-promoted |
รวมรายการที่เลื่อนระดับแล้วในรอบก่อนหน้า | |
--json |
พิมพ์ JSON |
ค่าเริ่มต้นของ CLI เหล่านี้แตกต่างจากเกณฑ์ระยะลึกของการกวาด Dreaming ตามกำหนดเวลา (ดู Dreaming ด้านล่าง) ให้ส่งแฟล็กอย่างชัดเจนเพื่อให้พฤติกรรม ตรงกับการกวาดสำหรับการเรียกใช้ด้วยตนเองครั้งเดียว
สัญญาณการจัดอันดับประกอบด้วย ความถี่การเรียกคืน ความเกี่ยวข้องของการค้นคืน ความหลากหลายของคำค้น ความใหม่ตามเวลา การรวมข้อมูลข้ามวัน และความสมบูรณ์ของแนวคิดที่อนุมานขึ้น โดยนำมา จากทั้งการเรียกคืนหน่วยความจำและรอบการนำเข้ารายวัน รวมถึงการเสริมแรงเล็กน้อยจากระยะ light/REM เมื่อ Dreaming กลับมาทบทวนซ้ำ ก่อนเขียน การเลื่อนระดับจะอ่านบันทึกรายวันปัจจุบันอีกครั้ง ดังนั้นการแก้ไขหรือการลบส่วนย่อยระยะสั้นหลังการจัดอันดับจะได้รับการเคารพ แทนการเลื่อนระดับจากสแนปช็อตที่ล้าสมัย
memory promote-explain
อธิบายรายละเอียดองค์ประกอบคะแนนของรายการสำหรับเลื่อนระดับหนึ่งรายการ
openclaw memory promote-explain <selector> [--agent <id>] [--include-promoted] [--json]<selector> จะจับคู่กับคีย์ของรายการ (ตรงทั้งหมดหรือบางส่วน) พาธ หรือข้อความ
ส่วนย่อย
memory rem-harness
แสดงตัวอย่างข้อสะท้อนคิด REM ข้อเท็จจริงที่เป็นรายการคัดเลือก และผลลัพธ์การเลื่อนระดับในระยะลึก โดยไม่เขียนสิ่งใด
openclaw memory rem-harness [--agent <id>] [--path <file-or-dir>] [--grounded] [--include-promoted] [--json]--path <file-or-dir>: ตั้งต้นชุดทดสอบจากไฟล์รายวันYYYY-MM-DD.mdในอดีตแทนพื้นที่ทำงานปัจจุบัน--grounded: แสดงตัวอย่างสิ่งที่เกิดขึ้น/ข้อสะท้อนคิด/การปรับปรุงที่อาจคงอยู่ซึ่งยึดโยงกับบันทึกในอดีตด้วย
memory rem-backfill
เขียนสรุป REM ในอดีตที่ยึดโยงกับข้อมูลลงใน DREAMS.md เพื่อให้ตรวจสอบผ่าน UI
สามารถย้อนกลับได้
openclaw memory rem-backfill --path <file-or-dir> [--agent <id>] [--stage-short-term] [--json]openclaw memory rem-backfill --rollback [--rollback-short-term] [--json]--path <file-or-dir>: จำเป็น เว้นแต่จะตั้งค่า--rollback/--rollback-short-termไฟล์หน่วยความจำรายวันในอดีตหรือไดเรกทอรีที่จะใช้เติมข้อมูลย้อนหลัง--stage-short-term: ตั้งต้นรายการข้อมูลคงทนที่ยึดโยงกับข้อมูลลงในที่เก็บการเลื่อนระดับ ระยะสั้นปัจจุบันด้วย เพื่อให้ระยะลึกตามปกติสามารถจัดอันดับรายการเหล่านั้นได้--rollback: ลบรายการบันทึกประจำวันที่ยึดโยงกับข้อมูลซึ่งเคยเขียนไว้จากDREAMS.md--rollback-short-term: ลบรายการระยะสั้นที่ยึดโยงกับข้อมูลซึ่งเคยจัดเตรียมไว้
Dreaming
Dreaming คือระบบรวมหน่วยความจำเบื้องหลังที่มีสามระยะทำงานร่วมกัน
ตามลำดับภายในกำหนดเวลาเดียว ได้แก่ light (จัดเรียง/จัดเตรียมข้อมูลระยะสั้น)
REM (สะท้อนคิดและนำเสนอประเด็นสำคัญ) และ deep (เลื่อนระดับข้อเท็จจริงที่คงทน
เข้าสู่ MEMORY.md) เฉพาะระยะ deep เท่านั้นที่เขียนลง MEMORY.md
- เปิดใช้งานด้วย
plugins.entries.memory-core.config.dreaming.enabled: true(ค่าเริ่มต้นคือfalse)memory-coreจะจัดการงาน Cron สำหรับการกวาดโดยอัตโนมัติ ไม่จำเป็นต้องใช้openclaw cron addด้วยตนเอง - เปิดหรือปิดจากแชตด้วย
/dreaming on|offตรวจสอบด้วย/dreaming status(หรือ/dreaming//dreaming help) การใช้on/offต้องมีสถานะเจ้าของช่องทาง หรือสิทธิ์operator.adminของ Gateway ส่วนstatusและความช่วยเหลือยังคงพร้อมใช้งาน สำหรับทุกคนที่สามารถเรียกคำสั่งได้ - ผลลัพธ์แต่ละระยะในรูปแบบที่มนุษย์อ่านได้จะเขียนลง
DREAMS.md(หรือdreams.mdที่มีอยู่) ตามค่าเริ่มต้น (dreaming.storage.mode: "separate") แต่ละระยะจะเขียนรายงาน แยกต่างหากลงในmemory/dreaming/<phase>/YYYY-MM-DD.mdด้วย ตั้งค่าmode: "inline"เพื่อรวมรายงานไว้ในไฟล์หน่วยความจำรายวันแทน หรือใช้"both"เพื่อทำทั้งสองแบบ - การเรียกใช้
memory promoteตามกำหนดเวลาและด้วยตนเองใช้สัญญาณการจัดอันดับ ในระยะลึกชุดเดียวกัน มีเพียงเกณฑ์เริ่มต้นที่แตกต่างกัน (ดูตารางด้านบนเทียบกับ ค่าเริ่มต้นตามกำหนดเวลาด้านล่าง) - การเรียกใช้ตามกำหนดเวลาจะกระจายงานไปยังพื้นที่ทำงานหน่วยความจำของเอเจนต์ที่กำหนดค่าไว้ทุกตัว
ค่าเริ่มต้นตามกำหนดเวลา (plugins.entries.memory-core.config.dreaming):
| คีย์ | ค่าเริ่มต้น |
|---|---|
frequency |
0 3 * * * |
phases.deep.minScore |
0.8 |
phases.deep.minRecallCount |
3 |
phases.deep.minUniqueQueries |
3 |
phases.deep.recencyHalfLifeDays |
14 |
phases.deep.maxAgeDays |
30 |
phases.deep.maxPromotedSnippetTokens |
160 |
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true } } } } }}รายการคีย์ทั้งหมดและรายละเอียดแต่ละระยะ: Dreaming, ข้อมูลอ้างอิงการกำหนดค่าหน่วยความจำ
การพึ่งพา Gateway ของ SecretRef
หากฟิลด์คีย์ API ระยะไกลของ Active Memory ได้รับการกำหนดค่าเป็น SecretRef คำสั่ง memory
จะดึงค่าจากสแนปช็อตของ Gateway ที่กำลังใช้งาน หาก Gateway ไม่พร้อมใช้งาน คำสั่งจะ
ล้มเหลวทันที การทำงานนี้ต้องใช้ Gateway ที่รองรับเมธอด secrets.resolve
Gateway รุ่นเก่าจะส่งคืนข้อผิดพลาดว่าไม่รู้จักเมธอด