Sessions and memory
Dreaming
Dreaming هو نظام دمج الذاكرة في الخلفية ضمن memory-core. يساعد OpenClaw على نقل الإشارات القصيرة الأمد القوية إلى ذاكرة دائمة مع إبقاء العملية قابلة للشرح والمراجعة.
ما الذي يكتبه Dreaming
يحتفظ Dreaming بنوعين من المخرجات:
- حالة الآلة في
memory/.dreams/(مخزن الاستدعاء، إشارات المراحل، نقاط تحقق الإدخال، الأقفال). - مخرجات قابلة للقراءة البشرية في
DREAMS.md(أوdreams.mdالموجود) وملفات تقارير مراحل اختيارية ضمنmemory/dreaming/<phase>/YYYY-MM-DD.md.
لا تزال الترقية طويلة الأمد تكتب فقط إلى MEMORY.md.
نموذج المراحل
يستخدم Dreaming ثلاث مراحل تعاونية:
| المرحلة | الغرض | الكتابة الدائمة |
|---|---|---|
| Light | فرز وتجهيز المواد القصيرة الأمد الحديثة | لا |
| Deep | تسجيل المرشحين الدائمين وترقيتهم | نعم (MEMORY.md) |
| REM | التأمل في السمات والأفكار المتكررة | لا |
هذه المراحل تفاصيل تنفيذ داخلية، وليست "أوضاعًا" منفصلة يضبطها المستخدم.
مرحلة Light
تستوعب مرحلة Light إشارات الذاكرة اليومية الحديثة وآثار الاستدعاء، وتزيل التكرار منها، وتجهّز أسطرًا مرشحة.
- تقرأ من حالة الاستدعاء القصيرة الأمد، وملفات الذاكرة اليومية الحديثة، ونصوص الجلسات المنقحة عند توفرها.
- تكتب كتلة مُدارة
## Light Sleepعندما يتضمن التخزين مخرجات مضمنة. - تسجل إشارات تعزيز للترتيب العميق لاحقًا.
- لا تكتب أبدًا إلى
MEMORY.md.
مرحلة Deep
تقرر مرحلة Deep ما يصبح ذاكرة طويلة الأمد.
- ترتب المرشحين باستخدام تسجيل موزون وبوابات عتبات.
- تتطلب اجتياز
minScoreوminRecallCountوminUniqueQueries. - تعيد تحميل المقاطع من الملفات اليومية الحية قبل الكتابة، بحيث يتم تخطي المقاطع القديمة أو المحذوفة.
- تلحق الإدخالات المرقّاة بـ
MEMORY.md. - تكتب ملخص
## Deep SleepفيDREAMS.mdوتكتب اختياريًاmemory/dreaming/deep/YYYY-MM-DD.md.
مرحلة REM
تستخرج مرحلة REM الأنماط والإشارات التأملية.
- تبني ملخصات السمات والتأملات من الآثار القصيرة الأمد الحديثة.
- تكتب كتلة مُدارة
## REM Sleepعندما يتضمن التخزين مخرجات مضمنة. - تسجل إشارات تعزيز REM التي يستخدمها الترتيب العميق.
- لا تكتب أبدًا إلى
MEMORY.md.
إدخال نصوص الجلسات
يمكن لـ Dreaming إدخال نصوص الجلسات المنقحة إلى مجموعة بيانات Dreaming. عند توفر النصوص، تُغذّى في مرحلة Light إلى جانب إشارات الذاكرة اليومية وآثار الاستدعاء. تُنقّح المحتويات الشخصية والحساسة قبل الإدخال.
مفكرة الأحلام
يحتفظ Dreaming أيضًا بـ مفكرة أحلام سردية في DREAMS.md. بعد أن تتوفر لكل مرحلة مادة كافية، يشغّل memory-core دورة وكيل فرعي في الخلفية بأفضل جهد ويلحق إدخال مفكرة قصيرًا. يستخدم نموذج وقت التشغيل الافتراضي ما لم يتم ضبط dreaming.model. إذا كان النموذج المضبوط غير متاح، تعيد مفكرة الأحلام المحاولة مرة واحدة باستخدام النموذج الافتراضي للجلسة.
يوجد أيضًا مسار تعبئة خلفية تاريخي مؤسَّس لأعمال المراجعة والاسترداد:
أوامر التعبئة الخلفية
- يعاين
memory rem-harness --path ... --groundedمخرجات مفكرة مؤسَّسة من ملاحظاتYYYY-MM-DD.mdالتاريخية. - يكتب
memory rem-backfill --path ...إدخالات مفكرة مؤسَّسة وقابلة للعكس فيDREAMS.md. - يجهّز
memory rem-backfill --path ... --stage-short-termمرشحين دائمين مؤسَّسين في مخزن الأدلة القصيرة الأمد نفسه الذي تستخدمه مرحلة Deep العادية بالفعل. - يزيل
memory rem-backfill --rollbackو--rollback-short-termآثار التعبئة الخلفية المجهزة تلك من دون لمس إدخالات المفكرة العادية أو الاستدعاء القصير الأمد الحي.
تعرض واجهة التحكم تدفق التعبئة الخلفية/إعادة الضبط نفسه للمفكرة حتى تتمكن من فحص النتائج في مشهد الأحلام قبل أن تقرر ما إذا كان المرشحون المؤسَّسون يستحقون الترقية. يعرض المشهد أيضًا مسارًا مؤسَّسًا مميزًا حتى ترى أي إدخالات قصيرة الأمد مجهزة جاءت من إعادة تشغيل تاريخية، وأي عناصر مرقّاة كانت بقيادة مؤسَّسة، وتمسح فقط الإدخالات المؤسَّسة فقط المجهزة من دون لمس حالة الذاكرة القصيرة الأمد الحية العادية.
إشارات الترتيب العميق
يستخدم الترتيب العميق ست إشارات أساسية موزونة بالإضافة إلى تعزيز المراحل:
| الإشارة | الوزن | الوصف |
|---|---|---|
| التكرار | 0.24 | عدد الإشارات القصيرة الأمد التي جمعها الإدخال |
| الملاءمة | 0.30 | متوسط جودة الاسترجاع للإدخال |
| تنوع الاستعلامات | 0.15 | سياقات الاستعلام/اليوم المميزة التي أظهرته |
| الحداثة | 0.15 | درجة حداثة متناقصة زمنيًا |
| الدمج | 0.10 | قوة التكرار على عدة أيام |
| الثراء المفاهيمي | 0.06 | كثافة وسوم المفاهيم من المقطع/المسار |
تضيف إصابات مرحلتي Light وREM تعزيزًا صغيرًا متناقصًا بالحداثة من memory/.dreams/phase-signals.json.
الجدولة
عند التفعيل، يدير memory-core تلقائيًا مهمة cron واحدة لمسح Dreaming كامل. يشغّل كل مسح المراحل بالترتيب: Light → REM → Deep.
يتضمن المسح مساحة عمل وقت التشغيل الأساسية وأي مساحات عمل وكلاء مضبوطة، مع إزالة التكرار حسب المسار، لذلك لا يستبعد تفريع مساحات عمل الوكلاء الفرعيين ملف DREAMS.md وحالة الذاكرة للوكيل الرئيسي.
سلوك الوتيرة الافتراضي:
| الإعداد | الافتراضي |
|---|---|
dreaming.frequency |
0 3 * * * |
dreaming.model |
النموذج الافتراضي |
البدء السريع
تفعيل Dreaming
{
"plugins": {
"entries": {
"memory-core": {
"config": {
"dreaming": {
"enabled": true
}
}
}
}
}
}
وتيرة مسح مخصصة
{
"plugins": {
"entries": {
"memory-core": {
"config": {
"dreaming": {
"enabled": true,
"timezone": "America/Los_Angeles",
"frequency": "0 */6 * * *"
}
}
}
}
}
}
أمر الشرطة المائلة
/dreaming status
/dreaming on
/dreaming off
/dreaming help
سير عمل CLI
معاينة الترقية / تطبيقها
openclaw memory promote
openclaw memory promote --apply
openclaw memory promote --limit 5
openclaw memory status --deep
يستخدم memory promote اليدوي عتبات مرحلة Deep افتراضيًا ما لم تُستبدل بعلامات CLI.
شرح الترقية
اشرح سبب ترقية مرشح محدد أو عدم ترقيته:
openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
معاينة أداة REM
عاين تأملات REM، والحقائق المرشحة، ومخرجات الترقية العميقة من دون كتابة أي شيء:
openclaw memory rem-harness
openclaw memory rem-harness --json
الإعدادات الافتراضية الأساسية
توجد جميع الإعدادات تحت plugins.entries.memory-core.config.dreaming.
enabledbooleanفعّل أو عطّل مسح Dreaming.
frequencystringوتيرة Cron لمسح Dreaming الكامل.
modelstringاستبدال اختياري لنموذج الوكيل الفرعي لمفكرة الأحلام. استخدم قيمة provider/model معيارية عند تعيين قائمة سماح allowedModels للوكيل الفرعي أيضًا.
واجهة الأحلام
عند التفعيل، يعرض تبويب الأحلام في Gateway ما يلي:
- حالة تفعيل Dreaming الحالية
- الحالة على مستوى المراحل ووجود المسح المُدار
- أعداد القصير الأمد، والمؤسَّس، والإشارات، والمرقّى اليوم
- توقيت التشغيل المجدول التالي
- مسار مشهد مؤسَّس مميز لإدخالات إعادة التشغيل التاريخية المجهزة
- قارئ مفكرة أحلام قابل للتوسيع ومدعوم بـ
doctor.memory.dreamDiary
Dreaming لا يعمل أبدًا: تعرض الحالة أنه محظور
إذا أبلغ openclaw memory status عن Dreaming status: blocked، فإن Cron المُدار موجود لكن Heartbeat للوكيل الافتراضي لا يعمل. تحقق من أن Heartbeat مفعّل للوكيل الافتراضي وأن هدفه ليس none، ثم شغّل openclaw memory status --deep مجددًا بعد فترة Heartbeat التالية.