Sessions and memory

Dreaming

Dreaming คือระบบรวมหน่วยความจำเบื้องหลังใน memory-core ระบบจะย้ายสัญญาณระยะสั้นที่มีความสำคัญไปยังหน่วยความจำถาวร พร้อมคงกระบวนการให้สามารถอธิบายและตรวจสอบได้

สิ่งที่ Dreaming เขียน

  • สถานะของเครื่อง ใน memory/.dreams/ (พื้นที่จัดเก็บการเรียกคืน สัญญาณของเฟส จุดตรวจสอบการนำเข้าข้อมูล และล็อก)
  • ผลลัพธ์ที่มนุษย์อ่านได้ ใน DREAMS.md (หรือ dreams.md ที่มีอยู่) และไฟล์รายงานเฟสที่เลือกสร้างได้ภายใต้ memory/dreaming/<phase>/YYYY-MM-DD.md

การเลื่อนระดับเป็นหน่วยความจำระยะยาวยังคงเขียนเฉพาะไปยัง MEMORY.md

โมเดลเฟส

Dreaming ทำงานเป็นสามเฟสที่ประสานกันต่อหนึ่งรอบ โดยเรียงตามลำดับ: เบา -> REM -> ลึก เฟสเหล่านี้เป็นเฟสการทำงานภายใน ไม่ใช่โหมดแยกที่ผู้ใช้กำหนดค่าได้

เฟส วัตถุประสงค์ การเขียนแบบถาวร
เบา จัดเรียงและพักข้อมูลระยะสั้นล่าสุด ไม่
REM ทบทวนธีมและแนวคิดที่เกิดซ้ำ ไม่
ลึก ให้คะแนนและเลื่อนระดับรายการที่เหมาะแก่การเก็บถาวร ใช่ (MEMORY.md)
เฟสเบา
  • อ่านสถานะการเรียกคืนระยะสั้นล่าสุด ไฟล์หน่วยความจำรายวัน และบันทึกถอดความเซสชันที่ลบข้อมูลอ่อนไหวแล้วเมื่อมี
  • ขจัดสัญญาณซ้ำและพักบรรทัดที่เป็นตัวเลือก
  • เขียนบล็อก ## Light Sleep ที่ระบบจัดการเมื่อพื้นที่จัดเก็บรวมผลลัพธ์แบบอินไลน์
  • บันทึกสัญญาณการเสริมแรงสำหรับการจัดอันดับในเฟสลึกภายหลัง
  • ไม่เขียนไปยัง MEMORY.md โดยเด็ดขาด
เฟส REM
  • สร้างสรุปธีมและการทบทวนจากร่องรอยระยะสั้นล่าสุด
  • เขียนบล็อก ## REM Sleep ที่ระบบจัดการเมื่อพื้นที่จัดเก็บรวมผลลัพธ์แบบอินไลน์
  • บันทึกสัญญาณการเสริมแรงจาก REM ที่ใช้ในการจัดอันดับเฟสลึก
  • ไม่เขียนไปยัง MEMORY.md โดยเด็ดขาด
เฟสลึก
  • จัดอันดับตัวเลือกด้วยการให้คะแนนแบบถ่วงน้ำหนักและเกณฑ์ขั้นต่ำ (minScore, minRecallCount, minUniqueQueries ต้องผ่านทั้งหมด)
  • โหลดส่วนย่อยจากไฟล์รายวันที่ใช้งานอยู่ใหม่ก่อนเขียน เพื่อข้ามส่วนย่อยที่ล้าสมัยหรือถูกลบ
  • เพิ่มรายการที่เลื่อนระดับแล้วต่อท้าย MEMORY.md
  • เขียนสรุป ## Deep Sleep ลงใน DREAMS.md และเขียนลงใน memory/dreaming/deep/YYYY-MM-DD.md ได้ตามต้องการ

การนำเข้าบันทึกถอดความเซสชัน

Dreaming สามารถนำเข้าบันทึกถอดความเซสชันที่ลบข้อมูลอ่อนไหวแล้วเข้าสู่คลังข้อมูลของ Dreaming เมื่อมี บันทึกถอดความจะป้อนข้อมูลให้เฟสเบาร่วมกับสัญญาณหน่วยความจำรายวันและร่องรอยการเรียกคืน เนื้อหาส่วนบุคคลและเนื้อหาอ่อนไหวจะถูกลบก่อนนำเข้า

ไดอารีความฝัน

Dreaming เก็บ ไดอารีความฝัน แบบบรรยายไว้ใน DREAMS.md หลังจากแต่ละเฟสมีข้อมูลเพียงพอ memory-core จะเรียกใช้งาน subagent เบื้องหลังแบบพยายามให้ดีที่สุดและเพิ่มบันทึกไดอารีสั้น ๆ ต่อท้าย โดยใช้โมเดลรันไทม์เริ่มต้น เว้นแต่จะกำหนดค่า dreaming.model หากโมเดลที่กำหนดค่าไว้ไม่พร้อมใช้งาน การเรียกใช้ไดอารีจะลองอีกครั้งหนึ่งด้วยโมเดลเริ่มต้นของเซสชัน ส่วนความล้มเหลวด้านความเชื่อถือหรือรายการอนุญาตจะไม่ถูกลองซ้ำ และยังคงปรากฏในบันทึกแทนการย้อนกลับไปใช้รายการไดอารีทั่วไปโดยไม่แจ้งให้ทราบ

นอกจากนี้ยังมีช่องทางเติมข้อมูลย้อนหลังที่มีหลักฐานรองรับสำหรับงานตรวจสอบและกู้คืน:

คำสั่งเติมข้อมูลย้อนหลัง
  • memory rem-harness --path ... --grounded แสดงตัวอย่างผลลัพธ์ไดอารีที่มีหลักฐานรองรับจากบันทึก YYYY-MM-DD.md ในอดีต
  • memory rem-backfill --path ... เขียนรายการไดอารีที่มีหลักฐานรองรับและย้อนกลับได้ลงใน DREAMS.md
  • memory rem-backfill --path ... --stage-short-term พักตัวเลือกสำหรับการเก็บถาวรที่มีหลักฐานรองรับไว้ในพื้นที่จัดเก็บหลักฐานระยะสั้นเดียวกับที่เฟสลึกตามปกติใช้
  • memory rem-backfill --rollback และ --rollback-short-term ลบอาร์ติแฟกต์การเติมข้อมูลย้อนหลังที่พักไว้เหล่านั้น โดยไม่แตะรายการไดอารีทั่วไปหรือการเรียกคืนระยะสั้นที่ใช้งานอยู่

Control UI เปิดให้ใช้ขั้นตอนเติมข้อมูลย้อนหลังและรีเซ็ตไดอารีแบบเดียวกันในแท็บหน่วยความจำของเอเจนต์ (หน้าเอเจนต์) เพื่อให้ตรวจสอบผลลัพธ์ในฉากความฝันได้ก่อนตัดสินใจว่าตัวเลือกที่มีหลักฐานรองรับสมควรได้รับการเลื่อนระดับหรือไม่ ช่องทางฉากที่มีหลักฐานรองรับซึ่งแยกต่างหากจะแสดงว่ารายการระยะสั้นใดที่พักไว้มาจากการเล่นประวัติย้อนหลัง รายการที่เลื่อนระดับใดมีข้อมูลที่มีหลักฐานรองรับเป็นปัจจัยหลัก และให้ล้างเฉพาะรายการที่พักไว้ซึ่งมีเฉพาะหลักฐานรองรับได้โดยไม่แตะสถานะระยะสั้นที่ใช้งานอยู่

สัญญาณการจัดอันดับเฟสลึก

การจัดอันดับเฟสลึกใช้สัญญาณพื้นฐานแบบถ่วงน้ำหนักหกรายการร่วมกับการเสริมแรงจากเฟส:

สัญญาณ น้ำหนัก คำอธิบาย
ความเกี่ยวข้อง 0.30 คุณภาพการเรียกคืนโดยเฉลี่ยของรายการ
ความถี่ 0.24 จำนวนสัญญาณระยะสั้นที่รายการสะสมได้
ความหลากหลายของคำค้น 0.15 บริบทคำค้น/วันที่แตกต่างกันซึ่งทำให้รายการปรากฏ
ความใหม่ 0.15 คะแนนความใหม่ที่ลดลงตามเวลา
การรวมหน่วยความจำ 0.10 ความแข็งแกร่งของการเกิดซ้ำหลายวัน
ความสมบูรณ์เชิงแนวคิด 0.06 ความหนาแน่นของแท็กแนวคิดจากส่วนย่อย/พาธ

การพบข้อมูลในเฟสเบาและ REM จะเพิ่มคะแนนเล็กน้อยซึ่งลดลงตามความใหม่จาก memory/.dreams/phase-signals.json

ผลการทดลองเงาสามารถซ้อนทับคะแนนพื้นฐานในฐานะสัญญาณสำหรับการตรวจสอบก่อนการเขียนแบบถาวร: การทดลองที่เป็นประโยชน์จะเพิ่มคะแนนให้ตัวเลือกเล็กน้อยภายในขอบเขต การทดลองที่เป็นกลางจะคงสถานะเลื่อนการพิจารณาไว้ และการทดลองที่เป็นอันตรายจะทำเครื่องหมายว่าตัวเลือกถูกปฏิเสธสำหรับรอบการให้คะแนนนั้น สัญญาณนี้ใช้สำหรับรายงานเท่านั้น โดยสามารถเปลี่ยนลำดับตัวเลือกหรือข้อมูลเมตาการตรวจสอบได้ แต่จะไม่เขียนไปยัง MEMORY.md หรือเลื่อนระดับตัวเลือกด้วยตัวเองโดยเด็ดขาด

ความครอบคลุมของรายงานการทดลองเงาใน QA

QA Lab มีสถานการณ์ที่ใช้สำหรับรายงานเท่านั้นเพื่อสำรวจว่าการทดลองเงาของ Dreaming ในอนาคตอาจตรวจสอบหน่วยความจำตัวเลือกก่อนการเลื่อนระดับอย่างไร โดยเอเจนต์จะเปรียบเทียบคำตอบพื้นฐานกับคำตอบที่สามารถใช้หน่วยความจำตัวเลือก แล้วเขียนรายงานในเครื่องซึ่งประกอบด้วยคำตัดสิน เหตุผล และแฟล็กความเสี่ยง ความครอบคลุมนี้จำกัดอยู่ใน QA โดยตรวจสอบว่าอาร์ติแฟกต์รายงานยังคงแยกจาก MEMORY.md และเอเจนต์ไม่อ้างว่าตัวเลือกได้รับการเลื่อนระดับแล้ว การดำเนินการนี้ไม่ได้เพิ่มพฤติกรรมการทดลองเงาในระบบใช้งานจริงหรือเปลี่ยนกลไกการเลื่อนระดับของเฟสลึก

ตัวเรียกใช้การทดลองเงา memory-core คงสัญญารูปแบบใช้สำหรับรายงานเท่านั้นเช่นเดียวกันสำหรับพาธโค้ดที่ต้องการอาร์ติแฟกต์ที่เสถียร โดยรับตัวเลือก พรอมต์การทดลอง ผลลัพธ์พื้นฐาน ผลลัพธ์ของตัวเลือก คำตัดสิน เหตุผล แฟล็กความเสี่ยง และข้อมูลอ้างอิงหลักฐาน จากนั้นเขียนรายงานด้วย promotion action: report-only คำตัดสินที่เป็นประโยชน์จะแมปกับคำแนะนำ promote คำตัดสินที่เป็นกลางจะแมปกับ defer และคำตัดสินที่เป็นอันตรายจะแมปกับ reject โดยไม่มีรายการใดเขียนไปยัง MEMORY.md หรือใช้การเลื่อนระดับของเฟสลึก

การจัดกำหนดการ

เมื่อเปิดใช้งาน memory-core จะจัดการงาน Cron หนึ่งงานโดยอัตโนมัติสำหรับรอบ Dreaming แบบเต็ม พร้อมขจัดรายการซ้ำระหว่างพื้นที่ทำงานรันไทม์หลักกับพื้นที่ทำงานของเอเจนต์ที่กำหนดค่าไว้ เพื่อไม่ให้การกระจายพื้นที่ทำงานของ subagent ตัด DREAMS.md และสถานะหน่วยความจำของเอเจนต์หลักออก

การตั้งค่า ค่าเริ่มต้น
dreaming.frequency 0 3 * * *
dreaming.model โมเดลเริ่มต้น

เริ่มต้นอย่างรวดเร็ว

เปิดใช้ Dreaming

json
{  "plugins": {    "entries": {      "memory-core": {        "config": {          "dreaming": {            "enabled": true          }        }      }    }  }}

กำหนดรอบการทำงานเอง

json
{  "plugins": {    "entries": {      "memory-core": {        "config": {          "dreaming": {            "enabled": true,            "timezone": "America/Los_Angeles",            "frequency": "0 */6 * * *"          }        }      }    }  }}

คำสั่งเครื่องหมายทับ

text
/dreaming status/dreaming on/dreaming off/dreaming help

/dreaming on และ /dreaming off กำหนดให้ผู้เรียกจากช่องทางต้องมีสถานะเจ้าของ หรือใช้ operator.admin สำหรับไคลเอนต์ Gateway ส่วน /dreaming status และ /dreaming help เป็นแบบอ่านอย่างเดียว

ขั้นตอนการทำงานของ CLI

แสดงตัวอย่าง / ใช้การเลื่อนระดับ

bash
openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deep

memory promote แบบดำเนินการเองจะใช้เกณฑ์ของเฟสลึกตามค่าเริ่มต้น เว้นแต่จะเขียนทับด้วยแฟล็ก CLI

อธิบายการเลื่อนระดับ

อธิบายว่าเหตุใดตัวเลือกหนึ่งจึงจะหรือจะไม่ได้รับการเลื่อนระดับ:

bash
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --json

แสดงตัวอย่างชุดทดสอบ REM

แสดงตัวอย่างการทบทวนของ REM ข้อเท็จจริงตัวเลือก และผลลัพธ์การเลื่อนระดับของเฟสลึกโดยไม่เขียนข้อมูลใด ๆ:

bash
openclaw memory rem-harnessopenclaw memory rem-harness --json

ค่าเริ่มต้นที่สำคัญ

การตั้งค่าทั้งหมดอยู่ภายใต้ plugins.entries.memory-core.config.dreaming

enabledbooleandefault: false

เปิดหรือปิดรอบ Dreaming

frequencystringdefault: 0 3 * * *

รอบเวลา Cron สำหรับรอบ Dreaming แบบเต็ม

modelstring

การเขียนทับโมเดล subagent ของไดอารีความฝันซึ่งกำหนดหรือไม่ก็ได้ ใช้ค่า provider/model มาตรฐานเมื่อกำหนดรายการอนุญาต allowedModels ของ subagent ด้วย

phases.deep.maxPromotedSnippetTokensnumberdefault: 160

จำนวนโทเค็นโดยประมาณสูงสุดที่เก็บจากแต่ละส่วนย่อยการเรียกคืนระยะสั้นซึ่งเลื่อนระดับเข้าสู่ MEMORY.md ที่มาของการจัดอันดับยังคงมองเห็นได้

UI ความฝัน

เมื่อเปิดใช้งาน แท็บ ความฝัน ของ Gateway จะแสดง:

  • สถานะเปิดใช้งาน Dreaming ปัจจุบัน
  • สถานะระดับเฟสและการมีอยู่ของรอบที่ระบบจัดการ
  • จำนวนรายการระยะสั้น รายการที่มีหลักฐานรองรับ สัญญาณ และรายการที่เลื่อนระดับวันนี้
  • เวลาของการเรียกใช้ตามกำหนดการครั้งถัดไป
  • ช่องทางฉากที่มีหลักฐานรองรับซึ่งแยกต่างหากสำหรับรายการเล่นประวัติย้อนหลังที่พักไว้
  • ตัวอ่านไดอารีความฝันแบบขยายได้ซึ่งใช้ข้อมูลจาก doctor.memory.dreamDiary

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

Was this useful?
On this page

On this page