Sessions and memory

نظرة عامة على الذاكرة

يتذكر OpenClaw الأشياء من خلال كتابة ملفات Markdown عادية في مساحة عمل الوكيل (المسار الافتراضي ~/.openclaw/workspace). لا يتذكر النموذج سوى ما يُحفَظ على القرص؛ ولا توجد حالة مخفية.

آلية العمل

لدى الوكيل ثلاثة ملفات متعلقة بالذاكرة:

  • MEMORY.md — الذاكرة طويلة الأمد. الحقائق والتفضيلات والقرارات الدائمة. تُحمَّل في بداية الجلسة.
  • memory/YYYY-MM-DD.md (أو memory/YYYY-MM-DD-<slug>.md) — الملاحظات اليومية. السياق الجاري والمشاهدات. تُحمَّل تلقائيًا ملاحظات اليوم والأمس المؤرخة عند استخدام /new أو /reset مجردًا؛ كما تُلتقط الصيغ ذات الاسم الوصفي، مثل تلك التي يكتبها خطاف ذاكرة الجلسة المضمّن، إلى جانب الملف الذي يحمل التاريخ فقط.
  • DREAMS.md (اختياري) — يوميات الأحلام وملخصات جولات Dreaming للمراجعة البشرية، بما في ذلك إدخالات الاستكمال التاريخي المستندة إلى أدلة.

ما الذي يوضع وأين

يمثل MEMORY.md الطبقة الموجزة والمنقحة: الحقائق الدائمة والتفضيلات والقرارات المستمرة والملخصات القصيرة التي ينبغي أن تكون متاحة في بداية الجلسة. وهو ليس نصًا خامًا للجلسة أو سجلًا يوميًا أو أرشيفًا شاملًا.

تمثل ملفات memory/YYYY-MM-DD.md طبقة العمل: الملاحظات اليومية المفصلة والمشاهدات وملخصات الجلسات والسياق الخام الذي قد يظل مفيدًا لاحقًا. تُفهرس هذه الملفات من أجل memory_search وmemory_get، لكنها لا تُدرج في مطالبة التمهيد عند كل دور.

مع مرور الوقت، يستخلص الوكيل المواد المفيدة من الملاحظات اليومية ويضعها في MEMORY.md، ويزيل الإدخالات القديمة من الذاكرة طويلة الأمد. تنفذ تعليمات مساحة العمل المُنشأة وتدفق Heartbeat ذلك دوريًا؛ ولا حاجة إلى تحرير MEMORY.md يدويًا لكل تفصيل.

إذا تجاوز MEMORY.md ميزانية ملف التمهيد، يُبقي OpenClaw الملف على القرص كاملًا، لكنه يقتطع النسخة المُدرجة في السياق. اعتبر ذلك إشارة إلى نقل المواد المفصلة إلى memory/*.md، أو الاحتفاظ بملخص دائم فقط في MEMORY.md، أو رفع حدود التمهيد إذا أردت تخصيص ميزانية أكبر للمطالبة. استخدم /context list أو /context detail أو openclaw doctor لرؤية الأحجام الخام والمدرجة وحالة الاقتطاع.

الاستيراد من مساعدي البرمجة

يمكن لواجهة التحكم استيراد الذاكرة المحلية الموجودة من Codex وClaude Code. افتح SettingsImport Memory، واختر الوكيل الوجهة، وراجع الملفات المكتشفة، ثم أكد الاستيراد. لا ينسخ OpenClaw سوى ذاكرة Markdown:

  • Codex: ملفا MEMORY.md وmemory_summary.md الموحّدان ضمن ~/.codex/memories (أو CODEX_HOME/memories). لا تُستورد ملفات التنفيذ الخام ونصوص الجلسات.
  • Claude Code: ملفات Markdown من دليل الذاكرة التلقائية لكل مشروع ضمن ~/.claude/projects/*/memory، بالإضافة إلى autoMemoryDirectory الذي يضبطه المستخدم، عند وجوده. لا تُعد تعليمات المشروع والجلسات والإعدادات وبيانات الاعتماد جزءًا من هذا الإجراء المخصص للذاكرة فقط.

تبقى الملفات المستوردة منفصلة ضمن memory/imports/codex/ و memory/imports/claude-code/ في مساحة عمل الوكيل المحدد. وتُفهرس من أجل memory_search، وتتاح عبر memory_get؛ ولا تُدمج في ملف التمهيد MEMORY.md الخاص بالوكيل. وتُترك ملفات المصدر بلا تغيير.

تعرض المعاينة تعارضات الوجهة. فعّل Replace existing imports لاستبدال تلك الملفات؛ يؤدي التطبيق إلى إنشاء نسخة احتياطية موثقة قبل الاستيراد، ويحفظ نسخًا على مستوى العناصر من الملفات المستبدلة في تقرير الترحيل.

الذكريات الحساسة للإجراءات

معظم الذكريات عبارة عن ملاحظات Markdown عادية. يؤثر بعضها في ما ينبغي للوكيل فعله لاحقًا؛ وفي تلك الحالات، سجّل متى يكون التصرف بناءً على الملاحظة آمنًا، وليس الحقيقة وحدها.

سجّل حدود الإجراء هذه عندما تتعلق الملاحظة بما يلي:

  • متطلبات الموافقة أو الإذن،
  • القيود المؤقتة،
  • عمليات التسليم إلى جلسة أو سلسلة أو شخص آخر،
  • شروط انتهاء الصلاحية،
  • توقيت أمان التصرف،
  • صلاحية المصدر أو المالك،
  • تعليمات لتجنب إجراء مغرٍ.

توضح الذاكرة المفيدة الحساسة للإجراءات ما يلي:

  • ما الذي يغيّر السلوك المستقبلي،
  • متى تنطبق أو تحت أي شرط،
  • متى تنتهي صلاحيتها، أو ما الذي يتيح اتخاذ الإجراء،
  • ما الذي ينبغي للوكيل تجنب فعله،
  • من هو المصدر أو المالك، إذا كان ذلك يؤثر في الثقة أو الصلاحية.

يمكن للذاكرة حفظ سياق الموافقة، لكنها لا تفرض السياسة. استخدم إعدادات الموافقة في OpenClaw والعزل والمهام المجدولة لفرض ضوابط تشغيلية صارمة.

مثال:

md
يجري تصميم ترحيل API في جلسة أخرى. ينبغي ألا تعدّل الأدوار المستقبليةتنفيذ API من هذه السلسلة؛ ولا تستخدم النتائج هنا إلاكمدخلات للتصميم حتى تكتمل خطة الترحيل.

مثال آخر:

md
يحتاج تقرير من مصدر غير موثوق إلى المراجعة قبل اعتماده. ينبغي للأدوار المستقبليةالتعامل معه كدليل فقط؛ ولا تخزّنه كذاكرة دائمة حتىيؤكد مراجع موثوق المحتويات.

هذا ليس مخططًا إلزاميًا لكل ذاكرة؛ إذ يمكن أن تبقى الحقائق البسيطة موجزة. استخدم الحدود الحساسة للإجراءات عندما قد يؤدي فقدان سياق التوقيت أو الصلاحية أو انتهاء الصلاحية أو أمان التصرف إلى اتخاذ الوكيل إجراءً خاطئًا لاحقًا.

استخدم الالتزامات للمتابعات المستنتجة قصيرة الأمد. واستخدم المهام المجدولة للتذكيرات الدقيقة وعمليات التحقق المؤقتة والعمل المتكرر. ويمكن للذاكرة أن تلخص السياق الدائم المحيط بأي من المسارين.

الالتزامات المستنتجة

بعض المتابعات المستقبلية ليست حقائق دائمة. فإذا ذكرت مقابلة غدًا، فقد تكون الذاكرة المفيدة هي «المتابعة بعد المقابلة»، لا «تخزين هذا إلى الأبد في MEMORY.md».

الالتزامات هي ذكريات متابعة اختيارية قصيرة الأمد لهذه الحالة. يستنتجها OpenClaw في مرور خلفي مخفي، ويقصر نطاقها على الوكيل والقناة نفسيهما، ويسلّم المتابعات المستحقة عبر Heartbeat. أما التذكيرات الصريحة، فتظل تستخدم المهام المجدولة.

أدوات الذاكرة

لدى الوكيل أداتان للعمل مع الذاكرة:

  • memory_search — تعثر على الملاحظات ذات الصلة باستخدام البحث الدلالي، حتى عندما تختلف الصياغة عن الأصل.
  • memory_get — تقرأ ملف ذاكرة محددًا أو نطاقًا من الأسطر.

توفر Plugin الذاكرة النشطة الأداتين (الافتراضية: memory-core).

البحث في الذاكرة

عند ضبط موفر تضمينات، يستخدم memory_search بحثًا هجينًا: تشابه المتجهات (المعنى الدلالي) مع مطابقة الكلمات المفتاحية (المصطلحات الدقيقة مثل المعرّفات ورموز الشيفرة). يعمل هذا مباشرةً باستخدام مفتاح API لأي موفر مدعوم.

راجع البحث في الذاكرة لمعرفة كيفية عمل البحث وخيارات الضبط وإعداد الموفر.

واجهات الذاكرة الخلفية

طبقة ويكي المعرفة

إذا أردت أن تتصرف الذاكرة الدائمة كقاعدة معرفة خاضعة للصيانة أكثر من كونها ملاحظات خامًا، فاستخدم Plugin المضمّنة memory-wiki. فهي تجمع المعرفة الدائمة في مخزن ويكي ببنية صفحات حتمية وادعاءات وأدلة منظمة وتتبع للتناقض والحداثة ولوحات معلومات مُنشأة وموجزات مجمعة وأدوات أصلية للويكي (wiki_status وwiki_search وwiki_get وwiki_apply وwiki_lint).

لا تستبدل memory-wiki Plugin الذاكرة النشطة؛ إذ تظل Plugin الذاكرة النشطة مسؤولة عن الاستدعاء والترقية وDreaming. وتضيف memory-wiki طبقة معرفة غنية بالمصدر إلى جانبها.

تفريغ الذاكرة التلقائي

قبل أن يلخّص Compaction محادثتك، يشغّل OpenClaw دورًا صامتًا يذكّر الوكيل بحفظ السياق المهم في ملفات الذاكرة. يكون هذا مفعّلًا افتراضيًا؛ اضبط agents.defaults.compaction.memoryFlush.enabled: false لإيقافه.

للإبقاء على دور التدبير هذا في نموذج محلي، اضبط تجاوزًا دقيقًا لا ينطبق إلا على دور تفريغ الذاكرة (ولا يرث سلسلة الرجوع الاحتياطي لنماذج الجلسة النشطة):

json
{  "agents": {    "defaults": {      "compaction": {        "memoryFlush": {          "model": "ollama/qwen3:8b"        }      }    }  }}

Dreaming

Dreaming هو مرور دمج خلفي اختياري للذاكرة. يجمع إشارات الاستدعاء قصيرة الأمد، ويقيّم المرشحين، ولا يرقّي إلا العناصر المؤهلة إلى الذاكرة طويلة الأمد (MEMORY.md):

  • اختياري: معطل افتراضيًا.
  • مجدول: عند تمكينه، يدير memory-core تلقائيًا مهمة Cron متكررة واحدة لجولة Dreaming كاملة.
  • مقيّد بحدود: يجب أن تجتاز الترقيات بوابات الدرجة وتكرار الاستدعاء وتنوع الاستعلامات.
  • قابل للمراجعة: تُكتب ملخصات المراحل وإدخالات اليوميات في DREAMS.md للمراجعة البشرية.

راجع Dreaming للاطلاع على سلوك المراحل وإشارات التقييم وتفاصيل يوميات الأحلام.

الاستكمال المستند إلى أدلة والترقية المباشرة

يحتوي نظام Dreaming على مسارين مترابطين للمراجعة:

  • يعمل Dreaming المباشر من مخزن Dreaming قصير الأمد ضمن memory/.dreams/، وهو ما تستخدمه المرحلة العميقة العادية لتحديد ما ينتقل إلى MEMORY.md.
  • يقرأ الاستكمال المستند إلى أدلة ملاحظات memory/YYYY-MM-DD.md التاريخية كملفات أيام مستقلة، ويكتب مخرجات مراجعة منظمة في DREAMS.md.

يفيد الاستكمال المستند إلى أدلة في إعادة تشغيل الملاحظات القديمة وفحص ما يعدّه النظام دائمًا، من دون تحرير MEMORY.md يدويًا.

bash
openclaw memory rem-backfill --path ./memory --stage-short-term

ينقل الخيار --stage-short-term المرشحين الدائمين المستندين إلى أدلة إلى مخزن Dreaming قصير الأمد نفسه الذي تستخدمه المرحلة العميقة العادية بالفعل؛ ولا يرقّيهم مباشرةً. ولذلك:

  • يظل DREAMS.md سطح المراجعة البشري.
  • يظل المخزن قصير الأمد سطح الترتيب الموجّه للآلة.
  • لا تكتب MEMORY.md سوى الترقية العميقة.

للتراجع عن إعادة تشغيل من دون المساس بإدخالات اليوميات العادية أو حالة الاستدعاء العادية:

bash
openclaw memory rem-backfill --rollbackopenclaw memory rem-backfill --rollback-short-term

CLI

bash
openclaw memory status          # تحقق من حالة الفهرس والموفرopenclaw memory search "query"  # ابحث من سطر الأوامرopenclaw memory index --force   # أعد بناء الفهرس

قراءة إضافية

Was this useful?
On this page

On this page