memory_search يعثر على الملاحظات ذات الصلة من ملفات الذاكرة لديك، حتى عندما تختلف
الصياغة عن النص الأصلي. يعمل ذلك عبر فهرسة الذاكرة إلى مقاطع صغيرة
والبحث فيها باستخدام التضمينات، أو الكلمات المفتاحية، أو كليهما.
البدء السريع
إذا كان لديك اشتراك GitHub Copilot، أو مفتاح API مكوّن لـ OpenAI أو Gemini أو Voyage أو Mistral،
فإن البحث في الذاكرة يعمل تلقائيًا. لتعيين مزوّد
صراحةً:
{
agents: {
defaults: {
memorySearch: {
provider: "openai", // or "gemini", "local", "ollama", etc.
},
},
},
}
في إعدادات نقاط النهاية المتعددة، يمكن أن يكون provider أيضًا إدخالًا مخصصًا
ضمن models.providers.<id>، مثل ollama-5080، عندما يعيّن ذلك المزوّد
api: "ollama" أو مالك محوّل تضمينات آخر.
للتضمينات المحلية من دون مفتاح API، عيّن provider: "local". قد تظل عمليات السحب من المصدر
تتطلب موافقة بناء أصلية: pnpm approve-builds ثم
pnpm rebuild node-llama-cpp.
تتطلب بعض نقاط نهاية التضمين المتوافقة مع OpenAI تسميات غير متماثلة مثل
input_type: "query" لعمليات البحث وinput_type: "document" أو "passage"
للمقاطع المفهرسة. اضبط ذلك باستخدام memorySearch.queryInputType و
memorySearch.documentInputType؛ راجع مرجع تهيئة الذاكرة.
المزوّدون المدعومون
| المزوّد | المعرّف | يحتاج مفتاح API | ملاحظات |
|---|
| Bedrock | bedrock | لا | يُكتشف تلقائيًا عندما تُحل سلسلة اعتماد AWS |
| Gemini | gemini | نعم | يدعم فهرسة الصور والصوت |
| GitHub Copilot | github-copilot | لا | يُكتشف تلقائيًا، ويستخدم اشتراك Copilot |
| Local | local | لا | نموذج GGUF، تنزيل بحجم ~0.6 GB |
| Mistral | mistral | نعم | يُكتشف تلقائيًا |
| Ollama | ollama | لا | محلي، ويجب تعيينه صراحةً |
| OpenAI | openai | نعم | يُكتشف تلقائيًا، وسريع |
| Voyage | voyage | نعم | يُكتشف تلقائيًا |
كيف يعمل البحث
يشغّل OpenClaw مساري استرجاع بالتوازي ويدمج النتائج:
- البحث المتجهي يعثر على الملاحظات ذات المعنى المشابه (“gateway host” يطابق
“الجهاز الذي يشغّل OpenClaw”).
- بحث الكلمات المفتاحية BM25 يعثر على التطابقات الدقيقة (المعرّفات، سلاسل الأخطاء، مفاتيح
التهيئة).
إذا كان مسار واحد فقط متاحًا (لا توجد تضمينات أو لا يوجد FTS)، يعمل المسار الآخر وحده.
عندما لا تتوفر التضمينات، يظل OpenClaw يستخدم الترتيب المعجمي فوق نتائج FTS بدلًا من الرجوع إلى ترتيب التطابق الدقيق الخام فقط. يعزز هذا الوضع المتدهور المقاطع ذات تغطية أقوى لمصطلحات الاستعلام ومسارات ملفات ذات صلة، مما يحافظ على فائدة الاسترجاع حتى من دون sqlite-vec أو مزوّد تضمينات.
تحسين جودة البحث
تساعد ميزتان اختياريتان عندما يكون لديك سجل ملاحظات كبير:
التلاشي الزمني
تفقد الملاحظات القديمة وزنها في الترتيب تدريجيًا بحيث تظهر المعلومات الأحدث أولًا.
مع عمر النصف الافتراضي البالغ 30 يومًا، تحصل ملاحظة من الشهر الماضي على 50% من
وزنها الأصلي. لا تتلاشى الملفات الدائمة مثل MEMORY.md مطلقًا.
فعّل التلاشي الزمني إذا كان لدى وكيلك أشهر من الملاحظات اليومية وكانت المعلومات
القديمة تتقدم باستمرار على السياق الأحدث.
MMR (التنوع)
يقلل النتائج المكررة. إذا كانت خمس ملاحظات كلها تذكر تهيئة الموجّه نفسها، فإن MMR
يضمن أن تغطي النتائج الأعلى موضوعات مختلفة بدلًا من التكرار.
فعّل MMR إذا كان memory_search يعيد باستمرار مقتطفات شبه مكررة من
ملاحظات يومية مختلفة.
تفعيل كليهما
{
agents: {
defaults: {
memorySearch: {
query: {
hybrid: {
mmr: { enabled: true },
temporalDecay: { enabled: true },
},
},
},
},
},
}
الذاكرة متعددة الوسائط
باستخدام Gemini Embedding 2، يمكنك فهرسة ملفات الصور والصوت إلى جانب
Markdown. تظل استعلامات البحث نصية، لكنها تطابق المحتوى المرئي والصوتي.
راجع مرجع تهيئة الذاكرة للإعداد.
البحث في ذاكرة الجلسة
يمكنك اختياريًا فهرسة نصوص الجلسات بحيث يستطيع memory_search استدعاء
المحادثات السابقة. هذا خيار يُفعّل صراحةً عبر
memorySearch.experimental.sessionMemory. راجع
مرجع التهيئة للتفاصيل.
استكشاف الأخطاء وإصلاحها
لا توجد نتائج؟ شغّل openclaw memory status للتحقق من الفهرس. إذا كان فارغًا، فشغّل
openclaw memory index --force.
مطابقات كلمات مفتاحية فقط؟ قد لا يكون مزوّد التضمينات لديك مهيأً. تحقق من
openclaw memory status --deep.
انتهت مهلة التضمينات المحلية؟ يستخدم ollama وlmstudio وlocal مهلة
دفعات مضمنة أطول افتراضيًا. إذا كان المضيف بطيئًا ببساطة، فعيّن
agents.defaults.memorySearch.sync.embeddingBatchTimeoutSeconds وأعد تشغيل
openclaw memory index --force.
لم يُعثر على نص CJK؟ أعد بناء فهرس FTS باستخدام
openclaw memory index --force.
قراءة إضافية
ذات صلة