Dreaming คือระบบรวมความจำเบื้องหลังในDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
memory-core ระบบนี้ช่วยให้ OpenClaw ย้ายสัญญาณระยะสั้นที่สำคัญไปเป็นความจำที่คงทน พร้อมทำให้กระบวนการอธิบายและตรวจทานได้
Dreaming เป็นแบบ opt-in และปิดใช้งานโดยค่าเริ่มต้น
สิ่งที่ Dreaming เขียน
Dreaming เก็บเอาต์พุตสองชนิด:- สถานะเครื่อง ใน
memory/.dreams/(ที่เก็บการเรียกคืน, สัญญาณเฟส, จุดตรวจการนำเข้า, ล็อก) - เอาต์พุตที่มนุษย์อ่านได้ ใน
DREAMS.md(หรือdreams.mdที่มีอยู่แล้ว) และไฟล์รายงานเฟสเสริมภายใต้memory/dreaming/<phase>/YYYY-MM-DD.md
MEMORY.md
โมเดลเฟส
Dreaming ใช้สามเฟสที่ทำงานร่วมกัน:| เฟส | วัตถุประสงค์ | การเขียนแบบคงทน |
|---|---|---|
| Light | จัดเรียงและเตรียมวัสดุระยะสั้นล่าสุด | ไม่ |
| Deep | ให้คะแนนและเลื่อนขั้นตัวเลือกที่คงทน | ใช่ (MEMORY.md) |
| REM | สะท้อนธีมและแนวคิดที่เกิดซ้ำ | ไม่ |
Light phase
Light phase
เฟส Light นำเข้าสัญญาณความจำรายวันล่าสุดและร่องรอยการเรียกคืน ขจัดข้อมูลซ้ำ และเตรียมบรรทัดตัวเลือก
- อ่านจากสถานะการเรียกคืนระยะสั้น, ไฟล์ความจำรายวันล่าสุด, และทรานสคริปต์เซสชันที่ปกปิดข้อมูลแล้วเมื่อมี
- เขียนบล็อก
## Light Sleepที่มีการจัดการเมื่อพื้นที่จัดเก็บรวมเอาต์พุตแบบอินไลน์ - บันทึกสัญญาณเสริมแรงสำหรับการจัดอันดับ Deep ภายหลัง
- ไม่เขียนไปยัง
MEMORY.md
Deep phase
Deep phase
เฟส Deep ตัดสินว่าสิ่งใดจะกลายเป็นความจำระยะยาว
- จัดอันดับตัวเลือกโดยใช้การให้คะแนนแบบถ่วงน้ำหนักและเกณฑ์ผ่าน
- ต้องผ่าน
minScore,minRecallCount, และminUniqueQueries - เติมข้อมูลส่วนย่อยกลับจากไฟล์รายวันสดก่อนเขียน เพื่อข้ามส่วนย่อยที่ล้าสมัยหรือถูกลบ
- เพิ่มรายการที่เลื่อนขั้นแล้วไปยัง
MEMORY.md - เขียนสรุป
## Deep SleepลงในDREAMS.mdและอาจเขียนmemory/dreaming/deep/YYYY-MM-DD.md
REM phase
REM phase
เฟส REM แยกรูปแบบและสัญญาณเชิงสะท้อน
- สร้างสรุปธีมและการสะท้อนจากร่องรอยระยะสั้นล่าสุด
- เขียนบล็อก
## REM Sleepที่มีการจัดการเมื่อพื้นที่จัดเก็บรวมเอาต์พุตแบบอินไลน์ - บันทึกสัญญาณเสริมแรง REM ที่ใช้โดยการจัดอันดับ Deep
- ไม่เขียนไปยัง
MEMORY.md
การนำเข้าทรานสคริปต์เซสชัน
Dreaming สามารถนำเข้าทรานสคริปต์เซสชันที่ปกปิดข้อมูลแล้วเข้าสู่คลัง Dreaming ได้ เมื่อมีทรานสคริปต์ ทรานสคริปต์จะถูกป้อนเข้าเฟส Light พร้อมกับสัญญาณความจำรายวันและร่องรอยการเรียกคืน เนื้อหาส่วนบุคคลและละเอียดอ่อนจะถูกปกปิดก่อนนำเข้าDream Diary
Dreaming ยังเก็บ Dream Diary แบบบรรยายไว้ในDREAMS.md ด้วย หลังจากแต่ละเฟสมีเนื้อหาเพียงพอ memory-core จะรันรอบ subagent เบื้องหลังแบบพยายามให้ดีที่สุด และเพิ่มรายการไดอารีสั้น ๆ ระบบใช้โมเดลรันไทม์เริ่มต้น เว้นแต่จะกำหนดค่า dreaming.model หากโมเดลที่กำหนดค่าไว้ใช้งานไม่ได้ Dream Diary จะลองใหม่หนึ่งครั้งด้วยโมเดลเริ่มต้นของเซสชัน
ไดอารีนี้มีไว้ให้มนุษย์อ่านใน UI Dreams ไม่ใช่แหล่งสำหรับการเลื่อนขั้น อาร์ติแฟกต์ไดอารี/รายงานที่ Dreaming สร้างขึ้นจะถูกตัดออกจากการเลื่อนขั้นระยะสั้น เฉพาะส่วนย่อยความจำที่มีหลักฐานรองรับเท่านั้นที่มีสิทธิ์เลื่อนขั้นเข้า
MEMORY.mdBackfill commands
Backfill commands
memory rem-harness --path ... --groundedแสดงตัวอย่างเอาต์พุตไดอารีที่มีหลักฐานรองรับจากโน้ตYYYY-MM-DD.mdในอดีตmemory rem-backfill --path ...เขียนรายการไดอารีที่มีหลักฐานรองรับและย้อนกลับได้ลงในDREAMS.mdmemory rem-backfill --path ... --stage-short-termเตรียมตัวเลือกที่คงทนและมีหลักฐานรองรับเข้าสู่ที่เก็บหลักฐานระยะสั้นเดียวกับที่เฟส Deep ปกติใช้อยู่แล้วmemory rem-backfill --rollbackและ--rollback-short-termลบอาร์ติแฟกต์ backfill ที่เตรียมไว้เหล่านั้นโดยไม่แตะรายการไดอารีปกติหรือการเรียกคืนระยะสั้นสด
สัญญาณการจัดอันดับ Deep
การจัดอันดับ Deep ใช้สัญญาณฐานถ่วงน้ำหนักหกชนิดพร้อมการเสริมแรงตามเฟส:| สัญญาณ | น้ำหนัก | คำอธิบาย |
|---|---|---|
| ความถี่ | 0.24 | จำนวนสัญญาณระยะสั้นที่รายการสะสมได้ |
| ความเกี่ยวข้อง | 0.30 | คุณภาพการดึงข้อมูลเฉลี่ยสำหรับรายการ |
| ความหลากหลายของคำค้น | 0.15 | บริบทคำค้น/วันที่แตกต่างกันที่ทำให้รายการปรากฏ |
| ความใหม่ | 0.15 | คะแนนความสดใหม่ที่ลดค่าตามเวลา |
| การรวมความจำ | 0.10 | ความแข็งแรงของการเกิดซ้ำหลายวัน |
| ความสมบูรณ์เชิงแนวคิด | 0.06 | ความหนาแน่นของแท็กแนวคิดจากส่วนย่อย/พาธ |
memory/.dreams/phase-signals.json
การกำหนดเวลา
เมื่อเปิดใช้งานmemory-core จะจัดการงาน cron หนึ่งงานโดยอัตโนมัติสำหรับการกวาด Dreaming แบบเต็ม แต่ละการกวาดจะรันเฟสตามลำดับ: light → REM → deep
การกวาดรวม workspace รันไทม์หลักและ agent workspaces ที่กำหนดค่าไว้ โดยขจัดรายการซ้ำตามพาธ ดังนั้นการกระจาย workspace ของ subagent จะไม่ตัด DREAMS.md และสถานะความจำของ agent หลักออก
พฤติกรรมจังหวะเริ่มต้น:
| การตั้งค่า | ค่าเริ่มต้น |
|---|---|
dreaming.frequency | 0 3 * * * |
dreaming.model | โมเดลเริ่มต้น |
เริ่มต้นอย่างรวดเร็ว
- Enable dreaming
- Custom sweep cadence
คำสั่ง Slash
เวิร์กโฟลว์ CLI
- Promotion preview / apply
- Explain promotion
- REM harness preview
memory promote แบบแมนนวลใช้เกณฑ์ของเฟส Deep โดยค่าเริ่มต้น เว้นแต่จะถูกแทนที่ด้วยแฟล็ก CLIค่าเริ่มต้นสำคัญ
การตั้งค่าทั้งหมดอยู่ภายใต้plugins.entries.memory-core.config.dreaming
เปิดหรือปิดการกวาด Dreaming
จังหวะ Cron สำหรับการกวาด Dreaming แบบเต็ม
การแทนที่โมเดล subagent ของ Dream Diary แบบเสริม ใช้ค่า
provider/model มาตรฐานเมื่อกำหนดรายการอนุญาต allowedModels ของ subagent ด้วยนโยบายเฟส เกณฑ์ และพฤติกรรมพื้นที่จัดเก็บเป็นรายละเอียดการทำงานภายใน (ไม่ใช่ config ที่เปิดให้ผู้ใช้ตั้งค่า) ดู ข้อมูลอ้างอิงการกำหนดค่าความจำ สำหรับรายการคีย์ทั้งหมด
UI Dreams
เมื่อเปิดใช้งาน แท็บ Dreams ของ Gateway จะแสดง:- สถานะเปิดใช้งาน Dreaming ปัจจุบัน
- สถานะระดับเฟสและการมีอยู่ของ managed-sweep
- จำนวนระยะสั้น, มีหลักฐานรองรับ, สัญญาณ, และที่เลื่อนขั้นวันนี้
- เวลาของการรันตามกำหนดครั้งถัดไป
- เลน Scene ที่มีหลักฐานรองรับแยกต่างหากสำหรับรายการ replay ประวัติที่เตรียมไว้
- ตัวอ่าน Dream Diary ที่ขยายได้ ซึ่งรองรับโดย
doctor.memory.dreamDiary
Dreaming ไม่เคยรัน: สถานะแสดงว่าถูกบล็อก
หากopenclaw memory status รายงาน Dreaming status: blocked แสดงว่า cron ที่มีการจัดการมีอยู่ แต่ Heartbeat ของ agent เริ่มต้นไม่ทำงาน ตรวจสอบว่าเปิดใช้งาน Heartbeat สำหรับ agent เริ่มต้นแล้ว และ target ไม่ใช่ none จากนั้นรัน openclaw memory status --deep อีกครั้งหลังช่วง Heartbeat ถัดไป