memory-lancedb هو Plugin ذاكرة خارجي رسمي يخزن الذاكرة طويلة الأمد في
LanceDB ويستخدم التضمينات للاسترجاع. يمكنه استرجاع الذكريات ذات الصلة تلقائيا
قبل دور النموذج والتقاط الحقائق المهمة بعد الرد.
استخدمه عندما تريد قاعدة بيانات متجهات محلية للذاكرة، أو تحتاج إلى نقطة نهاية
تضمين متوافقة مع OpenAI، أو تريد إبقاء قاعدة بيانات الذاكرة خارج مخزن الذاكرة
المدمج الافتراضي.
التثبيت
ثبّتmemory-lancedb قبل تعيين plugins.slots.memory = "memory-lancedb":
memory-lancedb هو Plugin Active Memory. فعّله بتحديد خانة الذاكرة
باستخدام plugins.slots.memory = "memory-lancedb". يمكن تشغيل Plugins مرافقة مثل
memory-wiki إلى جانبه، لكن Plugin واحدًا فقط يملك خانة Active Memory.البدء السريع
التضمينات المدعومة بالمزوّدين
يمكن لـmemory-lancedb استخدام محولات مزوّد تضمينات الذاكرة نفسها التي يستخدمها
memory-core. عيّن embedding.provider واحذف embedding.apiKey لاستخدام
ملف تعريف المصادقة المهيأ للمزوّد، أو متغير البيئة، أو
models.providers.<provider>.apiKey.
OPENAI_API_KEY، أو models.providers.openai.apiKey. يمكن للمستخدمين المعتمدين على OAuth فقط استخدام
مزوّد آخر قادر على التضمين مثل GitHub Copilot أو Ollama.
تضمينات Ollama
لتضمينات Ollama، يفضّل استخدام مزوّد تضمينات Ollama المضمن. يستخدم نقطة نهاية Ollama الأصلية/api/embed ويتبع قواعد المصادقة/عنوان URL الأساسي نفسها مثل
مزوّد Ollama الموثق في Ollama.
dimensions لنماذج التضمين غير القياسية. يعرف OpenClaw
الأبعاد الخاصة بـ text-embedding-3-small وtext-embedding-3-large؛ وتحتاج
النماذج المخصصة إلى القيمة في الإعدادات كي يتمكن LanceDB من إنشاء عمود المتجهات.
بالنسبة إلى نماذج التضمين المحلية الصغيرة، خفّض recallMaxChars إذا ظهرت لك أخطاء
طول السياق من الخادم المحلي.
المزوّدون المتوافقون مع OpenAI
ترفض بعض مزوّدات التضمين المتوافقة مع OpenAI معلمةencoding_format،
بينما تتجاهلها أخرى وتعيد دائمًا متجهات number[].
لذلك يحذف memory-lancedb معلمة encoding_format في طلبات التضمين ويقبل
إما استجابات مصفوفات الأعداد العشرية أو استجابات float32 المرمزة بـ base64.
إذا كانت لديك نقطة نهاية تضمينات خام متوافقة مع OpenAI ولا تملك
محول مزوّد مضمنًا، فاحذف embedding.provider (أو اتركه كـ openai) وعيّن
embedding.apiKey مع embedding.baseUrl. يحافظ هذا على مسار العميل المباشر
المتوافق مع OpenAI.
عيّن embedding.dimensions للمزوّدين الذين لا تكون أبعاد نماذجهم مدمجة.
على سبيل المثال، يستخدم ZhiPu embedding-3 أبعادًا بقيمة 2048:
حدود الاسترجاع والالتقاط
يحتويmemory-lancedb على حدين منفصلين للنص:
يتحكم
recallMaxChars في الاسترجاع التلقائي، وأداة memory_recall، ومسار استعلام
memory_forget، وopenclaw ltm search. يفضّل الاسترجاع التلقائي
أحدث رسالة مستخدم من الدور، ويعود إلى الموجّه الكامل فقط عندما لا تكون هناك
رسالة مستخدم متاحة. هذا يبقي بيانات تعريف القناة وكتل الموجّهات الكبيرة
خارج طلب التضمين.
يتحكم captureMaxChars فيما إذا كان الرد قصيرًا بما يكفي للنظر فيه
للالتقاط التلقائي. ولا يحد من تضمينات استعلامات الاسترجاع.
يتيح لك customTriggers إضافة عبارات التقاط تلقائي حرفية دون كتابة
تعابير نمطية. تتضمن المشغلات المدمجة عبارات ذاكرة شائعة بالإنجليزية والتشيكية
والصينية واليابانية والكورية.
الأوامر
عندما يكونmemory-lancedb هو Plugin الذاكرة النشط، فإنه يسجل مساحة أسماء CLI
ltm:
query استعلامًا غير متجهي على جدول LanceDB
مباشرة:
--cols <columns>: قائمة سماح بالأعمدة مفصولة بفواصل (الافتراضي هوidوtextوimportanceوcategoryوcreatedAt).--filter <condition>: عبارة WHERE بأسلوب SQL؛ محدودة بـ 200 حرف ومقيدة بالأحرف الأبجدية الرقمية، وعوامل المقارنة، وعلامات الاقتباس، والأقواس، ومجموعة صغيرة من علامات الترقيم الآمنة.--limit <n>: عدد صحيح موجب؛ الافتراضي10.--order-by <column>:<asc|desc>: فرز في الذاكرة يطبق بعد المرشح؛ يدرج عمود الفرز تلقائيًا في الإسقاط.
memory_recallللاسترجاع المدعوم بـ LanceDBmemory_storeلحفظ الحقائق والتفضيلات والقرارات والكيانات المهمةmemory_forgetلإزالة الذكريات المطابقة
التخزين
افتراضيًا، تعيش بيانات LanceDB تحت~/.openclaw/memory/lancedb. تجاوز
المسار باستخدام dbPath:
storageOptions أزواج مفاتيح/قيم نصية لخلفيات تخزين LanceDB ويدعم
توسيع ${ENV_VAR}:
تبعيات وقت التشغيل
يعتمدmemory-lancedb على الحزمة الأصلية @lancedb/lancedb. يتعامل OpenClaw
المعبأ مع تلك الحزمة كجزء من حزمة Plugin. لا يصلح بدء تشغيل Gateway
تبعيات Plugin؛ إذا كانت التبعية مفقودة، فأعد تثبيت حزمة Plugin أو
حدّثها ثم أعد تشغيل Gateway.
إذا سجّل تثبيت أقدم خطأ dist/package.json مفقودًا أو خطأ
@lancedb/lancedb مفقودًا أثناء تحميل Plugin، فرَقِّ OpenClaw وأعد تشغيل
Gateway.
إذا سجّل Plugin أن LanceDB غير متاح على darwin-x64، فاستخدم خلفية
الذاكرة الافتراضية على ذلك الجهاز، أو انقل Gateway إلى منصة مدعومة، أو
عطّل memory-lancedb.
استكشاف الأخطاء وإصلاحها
يتجاوز طول الإدخال طول السياق
يعني هذا عادة أن نموذج التضمين رفض استعلام الاسترجاع:recallMaxChars، ثم أعد تشغيل Gateway:
نموذج تضمين غير مدعوم
بدونdimensions، لا تكون معروفة إلا أبعاد تضمين OpenAI المدمجة.
بالنسبة إلى نماذج التضمين المحلية أو المخصصة، عيّن embedding.dimensions إلى حجم
المتجه الذي يبلّغ عنه ذلك النموذج.
يتم تحميل Plugin لكن لا تظهر أي ذكريات
تحقق من أنplugins.slots.memory يشير إلى memory-lancedb، ثم شغّل:
autoCapture معطلًا، فسوف يسترجع Plugin الذكريات الموجودة لكنه
لن يخزن ذكريات جديدة تلقائيًا. استخدم أداة memory_store أو فعّل
autoCapture إذا كنت تريد الالتقاط التلقائي.