تقنية

دليل إعداد نظام الذاكرة في OpenClaw: من الصفر إلى الإنتاج

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

دليل إعداد نظام الذاكرة في OpenClaw: من الصفر إلى الإنتاج

المستوى: متوسط–متقدم · وقت القراءة: ~8 دقائق


إذا كنت تبني نظام multi-agent باستخدام OpenClaw، فالذاكرة هي الفرق بين agent يبدأ من الصفر كل جلسة، وآخر يتذكر كل قرار وكل سياق سبق.

هذا الدليل يوثّق ثلاثة أشياء: كيفية التحقق من أن الذاكرة تعمل، وكيف تُصلح المشاكل الشائعة، وكيف تضمن أن كل agent يحفظ ويسترجع تلقائياً — بدون أي تكلفة API خارجية.


أولاً: كيف تعمل الذاكرة في OpenClaw

قبل أي إعداد، من المهم فهم أن OpenClaw يستخدم Hybrid Search — يجمع بين نوعين من البحث:

  • Vector Search — يبحث بالمعنى والسياق عبر embeddings
  • FTS (Full-Text Search) — يبحث بالكلمات المطابقة

كل agent عنده قاعدة بيانات SQLite منفصلة تُخزَّن في:

~/.openclaw/memory/<agent-name>.sqlite

والـ embedding model المستخدم افتراضياً هو nomic-embed-text عبر Ollama — يعني محلياً على جهازك، بدون أي API call خارجي.


ثانياً: التحقق من حالة الذاكرة

الخطوة الأولى دائماً: معرفة الوضع الحالي.

openclaw memory status

ناتج مثالي يبدو هكذا:

Memory Search (main)
Provider: openai (requested: openai)
Model: nomic-embed-text
Indexed: 9/9 files · 32 chunks
Dirty: no
Vector: ready
FTS: ready
Embedding cache: enabled (41)

ماذا تعني هذه المؤشرات؟

الحالةالمعنىالإجراء
Dirty: yesملفات جديدة لم تُفهرس بعدopenclaw memory index --force
Indexed: 0/X filesلم يحدث indexing أصلاًتحقق من مجلد الـ memory
memory directory missingالمجلد غير موجودأنشئه يدوياً (الخطوة التالية)

ثالثاً: إصلاح مشكلة المجلدات الناقصة

من أشيع المشاكل أن بعض الـ agents لا تجد مجلد memory الخاص بها، فتظهر رسالة Issues: memory directory missing.

الحل مباشر:

# أنشئ المجلدات لكل الـ agents دفعة واحدة
mkdir -p ~/.openclaw/workspace/agents/{summarizer,strategist,publisher,artist,researcher}/memory
 
# أعد بناء الـ index
openclaw memory index --force
 
# تحقق من النتيجة
openclaw memory status

النتيجة المتوقعة: كل الـ agents تظهر Dirty: no


رابعاً: الإعداد الذي يغفل عنه الجميع

هذه هي الخطوة الأهم — ويتجاوزها معظم الناس.

الـ indexing تلقائي، لكن كتابة المحادثات لملفات الذاكرة تحتاج إعداداً صريحاً.

تحقق أولاً من الإعداد الحالي:

grep -A 8 "memoryFlush" ~/.openclaw/openclaw.json
grep -A 8 "compaction" ~/.openclaw/openclaw.json

❌ الإعداد الناقص

"compaction": {
  "mode": "safeguard"
}

هذا يضغط المحادثة عند امتلاء الـ context — لكنه لا يكتب شيئاً للذاكرة.

✅ الإعداد الصحيح

"compaction": {
  "mode": "safeguard",
  "memoryFlush": {
    "enabled": true,
    "softThresholdTokens": 32000,
    "prompt": "Save decisions, state changes, lessons, blockers, approved actions, and open tasks to memory/YYYY-MM-DD.md. Skip routine conversation. If nothing worth storing: NO_FLUSH"
  }
},

بعد التعديل، أعد التشغيل:

openclaw gateway restart

خامساً: كيف تسير العملية بعد الإعداد

عندما يكون كل شيء مضبوطاً، هذا ما يحدث تلقائياً في كل جلسة:

المحادثة تقترب من الـ context limit
↓
memoryFlush يُفعَّل تلقائياً
↓
الـ Agent يكتب ملخصاً في memory/YYYY-MM-DD.md
↓
File Watcher يكتشف الملف الجديد
↓
nomic-embed-text يولّد embeddings محلياً (مجاناً)
↓
يُحفظ في SQLite جاهز للاسترجاع ✅

سادساً: إعداد أمر المحرر في Terminal

مشكلة شائعة عند تعديل ملفات الإعدادات: عدم وجود أمر المحرر في الـ PATH.

لإصلاحها من داخل أي محرر (VS Code، Cursor، Antigravity):

Cmd+Shift+P → "Install 'code' command in PATH"

لو تريد اسماً موحّداً بغض النظر عن المحرر:

# مثال لـ Antigravity
echo 'alias code="antigravity"' >> ~/.zshrc
source ~/.zshrc

قائمة التحقق النهائية

قبل ما تعتبر الإعداد مكتملاً، تأكد من كل نقطة:

  • كل الـ agents تظهر Dirty: no
  • Vector: ready على كل agent
  • FTS: ready على كل agent
  • memoryFlush مُفعَّل في openclaw.json
  • مجلدات memory موجودة لكل agent
  • nomic-embed-text يعمل محلياً بدون تكلفة API

خلاصة

الإعداد الافتراضي لـ OpenClaw يوفر indexing تلقائياً ممتازاً، لكنه لا يضمن حفظ المحادثات بدون تفعيل memoryFlush صراحةً.

الإصلاحات الموثّقة هنا تضمن أن كل agent في نظامك يتذكر السياق عبر الجلسات — مما يرفع جودة المخرجات بشكل ملحوظ، خصوصاً في أنظمة الـ multi-agent التي تمتد لفترات طويلة.


عبدالكريم العنزي — Astral