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 لعرض الأحجام الخام والمدرجة وحالة الاقتطاع.

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

معظم الذكريات عبارة عن ملاحظات 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