Sessions and memory
ภาพรวมหน่วยความจำ
OpenClaw จดจำสิ่งต่าง ๆ โดยเขียน ไฟล์ Markdown ธรรมดา ใน workspace ของ agent ของคุณ โมเดลจะ "จดจำ" เฉพาะสิ่งที่ถูกบันทึกลงดิสก์เท่านั้น — ไม่มีสถานะที่ซ่อนอยู่
วิธีการทำงาน
agent ของคุณมีไฟล์ที่เกี่ยวข้องกับหน่วยความจำสามไฟล์:
MEMORY.md— หน่วยความจำระยะยาว ข้อเท็จจริง ค่ากำหนด และการตัดสินใจที่คงทน โหลดเมื่อเริ่มต้นทุกเซสชัน DMmemory/YYYY-MM-DD.md— บันทึกรายวัน บริบทและข้อสังเกตที่ดำเนินอยู่ บันทึกของวันนี้และเมื่อวานจะถูกโหลดโดยอัตโนมัติDREAMS.md(ไม่บังคับ) — Dream Diary และสรุปการกวาด Dreaming สำหรับให้มนุษย์ตรวจทาน รวมถึงรายการเติมย้อนหลังเชิงประวัติที่มีหลักยึด
ไฟล์เหล่านี้อยู่ใน workspace ของ agent (ค่าเริ่มต้น ~/.openclaw/workspace)
ข้อผูกพันที่อนุมาน
การติดตามผลในอนาคตบางอย่างไม่ใช่ข้อเท็จจริงที่คงทน หากคุณกล่าวถึงการสัมภาษณ์พรุ่งนี้ หน่วยความจำที่มีประโยชน์อาจเป็น "ตรวจสอบหลังการสัมภาษณ์" ไม่ใช่ "เก็บสิ่งนี้ไว้ใน MEMORY.md ตลอดไป"
ข้อผูกพัน คือหน่วยความจำการติดตามผลแบบเลือกใช้และมีอายุสั้นสำหรับกรณีนั้น OpenClaw อนุมานสิ่งเหล่านี้ในขั้นตอนเบื้องหลังที่ซ่อนอยู่ จำกัดขอบเขตไว้ที่ agent และช่องทางเดียวกัน และส่งการเช็กอินที่ถึงกำหนดผ่าน heartbeat การแจ้งเตือนแบบชัดเจนยังคงใช้ งานตามกำหนดเวลา
เครื่องมือหน่วยความจำ
agent มีเครื่องมือสองตัวสำหรับทำงานกับหน่วยความจำ:
memory_search— ค้นหาบันทึกที่เกี่ยวข้องโดยใช้การค้นหาเชิงความหมาย แม้ถ้อยคำจะแตกต่างจากต้นฉบับmemory_get— อ่านไฟล์หน่วยความจำหรือช่วงบรรทัดที่ระบุ
เครื่องมือทั้งสองมาจาก Plugin active memory (ค่าเริ่มต้น: memory-core)
Plugin คู่หู Memory Wiki
หากคุณต้องการให้หน่วยความจำที่คงทนทำงานคล้ายฐานความรู้ที่ได้รับการดูแลมากกว่าบันทึกดิบ ให้ใช้ Plugin memory-wiki ที่รวมมาให้
memory-wiki คอมไพล์ความรู้ที่คงทนเป็นคลัง wiki ที่มี:
- โครงสร้างหน้าที่กำหนดได้แน่นอน
- คำกล่าวอ้างและหลักฐานแบบมีโครงสร้าง
- การติดตามความขัดแย้งและความสดใหม่
- แดชบอร์ดที่สร้างขึ้น
- ไดเจสต์ที่คอมไพล์แล้วสำหรับผู้ใช้งาน agent/runtime
- เครื่องมือที่เป็น wiki-native เช่น
wiki_search,wiki_get,wiki_applyและwiki_lint
สิ่งนี้ไม่ได้แทนที่ Plugin active memory Plugin active memory ยังคงเป็นเจ้าของการเรียกคืน การเลื่อนระดับ และ Dreaming memory-wiki เพิ่มชั้นความรู้ที่อุดมด้วยแหล่งที่มาควบคู่ไปกับมัน
ดู Memory Wiki
การค้นหาหน่วยความจำ
เมื่อกำหนดค่า embedding provider แล้ว memory_search จะใช้ การค้นหาแบบไฮบริด — รวมความคล้ายคลึงของเวกเตอร์ (ความหมายเชิงความหมาย) กับการจับคู่คำสำคัญ (คำที่ตรงกันพอดี เช่น ID และสัญลักษณ์โค้ด) สิ่งนี้ใช้งานได้ทันทีเมื่อคุณมี API key สำหรับ provider ที่รองรับใด ๆ
สำหรับรายละเอียดเกี่ยวกับวิธีทำงานของการค้นหา ตัวเลือกการปรับแต่ง และการตั้งค่า provider โปรดดู Memory Search
แบ็กเอนด์หน่วยความจำ
ใช้ SQLite เป็นฐาน ใช้งานได้ทันทีพร้อมการค้นหาคำสำคัญ ความคล้ายคลึงของเวกเตอร์ และการค้นหาแบบไฮบริด ไม่มี dependency เพิ่มเติม
sidecar แบบ local-first พร้อมการ rerank การขยาย query และความสามารถในการทำดัชนีไดเรกทอรีนอก workspace
หน่วยความจำข้ามเซสชันแบบ AI-native พร้อมการสร้างแบบจำลองผู้ใช้ การค้นหาเชิงความหมาย และการรับรู้หลาย agent ติดตั้งเป็น Plugin
หน่วยความจำที่ใช้ LanceDB เป็นฐานซึ่งรวมมาให้ พร้อม embeddings ที่เข้ากันได้กับ OpenAI, auto-recall, auto-capture และการรองรับ embedding ของ Ollama ในเครื่อง
ชั้น Knowledge wiki
การ flush หน่วยความจำอัตโนมัติ
ก่อนที่ Compaction จะสรุปบทสนทนาของคุณ OpenClaw จะรัน turn แบบเงียบที่เตือน agent ให้บันทึกบริบทสำคัญลงไฟล์หน่วยความจำ สิ่งนี้เปิดอยู่ตามค่าเริ่มต้น — คุณไม่จำเป็นต้องกำหนดค่าใด ๆ
หากต้องการให้ turn การดูแลนี้อยู่บนโมเดลในเครื่อง ให้ตั้งค่า override โมเดล memory-flush แบบเจาะจง:
{
"agents": {
"defaults": {
"compaction": {
"memoryFlush": {
"model": "ollama/qwen3:8b"
}
}
}
}
}
override นี้ใช้เฉพาะกับ turn memory-flush และไม่สืบทอด fallback chain ของเซสชันที่ใช้งานอยู่
Dreaming
Dreaming คือขั้นตอน consolidation เบื้องหลังแบบไม่บังคับสำหรับหน่วยความจำ มันรวบรวมสัญญาณระยะสั้น ให้คะแนน candidate และเลื่อนระดับเฉพาะรายการที่ผ่านคุณสมบัติไปยังหน่วยความจำระยะยาว (MEMORY.md)
สิ่งนี้ออกแบบมาเพื่อรักษาให้หน่วยความจำระยะยาวมีสัญญาณคุณภาพสูง:
- เลือกใช้: ปิดใช้งานตามค่าเริ่มต้น
- ตามกำหนดเวลา: เมื่อเปิดใช้งาน
memory-coreจะจัดการ cron job ที่เกิดซ้ำหนึ่งรายการโดยอัตโนมัติสำหรับการกวาด Dreaming เต็มรูปแบบ - มี threshold: การเลื่อนระดับต้องผ่านเกณฑ์คะแนน ความถี่การเรียกคืน และความหลากหลายของ query
- ตรวจทานได้: สรุป phase และรายการ diary จะถูกเขียนไปยัง
DREAMS.mdเพื่อให้มนุษย์ตรวจทาน
สำหรับพฤติกรรมของ phase สัญญาณการให้คะแนน และรายละเอียด Dream Diary โปรดดู Dreaming
การเติมย้อนหลังที่มีหลักยึดและการเลื่อนระดับสด
ระบบ Dreaming ตอนนี้มี lane การตรวจทานที่เกี่ยวข้องกันอย่างใกล้ชิดสองแบบ:
- Live dreaming ทำงานจาก store Dreaming ระยะสั้นภายใต้
memory/.dreams/และเป็นสิ่งที่ phase เชิงลึกปกติใช้เมื่อตัดสินใจว่าสิ่งใดสามารถเลื่อนขึ้นไปเป็นMEMORY.mdได้ - Grounded backfill อ่านบันทึกเชิงประวัติ
memory/YYYY-MM-DD.mdเป็นไฟล์รายวันแบบ standalone และเขียนผลลัพธ์การตรวจทานแบบมีโครงสร้างไปยังDREAMS.md
Grounded backfill มีประโยชน์เมื่อคุณต้องการเล่นซ้ำบันทึกเก่าและตรวจสอบว่าระบบคิดว่าสิ่งใดคงทน โดยไม่ต้องแก้ไข MEMORY.md ด้วยตนเอง
เมื่อคุณใช้:
openclaw memory rem-backfill --path ./memory --stage-short-term
candidate ที่คงทนและมีหลักยึดจะไม่ถูกเลื่อนระดับโดยตรง แต่จะถูก stage เข้าไปใน store Dreaming ระยะสั้นเดียวกับที่ phase เชิงลึกปกติใช้อยู่แล้ว นั่นหมายความว่า:
DREAMS.mdยังคงเป็นพื้นผิวการตรวจทานสำหรับมนุษย์- store ระยะสั้นยังคงเป็นพื้นผิวการจัดอันดับสำหรับเครื่อง
MEMORY.mdยังคงถูกเขียนโดยการเลื่อนระดับเชิงลึกเท่านั้น
หากคุณตัดสินใจว่าการเล่นซ้ำไม่มีประโยชน์ คุณสามารถลบ artifact ที่ถูก stage ได้โดยไม่แตะต้องรายการ diary ปกติหรือสถานะ recall ปกติ:
openclaw memory rem-backfill --rollback
openclaw memory rem-backfill --rollback-short-term
CLI
openclaw memory status # Check index status and provider
openclaw memory search "query" # Search from the command line
openclaw memory index --force # Rebuild the index
อ่านเพิ่มเติม
- เอนจินหน่วยความจำ Builtin: แบ็กเอนด์ SQLite ค่าเริ่มต้น
- เอนจินหน่วยความจำ QMD: sidecar local-first ขั้นสูง
- หน่วยความจำ Honcho: หน่วยความจำข้ามเซสชันแบบ AI-native
- Memory LanceDB: Plugin ที่ใช้ LanceDB เป็นฐานพร้อม embeddings ที่เข้ากันได้กับ OpenAI
- Memory Wiki: คลังความรู้ที่คอมไพล์แล้วและเครื่องมือ wiki-native
- การค้นหาหน่วยความจำ: pipeline การค้นหา, provider และการปรับแต่ง
- Dreaming: การเลื่อนระดับเบื้องหลังจาก recall ระยะสั้นไปยังหน่วยความจำระยะยาว
- ข้อมูลอ้างอิงการกำหนดค่าหน่วยความจำ: knobs การกำหนดค่าทั้งหมด
- Compaction: วิธีที่ Compaction โต้ตอบกับหน่วยความจำ