Technical reference
मेमोरी कॉन्फ़िगरेशन संदर्भ
यह पृष्ठ OpenClaw मेमोरी खोज के प्रत्येक कॉन्फ़िगरेशन विकल्प को सूचीबद्ध करता है। वैचारिक अवलोकन के लिए, देखें:
मेमोरी कैसे काम करती है।
डिफ़ॉल्ट SQLite बैकएंड।
लोकल-फ़र्स्ट साइडकार।
खोज पाइपलाइन और ट्यूनिंग।
इंटरैक्टिव सत्रों के लिए मेमोरी उप-एजेंट।
सभी साझा मेमोरी सेटिंग शीर्ष-स्तरीय memory के अंतर्गत openclaw.json में रहती हैं। खोज के डिफ़ॉल्ट memory.search का उपयोग करते हैं; प्रति-एजेंट खोज ओवरराइड agents.entries.*.memory.search का उपयोग करते हैं।
वार्तालापों के बीच याद रखना
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
rememberAcrossConversations |
boolean |
व्यक्तिगत इंस्टॉल के लिए चालू; कॉन्फ़िगर किए गए DM पृथक्करण के साथ बंद | इस एजेंट के अन्य पहचाने गए निजी वार्तालापों से प्रासंगिक संदर्भ का उपयोग करें। |
जब केवल किसी विश्वसनीय व्यक्तिगत एजेंट को वार्तालापों के बीच ट्रांस्क्रिप्ट स्मरण का उपयोग करना चाहिए, तो इसे प्रति एजेंट कॉन्फ़िगर करें:
{ 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 या मल्टी-होस्ट सेटअप मेमोरी एम्बेडिंग को किसी विशिष्ट स्थानीय एंडपॉइंट को समर्पित कर सकते हैं:
{ 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.apiKeystringAPI कुंजी ओवरराइड करें।
remote.headersobjectअतिरिक्त HTTP हेडर (प्रदाता डिफ़ॉल्ट के साथ मर्ज किए जाते हैं)।
{ 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 को ओवरराइड करता है |
{ 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 पर चलता है, तो केवल प्रदाता और मॉडल सेट करें:
{ 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 डिफ़ॉल्ट क्रेडेंशियल प्रदाता शृंखला का उपयोग करता है:
- पर्यावरण चर (
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY), जब तकAWS_PROFILEभी सेट न हो - SSO (केवल जब SSO फ़ील्ड कॉन्फ़िगर हों)
- साझा क्रेडेंशियल और कॉन्फ़िगरेशन फ़ाइलें (
fromIni, जिसमेंAWS_PROFILEशामिल है) - क्रेडेंशियल प्रक्रिया (AWS कॉन्फ़िगरेशन फ़ाइल में
credential_process) - वेब आइडेंटिटी टोकन क्रेडेंशियल
- ECS या EC2 इंस्टेंस मेटाडेटा क्रेडेंशियल
IAM अनुमतियाँ: IAM भूमिका या उपयोगकर्ता को निम्न की आवश्यकता है:
{ "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": "*"}न्यूनतम विशेषाधिकार के लिए, InvokeModel को विशिष्ट मॉडल तक सीमित करें:
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 का उपयोग करें:
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 और कालगत क्षय अक्षम रहते हैं।
पूर्ण उदाहरण
{ memory: { search: { query: { maxResults: 6, minScore: 0.35, }, }, },}अतिरिक्त मेमोरी पथ
| कुंजी | प्रकार | विवरण |
|---|---|---|
extraPaths |
string[] |
इंडेक्स करने के लिए अतिरिक्त डायरेक्टरियाँ या फ़ाइलें |
{ 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 पुनःस्मरण के लिए:
अंतर्निहित बैकएंड
{ memory: { search: { experimental: { sessionMemory: true }, sources: ["memory", "sessions"], }, }, tools: { sessions: { visibility: "agent" }, },}QMD बैकएंड
{ 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 के समान स्कीमा:
{ 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 उदाहरण
{ 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 में उन्नत किए गए प्रत्येक अल्पकालिक पुनःस्मरण स्निपेट से रखे जाने वाले अनुमानित टोकन की अधिकतम संख्या; उद्गम मेटाडेटा दृश्यमान रहता है |
उदाहरण
{ 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", }, }, }, }, },}