Technical reference

मेमोरी कॉन्फ़िगरेशन संदर्भ

यह पृष्ठ OpenClaw मेमोरी खोज के प्रत्येक कॉन्फ़िगरेशन विकल्प को सूचीबद्ध करता है। वैचारिक अवलोकन के लिए, देखें:

सभी साझा मेमोरी सेटिंग शीर्ष-स्तरीय memory के अंतर्गत openclaw.json में रहती हैं। खोज के डिफ़ॉल्ट memory.search का उपयोग करते हैं; प्रति-एजेंट खोज ओवरराइड agents.entries.*.memory.search का उपयोग करते हैं।


वार्तालापों के बीच याद रखना

कुंजी प्रकार डिफ़ॉल्ट विवरण
rememberAcrossConversations boolean व्यक्तिगत इंस्टॉल के लिए चालू; कॉन्फ़िगर किए गए DM पृथक्करण के साथ बंद इस एजेंट के अन्य पहचाने गए निजी वार्तालापों से प्रासंगिक संदर्भ का उपयोग करें।

जब केवल किसी विश्वसनीय व्यक्तिगत एजेंट को वार्तालापों के बीच ट्रांस्क्रिप्ट स्मरण का उपयोग करना चाहिए, तो इसे प्रति एजेंट कॉन्फ़िगर करें:

json5
{  agents: {    entries: {      personal: {        memory: {          search: {            rememberAcrossConversations: true,          },        },      },    },  },}

यह मान प्रति-एजेंट ओवरराइड के साथ सामान्य memory.search इनहेरिटेंस का पालन करता है। सेट न होने पर, यह केवल तभी डिफ़ॉल्ट रूप से चालू होता है जब वैश्विक session.dmScope सेट न हो या "main" हो और किसी भी बाइंडिंग में session.dmScope ओवरराइड न हो। कॉन्फ़िगर किया गया कोई भी DM पृथक्करण इसे डिफ़ॉल्ट रूप से बंद कर देता है। स्पष्ट true या false हमेशा प्राथमिकता लेता है। इसे सक्षम करने पर सत्र ट्रांस्क्रिप्ट अनुक्रमण निहित होता है और एजेंट के समाधान किए गए मेमोरी स्रोतों में sessions जुड़ जाता है। QMD के साथ, यह उस एजेंट का सत्र निर्यात भी सक्षम करता है; इस मोड के लिए अलग memory.qmd.sessions.enabled सेटिंग आवश्यक नहीं है।

OpenClaw का अंतर्निहित मेमोरी प्रदाता, अंतर्निहित और QMD दोनों बैकएंड के साथ इस संरक्षित मार्ग का समर्थन करता है। वैकल्पिक मेमोरी प्रदाता अपने स्वयं के स्मरण हुक और उन्नत Active Memory टूल का उपयोग जारी रख सकते हैं, लेकिन यह सेटिंग तब तक छोड़ दी जाती है जब तक वर्तमान प्रदाता संरक्षित निजी ट्रांस्क्रिप्ट स्मरण का समर्थन न करे। openclaw doctor किसी असमर्थित प्रदाता या ऐसी स्पष्ट Active Memory toolsAllow सूची की रिपोर्ट करता है जिसमें memory_search शामिल नहीं है।

पुनर्प्राप्ति सीमा सामान्य सत्र खोज से अधिक संकीर्ण है:

  • केवल उसी एजेंट के पहचाने गए निजी वार्तालाप पात्र हैं
  • जिस वार्तालाप का उत्तर दिया जा रहा है, उसे बाहर रखा जाता है
  • समूहों और चैनलों को स्रोतों और गंतव्यों के रूप में बाहर रखा जाता है
  • अज्ञात वार्तालाप प्रकार विफल होने पर बंद रहते हैं
  • सैंडबॉक्स किया गया स्मरण विशेष वार्तालाप-पार प्राधिकरण का उपयोग नहीं कर सकता

यह सेटिंग tools.sessions.visibility, सत्र कुंजियों, ट्रांस्क्रिप्ट संग्रहण, वितरण रूटिंग या sessions_list, sessions_history और sessions_send की अनुमतियों को नहीं बदलती। Active Memory एक सीमित केवल-पठन पुनर्प्राप्ति पास निष्पादित करता है; अनुपलब्ध या समय-सीमा समाप्त पुनर्प्राप्ति उत्तर को अवरुद्ध नहीं करती।


प्रदाता चयन

कुंजी प्रकार डिफ़ॉल्ट विवरण
enabled boolean true मेमोरी खोज सक्षम या अक्षम करें
provider string "openai" एम्बेडिंग अडैप्टर ID, जैसे bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai, openai-compatible, या voyage; यह कॉन्फ़िगर किया गया ऐसा models.providers.<id> भी हो सकता है जिसका api किसी मेमोरी एम्बेडिंग अडैप्टर या OpenAI-संगत मॉडल API की ओर संकेत करता हो
model string प्रदाता डिफ़ॉल्ट एम्बेडिंग मॉडल का नाम
fallback string "none" प्राथमिक के विफल होने पर फ़ॉलबैक अडैप्टर ID

जब provider सेट नहीं होता, तब OpenClaw OpenAI एम्बेडिंग का उपयोग करता है। Bedrock, DeepInfra, Gemini, GitHub Copilot, Mistral, Ollama, Voyage, स्थानीय GGUF मॉडल या OpenAI-संगत /v1/embeddings एंडपॉइंट का उपयोग करने के लिए provider स्पष्ट रूप से सेट करें। जो पुराने कॉन्फ़िगरेशन अभी भी provider: "auto" कहते हैं, वे openai में समाधान होते हैं।

जब provider सेट न हो, पुराना provider: "auto" मौजूद हो, या provider: "none" जानबूझकर केवल-FTS मोड चुने, तब एम्बेडिंग अनुपलब्ध होने पर भी मेमोरी स्मरण शाब्दिक FTS रैंकिंग का उपयोग कर सकता है।

स्पष्ट गैर-स्थानीय प्रदाता विफल होने पर बंद रहते हैं। यदि आप memory.search.provider को Bedrock, DeepInfra, Gemini, GitHub Copilot, LM Studio, Mistral, Ollama, OpenAI, Voyage या OpenAI-संगत कस्टम प्रदाता जैसे किसी ठोस रिमोट-समर्थित प्रदाता पर सेट करते हैं और वह प्रदाता रनटाइम पर अनुपलब्ध है, तो memory_search चुपचाप केवल-FTS स्मरण का उपयोग करने के बजाय अनुपलब्ध परिणाम लौटाता है। प्रदाता/प्रमाणीकरण कॉन्फ़िगरेशन ठीक करें, किसी पहुँच योग्य प्रदाता पर स्विच करें, या यदि आप जानबूझकर केवल-FTS स्मरण चाहते हैं, तो provider: "none" सेट करें।

कस्टम प्रदाता ID

memory.search.provider मेमोरी-विशिष्ट प्रदाता अडैप्टरों, जैसे ollama, या OpenAI-संगत मॉडल API, जैसे openai-responses / openai-completions, के लिए किसी कस्टम models.providers.<id> प्रविष्टि की ओर संकेत कर सकता है। OpenClaw एंडपॉइंट, प्रमाणीकरण और मॉडल-प्रीफ़िक्स प्रबंधन के लिए कस्टम प्रदाता ID सुरक्षित रखते हुए एम्बेडिंग अडैप्टर के लिए उस प्रदाता के api स्वामी का समाधान करता है। इससे मल्टी-GPU या मल्टी-होस्ट सेटअप मेमोरी एम्बेडिंग को किसी विशिष्ट स्थानीय एंडपॉइंट को समर्पित कर सकते हैं:

json5
{  models: {    providers: {      "ollama-5080": {        api: "ollama",        baseUrl: "http://gpu-box.local:11435",        apiKey: "ollama-local",        models: [{ id: "qwen3-embedding:0.6b", name: "Qwen3 Embedding 0.6B" }],      },    },  },  memory: {    search: {      provider: "ollama-5080",      model: "qwen3-embedding:0.6b",    },  },}

API कुंजी समाधान

रिमोट एम्बेडिंग के लिए API कुंजी आवश्यक है। इसके बजाय Bedrock AWS SDK डिफ़ॉल्ट क्रेडेंशियल शृंखला का उपयोग करता है (इंस्टेंस भूमिकाएँ, SSO, एक्सेस कुंजियाँ या Bedrock API कुंजी)।

प्रदाता पर्यावरण चर कॉन्फ़िगरेशन कुंजी
Bedrock AWS क्रेडेंशियल शृंखला, या AWS_BEARER_TOKEN_BEDROCK किसी API कुंजी की आवश्यकता नहीं
DeepInfra DEEPINFRA_API_KEY models.providers.deepinfra.apiKey
Gemini GEMINI_API_KEY models.providers.google.apiKey
GitHub Copilot COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN डिवाइस लॉगिन के माध्यम से प्रमाणीकरण प्रोफ़ाइल
Mistral MISTRAL_API_KEY models.providers.mistral.apiKey
Ollama OLLAMA_API_KEY (प्लेसहोल्डर) --
OpenAI OPENAI_API_KEY models.providers.openai.apiKey
Voyage VOYAGE_API_KEY models.providers.voyage.apiKey

रिमोट एंडपॉइंट कॉन्फ़िगरेशन

ऐसे सामान्य OpenAI-संगत /v1/embeddings सर्वर के लिए provider: "openai-compatible" का उपयोग करें, जिसे वैश्विक OpenAI चैट क्रेडेंशियल इनहेरिट नहीं करने चाहिए।

remote.baseUrlstring

कस्टम API बेस URL।

remote.apiKeystring

API कुंजी ओवरराइड करें।

remote.headersobject

अतिरिक्त HTTP हेडर (प्रदाता डिफ़ॉल्ट के साथ मर्ज किए जाते हैं)।

json5
{  memory: {    search: {      provider: "openai-compatible",      model: "text-embedding-3-small",      remote: {        baseUrl: "https://api.example.com/v1/",        apiKey: "YOUR_KEY",      },    },  },}

प्रदाता-विशिष्ट कॉन्फ़िगरेशन

Gemini
कुंजी प्रकार डिफ़ॉल्ट विवरण
model string gemini-embedding-001 gemini-embedding-2-preview का भी समर्थन करता है
outputDimensionality number 3072 Embedding 2 के लिए: 768, 1536 या 3072
OpenAI-संगत इनपुट प्रकार

OpenAI-संगत एम्बेडिंग एंडपॉइंट प्रदाता-विशिष्ट input_type अनुरोध फ़ील्ड का विकल्प चुन सकते हैं। यह उन असममित एम्बेडिंग मॉडलों के लिए उपयोगी है जिन्हें क्वेरी और दस्तावेज़ एम्बेडिंग के लिए अलग-अलग लेबल की आवश्यकता होती है।

कुंजी प्रकार डिफ़ॉल्ट विवरण
inputType string सेट नहीं क्वेरी और दस्तावेज़ एम्बेडिंग के लिए साझा input_type
queryInputType string सेट नहीं क्वेरी-समय input_type; inputType को ओवरराइड करता है
documentInputType string सेट नहीं इंडेक्स/दस्तावेज़ input_type; inputType को ओवरराइड करता है
json5
{  memory: {    search: {      provider: "openai-compatible",      remote: {        baseUrl: "https://embeddings.example/v1",        apiKey: "${EMBEDDINGS_API_KEY}",      },      model: "asymmetric-embedder",      queryInputType: "query",      documentInputType: "passage",    },  },}

इन मानों को बदलने से प्रदाता बैच इंडेक्सिंग के लिए एम्बेडिंग कैश पहचान प्रभावित होती है और यदि अपस्ट्रीम मॉडल लेबल को अलग तरह से मानता है, तो इसके बाद मेमोरी को पुनः इंडेक्स किया जाना चाहिए।

Bedrock

Bedrock एम्बेडिंग कॉन्फ़िगरेशन

Bedrock, AWS SDK की डिफ़ॉल्ट क्रेडेंशियल शृंखला के साथ OpenClaw द्वारा जाँचे गए बेयरर टोकन का उपयोग करता है, इसलिए कॉन्फ़िगरेशन में कोई API कुंजी संग्रहीत नहीं की जाती। यदि OpenClaw, Bedrock-सक्षम इंस्टेंस भूमिका वाले EC2 पर चलता है, तो केवल प्रदाता और मॉडल सेट करें:

json5
{  memory: {    search: {      provider: "bedrock",      model: "amazon.titan-embed-text-v2:0",    },  },}
कुंजी प्रकार डिफ़ॉल्ट विवरण
model string amazon.titan-embed-text-v2:0 कोई भी Bedrock एम्बेडिंग मॉडल ID
outputDimensionality number मॉडल डिफ़ॉल्ट Titan V2 के लिए: 256, 512 या 1024

समर्थित मॉडल (फ़ैमिली पहचान और डाइमेंशन डिफ़ॉल्ट सहित):

मॉडल ID प्रदाता डिफ़ॉल्ट डाइमेंशन कॉन्फ़िगर किए जा सकने वाले डाइमेंशन
amazon.titan-embed-text-v2:0 Amazon 1024 256, 512, 1024
amazon.titan-embed-text-v1 Amazon 1536 --
amazon.titan-embed-g1-text-02 Amazon 1536 --
amazon.titan-embed-image-v1 Amazon 1024 --
amazon.nova-2-multimodal-embeddings-v1:0 Amazon 1024 256, 384, 1024, 3072
cohere.embed-english-v3 Cohere 1024 --
cohere.embed-multilingual-v3 Cohere 1024 --
cohere.embed-v4:0 Cohere 1536 256, 384, 512, 768, 1024, 1536
twelvelabs.marengo-embed-3-0-v1:0 TwelveLabs 512 --
twelvelabs.marengo-embed-2-7-v1:0 TwelveLabs 1024 --

थ्रूपुट-प्रत्यय वाले वेरिएंट (जैसे, amazon.titan-embed-text-v1:2:8k) और क्षेत्र-उपसर्ग वाले इन्फ़रेंस प्रोफ़ाइल ID (जैसे, us.amazon.titan-embed-text-v2:0) बेस मॉडल का कॉन्फ़िगरेशन इनहेरिट करते हैं।

क्षेत्र: इस क्रम में निर्धारित किया जाता है: memory.search.remote.baseUrl ओवरराइड, models.providers.amazon-bedrock.baseUrl कॉन्फ़िगरेशन, AWS_REGION, AWS_DEFAULT_REGION, फिर us-east-1 का डिफ़ॉल्ट।

प्रमाणीकरण: OpenClaw पहले AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY या AWS_BEARER_TOKEN_BEDROCK की जाँच करता है, फिर मानक AWS SDK डिफ़ॉल्ट क्रेडेंशियल प्रदाता शृंखला का उपयोग करता है:

  1. पर्यावरण चर (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY), जब तक AWS_PROFILE भी सेट न हो
  2. SSO (केवल जब SSO फ़ील्ड कॉन्फ़िगर हों)
  3. साझा क्रेडेंशियल और कॉन्फ़िगरेशन फ़ाइलें (fromIni, जिसमें AWS_PROFILE शामिल है)
  4. क्रेडेंशियल प्रक्रिया (AWS कॉन्फ़िगरेशन फ़ाइल में credential_process)
  5. वेब आइडेंटिटी टोकन क्रेडेंशियल
  6. ECS या EC2 इंस्टेंस मेटाडेटा क्रेडेंशियल

IAM अनुमतियाँ: IAM भूमिका या उपयोगकर्ता को निम्न की आवश्यकता है:

json
{  "Effect": "Allow",  "Action": "bedrock:InvokeModel",  "Resource": "*"}

न्यूनतम विशेषाधिकार के लिए, InvokeModel को विशिष्ट मॉडल तक सीमित करें:

text
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
स्थानीय (GGUF + llama.cpp)
कुंजी प्रकार डिफ़ॉल्ट विवरण
local.modelPath string स्वतः डाउनलोड किया गया GGUF मॉडल फ़ाइल का पथ
local.modelCacheDir string node-llama-cpp डिफ़ॉल्ट डाउनलोड किए गए मॉडलों के लिए कैश डायरेक्टरी
local.contextSize number | "auto" 4096 एम्बेडिंग कॉन्टेक्स्ट के लिए कॉन्टेक्स्ट विंडो का आकार। 4096 गैर-वेट VRAM को सीमित रखते हुए सामान्य खंडों (128-512 टोकन) को समाहित करता है। सीमित होस्ट पर इसे घटाकर 1024-2048 करें। "auto" मॉडल के प्रशिक्षित अधिकतम का उपयोग करता है -- 8B+ मॉडल के लिए अनुशंसित नहीं (Qwen3-Embedding-8B: 40 960 टोकन तक VRAM को ~32 GB तक पहुँचा सकते हैं)।

पहले आधिकारिक 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

Gateway द्वारा उपयोग किए जाने वाले उसी प्रदाता पथ को सत्यापित करने के लिए स्टैंडअलोन CLI का उपयोग करें:

bash
openclaw memory status --deep --agent mainopenclaw memory index --force --agent main

संख्यात्मक local.contextSize मान node-llama-cpp के स्वचालित GPU-लेयर प्लेसमेंट को भी सूचित करते हैं, ताकि मॉडल वेट और अनुरोधित एम्बेडिंग कॉन्टेक्स्ट को एक साथ समायोजित किया जा सके। रनटाइम लोड होने के बाद openclaw memory status --deep अंतिम ज्ञात llama.cpp बैकएंड, डिवाइस, ऑफ़लोड, अनुरोधित कॉन्टेक्स्ट और टाइमस्टैम्प वाले मेमोरी तथ्य रिपोर्ट करता है; निष्क्रिय स्थिति किसी मॉडल को लोड नहीं करती।

स्थानीय GGUF एम्बेडिंग के लिए provider: "local" को स्पष्ट रूप से सेट करें। स्पष्ट स्थानीय कॉन्फ़िगरेशन के लिए hf: और HTTP(S) मॉडल संदर्भ समर्थित हैं (node-llama-cpp के मॉडल रिज़ॉल्यूशन के माध्यम से), लेकिन वे डिफ़ॉल्ट प्रदाता को नहीं बदलते।

इंडेक्सिंग व्यवहार

मेमोरी इंजन सिंक्रोनाइज़ेशन, बैचिंग, निगरानी और Compaction के बाद की इंडेक्सिंग ह्यूरिस्टिक्स के स्वामी होते हैं। OpenClaw प्रति-इंस्टॉलेशन समय-निर्धारण स्विच उजागर करने के बजाय इन व्यवहारों को अनुरक्षित डिफ़ॉल्ट के साथ सक्षम रखता है।

हाइब्रिड खोज कॉन्फ़िगरेशन

सभी memory.search.query के अंतर्गत:

कुंजी प्रकार डिफ़ॉल्ट विवरण
maxResults number 6 इंजेक्शन से पहले लौटाए गए अधिकतम मेमोरी परिणाम
minScore number 0.35 किसी परिणाम को शामिल करने के लिए न्यूनतम प्रासंगिकता स्कोर

हाइब्रिड पुनर्प्राप्ति सक्षम रहती है; अंतर्निहित इंजन नीति द्वारा MMR और कालगत क्षय अक्षम रहते हैं।

पूर्ण उदाहरण

json5
{  memory: {    search: {      query: {        maxResults: 6,        minScore: 0.35,      },    },  },}

अतिरिक्त मेमोरी पथ

कुंजी प्रकार विवरण
extraPaths string[] इंडेक्स करने के लिए अतिरिक्त डायरेक्टरियाँ या फ़ाइलें
json5
{  memory: {    search: {      extraPaths: ["../team-docs", "/srv/shared-notes"],    },  },}

पथ पूर्ण या कार्यक्षेत्र-सापेक्ष हो सकते हैं। .md फ़ाइलों के लिए डायरेक्टरियों को पुनरावर्ती रूप से स्कैन किया जाता है। सिमलिंक प्रबंधन सक्रिय बैकएंड पर निर्भर करता है: अंतर्निहित इंजन सिमलिंक छोड़ देता है, जबकि QMD अंतर्निहित QMD स्कैनर व्यवहार का अनुसरण करता है।

एजेंट-स्कोप्ड क्रॉस-एजेंट ट्रांस्क्रिप्ट खोज के लिए, memory.qmd.paths के बजाय agents.entries.*.memory.search.qmd.extraCollections का उपयोग करें। वे अतिरिक्त संग्रह उसी { path, name, pattern? } आकार का अनुसरण करते हैं, लेकिन उन्हें प्रति एजेंट मर्ज किया जाता है और जब पथ वर्तमान कार्यक्षेत्र से बाहर इंगित करता है, तब वे स्पष्ट साझा नाम बनाए रख सकते हैं। यदि वही निर्धारित पथ memory.qmd.paths और memory.search.qmd.extraCollections दोनों में दिखाई देता है, तो QMD पहली प्रविष्टि रखता है और डुप्लिकेट छोड़ देता है।


मल्टीमॉडल मेमोरी (Gemini)

Gemini Embedding 2 का उपयोग करके Markdown के साथ छवियों और ऑडियो को इंडेक्स करें:

कुंजी प्रकार डिफ़ॉल्ट विवरण
multimodal.enabled boolean false मल्टीमॉडल इंडेक्सिंग सक्षम करें
multimodal.modalities string[] -- ["image"], ["audio"], या ["all"]
multimodal.maxFileBytes number 10485760 इंडेक्सिंग के लिए अधिकतम फ़ाइल आकार (10 MiB)

समर्थित प्रारूप: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (छवियाँ); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (ऑडियो)।


एम्बेडिंग कैश

कुंजी प्रकार डिफ़ॉल्ट विवरण
cache.enabled boolean true SQLite में खंड एम्बेडिंग कैश करें

पुनः इंडेक्सिंग या ट्रांस्क्रिप्ट अपडेट के दौरान अपरिवर्तित टेक्स्ट को दोबारा एम्बेड होने से रोकता है।


बैच इंडेक्सिंग

कुंजी प्रकार डिफ़ॉल्ट विवरण
remote.nonBatchConcurrency number 4 समानांतर इनलाइन एम्बेडिंग
remote.batch.enabled boolean false बैच एम्बेडिंग API सक्षम करें

gemini, openai, और voyage के लिए उपलब्ध। बड़े बैकफ़िल के लिए OpenAI बैच आम तौर पर सबसे तेज़ और सबसे सस्ता होता है।

समवर्तीता, पोलिंग और टाइमआउट व्यवहार का स्वामित्व प्रदाता के पास होता है।


सत्र मेमोरी खोज

सत्र ट्रांस्क्रिप्ट को इंडेक्स करें और उन्हें memory_search के माध्यम से प्रदर्शित करें:

कुंजी प्रकार डिफ़ॉल्ट विवरण
rememberAcrossConversations boolean false निजी क्रॉस-कन्वर्सेशन स्मरण की अनुमति दें
sources string[] ["memory"] ट्रांस्क्रिप्ट शामिल करने के लिए "sessions" जोड़ें

मॉडल द्वारा सामान्य रूप से आरंभ की गई सत्र ट्रांसक्रिप्ट खोज tools.sessions.visibility का पालन करती है। डिफ़ॉल्ट tree दृश्यता वर्तमान सत्र, उसके द्वारा आरंभ किए गए सत्रों और परिवेशी समूह जागरूकता के माध्यम से देखे गए समान-एजेंट समूह सत्रों को उपलब्ध कराती है। अन्य असंबंधित सत्रों के लिए agent दृश्यता आवश्यक है (या all केवल तब, जब क्रॉस-एजेंट पुनःस्मरण भी आवश्यक हो और एजेंट-से-एजेंट नीति इसकी अनुमति देती हो)।

rememberAcrossConversations उस सेटिंग का दायरा नहीं बढ़ाता। यह सीमित Active Memory पास के दौरान समान-एजेंट निजी ट्रांसक्रिप्ट तक सीमित एक अलग, केवल-रनटाइम प्राधिकरण प्रदान करता है।

नीचे दिए गए उदाहरण इन सेटिंग्स को शीर्ष-स्तरीय memory.search के अंतर्गत रखते हैं। जब केवल एक एजेंट को सत्र ट्रांसक्रिप्ट अनुक्रमित और खोजनी हों, तब आप प्रति-एजेंट memory.search ओवरराइड में समतुल्य सेटिंग्स भी लागू कर सकते हैं।

समान-एजेंट Gateway-से-DM पुनःस्मरण के लिए:

अंतर्निहित बैकएंड

json5
{  memory: {    search: {      experimental: { sessionMemory: true },      sources: ["memory", "sessions"],    },  },  tools: {    sessions: { visibility: "agent" },  },}

QMD बैकएंड

json5
{  memory: {    backend: "qmd",    search: {      experimental: { sessionMemory: true },      sources: ["memory", "sessions"],    },    qmd: {      sessions: { enabled: true },    },  },  tools: {    sessions: { visibility: "agent" },  },}

QMD का उपयोग करते समय, केवल sources: ["sessions"] ट्रांसक्रिप्ट को QMD में निर्यात नहीं करता। साथ ही memory.qmd.sessions.enabled: true भी सेट करें। उच्च-स्तरीय rememberAcrossConversations: true सेटिंग इसका अपवाद है: यह उस एजेंट के लिए आवश्यक QMD सत्र निर्यात को निहित करती है। निहित निर्यात निजी रहते हैं: वे हमेशा डिफ़ॉल्ट आंतरिक निर्यात स्थान का उपयोग करते हैं (कॉन्फ़िगर किया गया sessions.exportDir केवल स्पष्ट निर्यातों पर लागू होता है), उन्हें केवल उस एजेंट के क्रॉस-वार्तालाप पुनःस्मरण के दौरान खोजा जाता है, और सामान्य memory_get उन्हें पढ़ नहीं सकता। स्पष्ट memory.qmd.sessions.enabled: true अपना मौजूदा व्यवहार बनाए रखता है और निर्यातित ट्रांसक्रिप्ट को सामान्य मेमोरी कॉर्पस का हिस्सा बनाता है।


SQLite वेक्टर त्वरण (sqlite-vec)

कुंजी प्रकार डिफ़ॉल्ट विवरण
store.vector.enabled boolean true वेक्टर क्वेरी के लिए sqlite-vec का उपयोग करें
store.vector.extensionPath string बंडल किया हुआ sqlite-vec पथ ओवरराइड करें

जब sqlite-vec उपलब्ध नहीं होता, OpenClaw स्वचालित रूप से प्रक्रिया-अंतर्गत कोसाइन समानता का उपयोग करता है।


इंडेक्स भंडारण

अंतर्निहित मेमोरी इंडेक्स प्रत्येक एजेंट के OpenClaw SQLite डेटाबेस में agents/<agentId>/agent/openclaw-agent.sqlite पर रहते हैं।

कुंजी प्रकार डिफ़ॉल्ट विवरण
store.fts.tokenizer string unicode61 FTS5 टोकनाइज़र (unicode61 या trigram)

QMD बैकएंड कॉन्फ़िगरेशन

सक्षम करने के लिए memory.backend = "qmd" सेट करें। सभी QMD सेटिंग्स memory.qmd के अंतर्गत रहती हैं:

कुंजी प्रकार डिफ़ॉल्ट विवरण
command string qmd QMD निष्पादन योग्य फ़ाइल का पथ; जब सेवा PATH आपके शेल से भिन्न हो, तब निरपेक्ष पथ सेट करें
searchMode string search खोज कमांड: search, vsearch, query
rerank boolean -- QMD पुनःरैंकिंग छोड़ने के लिए searchMode: "query" और QMD 2.1+ के साथ false पर सेट करें
includeDefaultMemory boolean true MEMORY.md + memory/**/*.md का स्वचालित अनुक्रमण
paths[] array -- अतिरिक्त पथ: { name, path, pattern? }
sessions.enabled boolean false सत्र ट्रांसक्रिप्ट को QMD में निर्यात करें
sessions.retentionDays number -- ट्रांसक्रिप्ट प्रतिधारण
sessions.exportDir string -- निर्यात निर्देशिका

searchMode: "search" केवल लेक्सिकल/BM25 है। OpenClaw उस मोड के लिए सिमेंटिक वेक्टर तत्परता जाँच या QMD एम्बेडिंग रखरखाव नहीं चलाता, जिसमें memory status --deep के दौरान भी शामिल है; vsearch और query को QMD वेक्टर तत्परता और एम्बेडिंग की आवश्यकता बनी रहती है।

rerank: false केवल QMD query मोड बदलता है और इसके लिए QMD 2.1 या नया संस्करण आवश्यक है। प्रत्यक्ष CLI मोड में OpenClaw --no-rerank पास करता है; mcporter-समर्थित MCP मोड में यह QMD के एकीकृत क्वेरी टूल को rerank: false पास करता है। QMD के डिफ़ॉल्ट क्वेरी पुनःरैंकिंग व्यवहार का उपयोग करने के लिए इसे सेट न करें।

OpenClaw वर्तमान QMD संग्रह और MCP क्वेरी संरचनाओं को प्राथमिकता देता है, लेकिन आवश्यकता होने पर संगत संग्रह पैटर्न फ़्लैग और पुराने MCP टूल नाम आज़माकर पुराने QMD रिलीज़ को कार्यशील रखता है। जब QMD अनेक संग्रह फ़िल्टर के लिए समर्थन घोषित करता है, तब समान-स्रोत संग्रहों को एक QMD प्रक्रिया से खोजा जाता है; पुराने QMD बिल्ड प्रति-संग्रह संगतता पथ बनाए रखते हैं। समान-स्रोत का अर्थ है कि स्थायी मेमोरी संग्रहों (डिफ़ॉल्ट मेमोरी फ़ाइलें और कस्टम पथ) को एक साथ समूहित किया जाता है, जबकि सत्र ट्रांसक्रिप्ट संग्रह अलग समूह बने रहते हैं, ताकि स्रोत विविधीकरण में दोनों इनपुट बने रहें।

सीमाएँ
कुंजी प्रकार डिफ़ॉल्ट विवरण
limits.maxResults number 4 अधिकतम खोज परिणाम
limits.maxSnippetChars number 450 स्निपेट की लंबाई सीमित करें
limits.maxInjectedChars number 2200 अंतःक्षेपित वर्णों की कुल संख्या सीमित करें
limits.timeoutMs number 4000 memory_search सहित QMD-समर्थित खोज के दौरान QMD कमांड समय-सीमा; सेटअप, सिंक, अंतर्निहित फ़ॉलबैक और पूरक कार्य डिफ़ॉल्ट टूल समय-सीमा बनाए रखते हैं
दायरा

नियंत्रित करता है कि कौन-से सत्र QMD खोज परिणाम प्राप्त कर सकते हैं। session.sendPolicy के समान स्कीमा:

json5
{  memory: {    qmd: {      scope: {        default: "deny",        rules: [{ action: "allow", match: { chatType: "direct" } }],      },    },  },}

प्रदत्त डिफ़ॉल्ट केवल DM/प्रत्यक्ष के लिए है, जो समूहों और अन्य चैनल प्रकारों को अस्वीकार करता है। match.keyPrefix सामान्यीकृत सत्र कुंजी से मेल खाता है; match.rawKeyPrefix agent:<id>: सहित अपरिष्कृत कुंजी से मेल खाता है।

उद्धरण

memory.citations सभी बैकएंड पर लागू होता है:

मान व्यवहार
auto (डिफ़ॉल्ट) स्निपेट में Source: <path#line> पादलेख शामिल करें
on पादलेख हमेशा शामिल करें
off पादलेख हटाएँ (पथ फिर भी आंतरिक रूप से एजेंट को दिया जाता है)

मेमोरी का पहली बार उपयोग होने पर QMD विलंबित रूप से आरंभ होता है; उसका एडाप्टर रीफ़्रेश और एम्बेडिंग अनुसूचियों का स्वामी होता है।

पूर्ण QMD उदाहरण

json5
{  memory: {    backend: "qmd",    citations: "auto",    qmd: {      includeDefaultMemory: true,      update: { interval: "5m", debounceMs: 15000 },      limits: { maxResults: 4, timeoutMs: 4000 },      scope: {        default: "deny",        rules: [{ action: "allow", match: { chatType: "direct" } }],      },      paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }],    },  },}

Dreaming

Dreaming को plugins.entries.memory-core.config.dreaming के अंतर्गत कॉन्फ़िगर किया जाता है, memory.search के अंतर्गत नहीं।

Dreaming एक अनुसूचित स्वीप के रूप में चलता है और आंतरिक हल्के/गहन/REM चरणों को कार्यान्वयन विवरण के रूप में उपयोग करता है।

अवधारणात्मक व्यवहार और स्लैश कमांड के लिए, Dreaming देखें।

उपयोगकर्ता सेटिंग्स

कुंजी प्रकार डिफ़ॉल्ट विवरण
enabled boolean false Dreaming को पूर्णतः सक्षम या अक्षम करें
frequency string 0 3 * * * पूर्ण Dreaming स्वीप के लिए वैकल्पिक Cron आवृत्ति
model string डिफ़ॉल्ट मॉडल वैकल्पिक Dream Diary सबएजेंट मॉडल ओवरराइड
phases.deep.maxPromotedSnippetTokens number 160 MEMORY.md में उन्नत किए गए प्रत्येक अल्पकालिक पुनःस्मरण स्निपेट से रखे जाने वाले अनुमानित टोकन की अधिकतम संख्या; उद्गम मेटाडेटा दृश्यमान रहता है

उदाहरण

json5
{  plugins: {    entries: {      "memory-core": {        subagent: {          allowModelOverride: true,          allowedModels: ["anthropic/claude-sonnet-4-6"],        },        config: {          dreaming: {            enabled: true,            frequency: "0 3 * * *",            model: "anthropic/claude-sonnet-4-6",          },        },      },    },  },}

संबंधित

Was this useful?
On this page

On this page