الانتقال إلى المحتوى الرئيسي
تسرد هذه الصفحة كل خيار تهيئة لبحث الذاكرة في OpenClaw. للاطلاع على النظرات العامة المفاهيمية، راجع:

Memory overview

كيف تعمل الذاكرة.

Builtin engine

واجهة SQLite الخلفية الافتراضية.

QMD engine

ملحق جانبي يعطي الأولوية للمحلي.

Memory search

مسار البحث وضبطه.

Active memory

وكيل فرعي للذاكرة للجلسات التفاعلية.
توجد كل إعدادات بحث الذاكرة ضمن agents.defaults.memorySearch في openclaw.json ما لم يُذكر خلاف ذلك.
إذا كنت تبحث عن مفتاح تفعيل ميزة الذاكرة النشطة وتهيئة الوكيل الفرعي، فهذا موجود ضمن plugins.entries.active-memory بدلا من memorySearch.تستخدم الذاكرة النشطة نموذجا ببوابتين:
  1. يجب أن يكون Plugin مفعلا وأن يستهدف معرّف الوكيل الحالي
  2. يجب أن يكون الطلب جلسة دردشة تفاعلية مستمرة مؤهلة
راجع Active Memory للاطلاع على نموذج التفعيل، والتهيئة التي يملكها Plugin، واستمرار نص الجلسة، ونمط الطرح الآمن.

اختيار المزوّد

المفتاحالنوعالافتراضيالوصف
providerstring"openai"معرّف محوّل التضمين مثل bedrock أو deepinfra أو gemini أو github-copilot أو local أو mistral أو ollama أو openai أو openai-compatible أو voyage؛ ويمكن أيضا أن يكون models.providers.<id> مهيأ يشير api الخاص به إلى محوّل تضمين ذاكرة أو واجهة API لنموذج متوافق مع OpenAI
modelstringافتراضي المزوّداسم نموذج التضمين
fallbackstring"none"معرّف محوّل الاحتياط عند فشل الأساسي
enabledbooleantrueتفعيل بحث الذاكرة أو تعطيله
عندما لا يكون provider معيّنا، يستخدم OpenClaw تضمينات OpenAI. عيّن provider صراحة لاستخدام Gemini أو Voyage أو Mistral أو DeepInfra أو Bedrock أو GitHub Copilot، أو Ollama، أو نموذج GGUF محلي، أو نقطة نهاية /v1/embeddings متوافقة مع OpenAI. التهيئات القديمة التي ما زالت تقول provider: "auto" تُحل إلى openai.
قد يؤدي تغيير مزوّد التضمين أو النموذج أو إعدادات المزوّد أو المصادر أو النطاق أو التقسيم إلى مقاطع أو المرمّز إلى جعل فهرس متجهات SQLite الحالي غير متوافق. يوقف OpenClaw بحث المتجهات مؤقتا ويبلغ عن تحذير هوية الفهرس بدلا من إعادة تضمين كل شيء تلقائيا. أعد البناء عندما تكون جاهزا باستخدام openclaw memory status --index --agent <id> أو openclaw memory index --force --agent <id>.
عندما يكون provider غير معيّن، أو تكون provider: "auto" القديمة موجودة، أو تحدد provider: "none" عمدا وضع FTS فقط، يمكن لاسترجاع الذاكرة أن يظل يستخدم ترتيب FTS المعجمي عندما لا تتوفر التضمينات. تفشل المزوّدات غير المحلية الصريحة بإغلاق المسار. إذا عيّنت memorySearch.provider إلى مزوّد محدد مدعوم عن بُعد مثل OpenAI أو Gemini أو Voyage أو Mistral أو Bedrock أو GitHub Copilot أو DeepInfra أو Ollama أو LM Studio أو مزوّد مخصص متوافق مع OpenAI، ولم يكن ذلك المزوّد متاحا وقت التشغيل، فإن memory_search يعيد نتيجة غير متاحة بدلا من استخدام استرجاع FTS فقط بصمت. أصلح تهيئة المزوّد/المصادقة، أو انتقل إلى مزوّد يمكن الوصول إليه، أو عيّن provider: "none" إذا كنت تريد استرجاع FTS فقط عمدا.

معرّفات المزوّدات المخصصة

يمكن أن يشير memorySearch.provider إلى إدخال models.providers.<id> مخصص لمحوّلات المزوّد الخاصة بالذاكرة مثل ollama، أو لواجهات API لنماذج متوافقة مع OpenAI مثل openai-responses / openai-completions. يحل OpenClaw مالك api لذلك المزوّد لمحوّل التضمين مع الحفاظ على معرّف المزوّد المخصص لمعالجة نقطة النهاية والمصادقة وبادئة النموذج. يتيح هذا لإعدادات متعددة GPU أو متعددة المضيفين تخصيص تضمينات الذاكرة لنقطة نهاية محلية محددة:
{
  models: {
    providers: {
      "ollama-5080": {
        api: "ollama",
        baseUrl: "http://gpu-box.local:11435",
        apiKey: "ollama-local",
        models: [{ id: "qwen3-embedding:0.6b" }],
      },
    },
  },
  agents: {
    defaults: {
      memorySearch: {
        provider: "ollama-5080",
        model: "qwen3-embedding:0.6b",
      },
    },
  },
}

حل مفتاح API

تتطلب التضمينات البعيدة مفتاح API. يستخدم Bedrock سلسلة بيانات اعتماد AWS SDK الافتراضية بدلا من ذلك (أدوار المثيلات، وSSO، ومفاتيح الوصول).
المزوّدمتغير البيئةمفتاح التهيئة
Bedrockسلسلة بيانات اعتماد AWSلا حاجة إلى مفتاح API
DeepInfraDEEPINFRA_API_KEYmodels.providers.deepinfra.apiKey
GeminiGEMINI_API_KEYmodels.providers.google.apiKey
GitHub CopilotCOPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKENملف المصادقة عبر تسجيل دخول الجهاز
MistralMISTRAL_API_KEYmodels.providers.mistral.apiKey
OllamaOLLAMA_API_KEY (عنصر نائب)
OpenAIOPENAI_API_KEYmodels.providers.openai.apiKey
VoyageVOYAGE_API_KEYmodels.providers.voyage.apiKey
يغطي Codex OAuth الدردشة/الإكمالات فقط ولا يفي بطلبات التضمين.

تهيئة نقطة النهاية البعيدة

استخدم provider: "openai-compatible" لخادم /v1/embeddings عام متوافق مع OpenAI لا ينبغي أن يرث بيانات اعتماد دردشة OpenAI العامة.
remote.baseUrl
string
عنوان URL الأساسي المخصص لواجهة API.
remote.apiKey
string
تجاوز مفتاح API.
remote.headers
object
ترويسات HTTP إضافية (تُدمج مع افتراضيات المزوّد).
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        model: "text-embedding-3-small",
        remote: {
          baseUrl: "https://api.example.com/v1/",
          apiKey: "YOUR_KEY",
        },
      },
    },
  },
}

التهيئة الخاصة بالمزوّد

المفتاحالنوعالافتراضيالوصف
modelstringgemini-embedding-001يدعم أيضا gemini-embedding-2-preview
outputDimensionalitynumber3072لـ Embedding 2: 768 أو 1536 أو 3072
يؤدي تغيير النموذج أو outputDimensionality إلى تغيير هوية الفهرس. يوقف OpenClaw بحث المتجهات مؤقتا حتى تعيد بناء فهرس الذاكرة صراحة.
يمكن لنقاط نهاية التضمين المتوافقة مع OpenAI الاشتراك في حقول طلب input_type الخاصة بالمزوّد. يكون هذا مفيدا لنماذج التضمين غير المتناظرة التي تتطلب تسميات مختلفة لتضمينات الاستعلام والمستند.
المفتاحالنوعالافتراضيالوصف
inputTypestringغير معيّنinput_type مشترك لتضمينات الاستعلام والمستند
queryInputTypestringغير معيّنinput_type وقت الاستعلام؛ يتجاوز inputType
documentInputTypestringغير معيّنinput_type للفهرس/المستند؛ يتجاوز inputType
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        remote: {
          baseUrl: "https://embeddings.example/v1",
          apiKey: "${EMBEDDINGS_API_KEY}",
        },
        model: "asymmetric-embedder",
        queryInputType: "query",
        documentInputType: "passage",
      },
    },
  },
}
يؤثر تغيير هذه القيم في هوية ذاكرة التخزين المؤقت للتضمين لفهرسة دفعات المزوّد، وينبغي أن يتبعه إعادة فهرسة للذاكرة عندما يتعامل النموذج upstream مع التسميات بشكل مختلف.

تهيئة تضمين Bedrock

يستخدم Bedrock سلسلة بيانات اعتماد AWS SDK الافتراضية — لا حاجة إلى مفاتيح API. إذا كان OpenClaw يعمل على EC2 بدور مثيل مفعّل لـ Bedrock، فعيّن المزوّد والنموذج فقط:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "bedrock",
        model: "amazon.titan-embed-text-v2:0",
      },
    },
  },
}
المفتاحالنوعالافتراضيالوصف
modelstringamazon.titan-embed-text-v2:0أي معرّف نموذج تضمين في Bedrock
outputDimensionalitynumberافتراضي النموذجلـ Titan V2: 256 أو 512 أو 1024
النماذج المدعومة (مع اكتشاف العائلة وافتراضيات الأبعاد):
معرّف النموذجالمزوّدالأبعاد الافتراضيةالأبعاد القابلة للضبط
amazon.titan-embed-text-v2:0Amazon1024256, 512, 1024
amazon.titan-embed-text-v1Amazon1536
amazon.titan-embed-g1-text-02Amazon1536
amazon.titan-embed-image-v1Amazon1024
amazon.nova-2-multimodal-embeddings-v1:0Amazon1024256, 384, 1024, 3072
cohere.embed-english-v3Cohere1024
cohere.embed-multilingual-v3Cohere1024
cohere.embed-v4:0Cohere1536256-1536
twelvelabs.marengo-embed-3-0-v1:0TwelveLabs512
twelvelabs.marengo-embed-2-7-v1:0TwelveLabs1024
ترث المتغيرات ذات لاحقة معدل الإنتاجية (مثل amazon.titan-embed-text-v1:2:8k) إعدادات النموذج الأساسي.المصادقة: تستخدم مصادقة Bedrock ترتيب حل بيانات الاعتماد القياسي في AWS SDK:
  1. متغيرات البيئة (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY)
  2. ذاكرة التخزين المؤقت لرموز SSO
  3. بيانات اعتماد رمز هوية الويب
  4. ملفات بيانات الاعتماد والإعدادات المشتركة
  5. بيانات اعتماد بيانات تعريف ECS أو EC2
تُحل المنطقة من AWS_REGION، أو AWS_DEFAULT_REGION، أو baseUrl لمزوّد amazon-bedrock، أو تكون افتراضيًا us-east-1.أذونات IAM: يحتاج دور IAM أو المستخدم إلى:
{
  "Effect": "Allow",
  "Action": "bedrock:InvokeModel",
  "Resource": "*"
}
لتطبيق مبدأ أقل امتياز، احصر InvokeModel في النموذج المحدد:
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
المفتاحالنوعالافتراضيالوصف
local.modelPathstringيُنزّل تلقائيًاالمسار إلى ملف نموذج GGUF
local.modelCacheDirstringافتراضي node-llama-cppمجلد ذاكرة التخزين المؤقت للنماذج التي تم تنزيلها
local.contextSizenumber | "auto"4096حجم نافذة السياق لسياق التضمين. يغطي 4096 المقاطع المعتادة (128–512 رمزًا) مع تقييد VRAM غير المخصصة للأوزان. خفّضه إلى 1024–2048 على المضيفين محدودي الموارد. يستخدم "auto" الحد الأقصى الذي دُرّب عليه النموذج — ولا يوصى به لنماذج 8B+ (Qwen3-Embedding-8B: 40 960 رمزًا → نحو 32 GB من VRAM مقابل نحو 8.8 GB عند 4096).
ثبّت مزوّد llama.cpp الرسمي أولًا: openclaw plugins install @openclaw/llama-cpp-provider. النموذج الافتراضي: embeddinggemma-300m-qat-Q8_0.gguf (نحو 0.6 GB، يُنزّل تلقائيًا). ما زالت نسخ المصدر المحلية تتطلب الموافقة على البناء الأصلي: pnpm approve-builds ثم pnpm rebuild node-llama-cpp.استخدم CLI المستقل للتحقق من مسار المزوّد نفسه الذي يستخدمه Gateway:
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
عيّن provider: "local" صراحةً لتضمينات GGUF المحلية. مراجع نماذج hf: وHTTP(S) مدعومة للإعدادات المحلية الصريحة، لكنها لا تغيّر المزوّد الافتراضي.

مهلة التضمين المضمّن

sync.embeddingBatchTimeoutSeconds
number
تجاوز المهلة لدُفعات التضمين المضمّنة أثناء فهرسة الذاكرة.عند عدم التعيين، يُستخدم افتراضي المزوّد: 600 ثانية للمزوّدين المحليين/المستضافين ذاتيًا مثل local وollama وlmstudio، و120 ثانية للمزوّدين المستضافين. زد هذه القيمة عندما تكون دُفعات التضمين المحلية المعتمدة على CPU سليمة لكنها بطيئة.

إعداد البحث الهجين

كلها ضمن memorySearch.query.hybrid:
المفتاحالنوعالافتراضيالوصف
enabledbooleantrueتفعيل البحث الهجين BM25 + المتجهي
vectorWeightnumber0.7وزن درجات المتجهات (0-1)
textWeightnumber0.3وزن درجات BM25 (0-1)
candidateMultipliernumber4مضاعف حجم مجموعة المرشحين
المفتاحالنوعالافتراضيالوصف
mmr.enabledbooleanfalseتفعيل إعادة الترتيب باستخدام MMR
mmr.lambdanumber0.70 = أقصى تنوع، 1 = أقصى صلة

مثال كامل

{
  agents: {
    defaults: {
      memorySearch: {
        query: {
          hybrid: {
            vectorWeight: 0.7,
            textWeight: 0.3,
            mmr: { enabled: true, lambda: 0.7 },
            temporalDecay: { enabled: true, halfLifeDays: 30 },
          },
        },
      },
    },
  },
}

مسارات ذاكرة إضافية

المفتاحالنوعالوصف
extraPathsstring[]أدلة أو ملفات إضافية لفهرستها
{
  agents: {
    defaults: {
      memorySearch: {
        extraPaths: ["../team-docs", "/srv/shared-notes"],
      },
    },
  },
}
يمكن أن تكون المسارات مطلقة أو نسبية إلى مساحة العمل. تُفحص الأدلة بشكل تكراري بحثًا عن ملفات .md. تعتمد معالجة الروابط الرمزية على الواجهة الخلفية النشطة: يتجاهل المحرك المدمج الروابط الرمزية، بينما يتبع QMD سلوك ماسح QMD الأساسي. للبحث في نصوص المحادثات بين الوكلاء ضمن نطاق الوكيل، استخدم agents.list[].memorySearch.qmd.extraCollections بدلًا من memory.qmd.paths. تتبع تلك المجموعات الإضافية الشكل نفسه { path, name, pattern? }، لكنها تُدمج لكل وكيل ويمكنها الاحتفاظ بأسماء مشتركة صريحة عندما يشير المسار إلى خارج مساحة العمل الحالية. إذا ظهر المسار المحلول نفسه في كل من memory.qmd.paths وmemorySearch.qmd.extraCollections، يحتفظ QMD بالإدخال الأول ويتخطى التكرار.

الذاكرة متعددة الوسائط (Gemini)

افهرس الصور والصوت إلى جانب Markdown باستخدام Gemini Embedding 2:
المفتاحالنوعالافتراضيالوصف
multimodal.enabledbooleanfalseتفعيل الفهرسة متعددة الوسائط
multimodal.modalitiesstring[]["image"] أو ["audio"] أو ["all"]
multimodal.maxFileBytesnumber10000000الحد الأقصى لحجم الملف للفهرسة
ينطبق فقط على الملفات في extraPaths. تبقى جذور الذاكرة الافتراضية مقتصرة على Markdown. يتطلب gemini-embedding-2-preview. يجب أن تكون fallback هي "none".
التنسيقات المدعومة: .jpg، .jpeg، .png، .webp، .gif، .heic، .heif (صور)؛ .mp3، .wav، .ogg، .opus، .m4a، .aac، .flac (صوت).

ذاكرة التخزين المؤقت للتضمينات

المفتاحالنوعالافتراضيالوصف
cache.enabledbooleantrueتخزين تضمينات المقاطع مؤقتًا في SQLite
cache.maxEntriesnumber50000الحد الأقصى للتضمينات المخزنة مؤقتًا
يمنع إعادة تضمين النص غير المتغير أثناء إعادة الفهرسة أو تحديثات نصوص المحادثات.

الفهرسة بالدفعات

المفتاحالنوعالافتراضيالوصف
remote.nonBatchConcurrencynumber4تضمينات مضمنة متوازية
remote.batch.enabledbooleanfalseتفعيل API التضمين بالدفعات
remote.batch.concurrencynumber2مهام دفعات متوازية
remote.batch.waitbooleantrueالانتظار حتى اكتمال الدفعة
remote.batch.pollIntervalMsnumberفترة الاستطلاع
remote.batch.timeoutMinutesnumberمهلة الدفعة
متاح لـ openai وgemini وvoyage. عادةً ما تكون دفعات OpenAI الأسرع والأقل تكلفة لعمليات الملء الخلفي الكبيرة. يتحكم remote.nonBatchConcurrency في استدعاءات التضمين المضمنة التي يستخدمها موفرو الخدمة المحليون/ذوو الاستضافة الذاتية والموفرون المستضافون عندما لا تكون واجهات API الدفعات لدى الموفر نشطة. يضبط Ollama القيمة الافتراضية إلى 1 للفهرسة غير الدفعية لتجنب إرهاق المضيفين المحليين الأصغر؛ عيّن قيمة أعلى على الأجهزة الأكبر. هذا منفصل عن sync.embeddingBatchTimeoutSeconds، الذي يتحكم في مهلة استدعاءات التضمين المضمنة.

بحث ذاكرة الجلسة (تجريبي)

افهرس نصوص محادثات الجلسات واعرضها عبر memory_search:
المفتاحالنوعالافتراضيالوصف
experimental.sessionMemorybooleanfalseتفعيل فهرسة الجلسات
sourcesstring[]["memory"]أضف `“sessions”“ لتضمين نصوص المحادثات
sync.sessions.deltaBytesnumber100000عتبة البايت لإعادة الفهرسة
sync.sessions.deltaMessagesnumber50عتبة الرسائل لإعادة الفهرسة
فهرسة الجلسات اختيارية وتعمل بشكل غير متزامن. قد تكون النتائج قديمة قليلًا. توجد سجلات الجلسات على القرص، لذا تعامل مع الوصول إلى نظام الملفات باعتباره حد الثقة.
تخضع نتائج نصوص الجلسات أيضًا لإعداد tools.sessions.visibility. لا تكشف رؤية tree الافتراضية إلا الجلسة الحالية والجلسات التي أنشأتها. لاستدعاء جلسة غير مرتبطة للوكيل نفسه أرسلها Gateway من جلسة مختلفة، مثل رسالة مباشرة، وسّع الرؤية عمدًا إلى agent (أو all فقط عندما يكون الاستدعاء عبر وكلاء متعددين مطلوبًا أيضًا وتسمح به سياسة الوكيل إلى الوكيل). تضع الأمثلة أدناه هذه الإعدادات ضمن agents.defaults. يمكنك أيضًا تطبيق إعدادات memorySearch المكافئة في تجاوز خاص بكل وكيل عندما يجب أن يفهرس وكيل واحد فقط نصوص الجلسات ويبحث فيها. للاستدعاء من Gateway إلى رسالة مباشرة للوكيل نفسه:
OC_I18N_900009
عند استخدام QMD، لا يصدر agents.defaults.memorySearch.experimental.sessionMemory و sources: ["sessions"] نصوص الجلسات إلى QMD بمفردهما. اضبط memory.qmd.sessions.enabled: true أيضًا.

تسريع المتجهات في SQLite (sqlite-vec)

المفتاحالنوعالافتراضيالوصف
store.vector.enabledbooleantrueاستخدم sqlite-vec لاستعلامات المتجهات
store.vector.extensionPathstringمضمّنتجاوز مسار sqlite-vec
عندما لا يتوفر sqlite-vec، يعود OpenClaw تلقائيًا إلى تشابه جيب التمام داخل العملية.

تخزين الفهارس

توجد فهارس الذاكرة المضمّنة في قاعدة بيانات SQLite الخاصة بكل وكيل في OpenClaw عند agents/<agentId>/agent/openclaw-agent.sqlite.
المفتاحالنوعالافتراضيالوصف
store.fts.tokenizerstringunicode61محلل FTS5 الرمزي (unicode61 أو trigram)

إعداد واجهة QMD الخلفية

اضبط memory.backend = "qmd" للتمكين. توجد كل إعدادات QMD ضمن memory.qmd:
المفتاحالنوعالافتراضيالوصف
commandstringqmdمسار ملف QMD التنفيذي؛ اضبط مسارًا مطلقًا عندما يختلف PATH للخدمة عن shell لديك
searchModestringsearchأمر البحث: search، vsearch، query
rerankbooleanاضبطه على false مع searchMode: "query" وQMD 2.1+ لتخطي إعادة الترتيب في QMD
includeDefaultMemorybooleantrueفهرسة MEMORY.md + memory/**/*.md تلقائيًا
paths[]arrayمسارات إضافية: { name, path, pattern? }
sessions.enabledbooleanfalseتصدير نصوص الجلسات إلى QMD
sessions.retentionDaysnumberالاحتفاظ بالنصوص
sessions.exportDirstringدليل التصدير
searchMode: "search" مخصص للبحث المعجمي/BM25 فقط. لا يشغّل OpenClaw فحوص جاهزية المتجهات الدلالية أو صيانة تضمينات QMD لهذا الوضع، بما في ذلك أثناء memory status --deep؛ ويستمر vsearch وquery في طلب جاهزية متجهات QMD والتضمينات. يغيّر rerank: false وضع query في QMD فقط ويتطلب QMD 2.1 أو أحدث. في وضع CLI المباشر، يمرر OpenClaw الخيار --no-rerank؛ وفي وضع MCP المدعوم بـ mcporter، يمرر rerank: false إلى أداة الاستعلام الموحدة في QMD. اتركه غير مضبوط لاستخدام سلوك إعادة ترتيب الاستعلام الافتراضي في QMD. يفضل OpenClaw أشكال مجموعات QMD واستعلامات MCP الحالية، لكنه يبقي إصدارات QMD الأقدم عاملة عبر تجربة أعلام أنماط المجموعات المتوافقة وأسماء أدوات MCP الأقدم عند الحاجة. عندما يعلن QMD دعمه لمرشحات مجموعات متعددة، يُبحث في المجموعات ذات المصدر نفسه بعملية QMD واحدة؛ وتحتفظ إصدارات QMD الأقدم بمسار التوافق لكل مجموعة. تعني المجموعات ذات المصدر نفسه أن مجموعات الذاكرة الدائمة تُجمع معًا، بينما تبقى مجموعات نصوص الجلسات مجموعة منفصلة حتى يظل تنويع المصادر مشتملًا على كلا المدخلين.
تبقى تجاوزات نماذج QMD في جانب QMD، وليس في إعدادات OpenClaw. إذا احتجت إلى تجاوز نماذج QMD عالميًا، فاضبط متغيرات البيئة مثل QMD_EMBED_MODEL وQMD_RERANK_MODEL وQMD_GENERATE_MODEL في بيئة تشغيل Gateway.
المفتاحالنوعالافتراضيالوصف
update.intervalstring5mفاصل التحديث
update.debounceMsnumber15000تأجيل تغييرات الملفات
update.onBootbooleantrueالتحديث عند فتح مدير QMD طويل العمر؛ اضبطه على false لتخطي تحديث التمهيد الفوري
update.startupstringoffتهيئة QMD اختيارية عند بدء Gateway: off أو idle أو immediate
update.startupDelayMsnumber120000التأخير قبل تشغيل تحديث startup: "idle"
update.waitForBootSyncbooleanfalseمنع فتح المدير حتى يكتمل تحديثه الأولي
update.embedIntervalstringوتيرة تضمين منفصلة
update.commandTimeoutMsnumberمهلة أوامر QMD
update.updateTimeoutMsnumberمهلة عمليات تحديث QMD
update.embedTimeoutMsnumberمهلة عمليات تضمين QMD
المفتاحالنوعالافتراضيالوصف
limits.maxResultsnumber6الحد الأقصى لنتائج البحث
limits.maxSnippetCharsnumberتقييد طول المقتطف
limits.maxInjectedCharsnumberتقييد إجمالي الأحرف المحقونة
limits.timeoutMsnumber4000مهلة البحث
يتحكم في الجلسات التي يمكنها تلقي نتائج بحث QMD. يستخدم المخطط نفسه مثل session.sendPolicy: OC_I18N_900011 يسمح الإعداد الافتراضي المرفق بجلسات الرسائل المباشرة والقنوات، مع الاستمرار في رفض المجموعات.الإعداد الافتراضي مخصص للرسائل المباشرة فقط. يطابق match.keyPrefix مفتاح الجلسة المعياري؛ ويطابق match.rawKeyPrefix المفتاح الخام بما في ذلك agent:<id>:.
ينطبق memory.citations على كل الخلفيات:
القيمةالسلوك
auto (الافتراضي)تضمين تذييل Source: <path#line> في المقتطفات
onتضمين التذييل دائمًا
offحذف التذييل (يبقى المسار ممررًا إلى الوكيل داخليًا)
عند تفعيل تهيئة QMD عند بدء Gateway، يشغل OpenClaw QMD للوكلاء المؤهلين فقط. إذا كانت update.onBoot تساوي true ولم تُضبط صيانة للفاصل الزمني أو التضمين، يستخدم بدء التشغيل مديرًا لمرة واحدة لتحديث التمهيد ثم يغلقه. إذا ضُبط فاصل تحديث أو تضمين، يفتح بدء التشغيل مدير QMD طويل العمر حتى يتولى المراقب ومؤقتات الفواصل؛ يتخطى update.onBoot: false تحديث التمهيد الفوري فقط.

مثال QMD كامل

OC_I18N_900012

Dreaming

تُضبط Dreaming ضمن plugins.entries.memory-core.config.dreaming، وليس ضمن agents.defaults.memorySearch. تعمل Dreaming كعملية مسح مجدولة واحدة وتستخدم مراحل خفيفة/عميقة/REM داخلية كتفصيل تنفيذي. للاطلاع على السلوك المفاهيمي وأوامر الشرطة المائلة، راجع Dreaming.

إعدادات المستخدم

المفتاحالنوعالافتراضيالوصف
enabledbooleanfalseتفعيل Dreaming أو تعطيلها بالكامل
frequencystring0 3 * * *وتيرة Cron اختيارية لمسح Dreaming الكامل
modelstringالنموذج الافتراضيتجاوز اختياري لنموذج الوكيل الفرعي Dream Diary
phases.deep.maxPromotedSnippetTokensnumber160الحد الأقصى المقدر للرموز المحفوظة من كل مقتطف استدعاء قصير الأمد تتم ترقيته إلى MEMORY.md؛ تبقى بيانات المصدر الوصفية مرئية

مثال

OC_I18N_900013
  • تكتب Dreaming حالة الآلة إلى memory/.dreams/.
  • تكتب Dreaming مخرجات سردية قابلة للقراءة البشرية إلى DREAMS.md (أو dreams.md الموجود).
  • يستخدم dreaming.model بوابة الثقة الحالية للوكيل الفرعي في Plugin؛ اضبط plugins.entries.memory-core.subagent.allowModelOverride: true قبل تفعيله.
  • يعيد Dream Diary المحاولة مرة واحدة باستخدام النموذج الافتراضي للجلسة عندما يكون النموذج المضبوط غير متاح. تُسجل إخفاقات الثقة أو قائمة السماح ولا يُعاد المحاولة بصمت.
  • سياسة مراحل خفيفة/عميقة/REM والعتبات سلوك داخلي، وليست إعدادات موجهة للمستخدم.

ذو صلة