Technical reference
मेमोरी कॉन्फ़िगरेशन संदर्भ
यह पेज OpenClaw मेमोरी खोज के हर कॉन्फ़िगरेशन नॉब को सूचीबद्ध करता है। वैचारिक अवलोकनों के लिए, देखें:
मेमोरी कैसे काम करती है।
डिफ़ॉल्ट SQLite बैकएंड।
लोकल-फ़र्स्ट साइडकार।
खोज पाइपलाइन और ट्यूनिंग।
इंटरैक्टिव सत्रों के लिए मेमोरी सब-एजेंट।
जब तक अन्यथा उल्लेख न हो, सभी मेमोरी खोज सेटिंग्स openclaw.json में agents.defaults.memorySearch के अंतर्गत रहती हैं।
प्रदाता चयन
| Key | Type | Default | Description |
|---|---|---|---|
provider |
string |
"openai" |
bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai, openai-compatible, या voyage जैसे एम्बेडिंग एडैप्टर ID; यह कॉन्फ़िगर किया गया models.providers.<id> भी हो सकता है जिसका api किसी मेमोरी एम्बेडिंग एडैप्टर या OpenAI-संगत मॉडल API की ओर संकेत करता हो |
model |
string |
provider default | एम्बेडिंग मॉडल का नाम |
fallback |
string |
"none" |
प्राथमिक विफल होने पर फ़ॉलबैक एडैप्टर ID |
enabled |
boolean |
true |
मेमोरी खोज सक्षम या अक्षम करें |
जब provider सेट नहीं होता है, OpenClaw OpenAI एम्बेडिंग्स का उपयोग करता है। Gemini, Voyage, Mistral, DeepInfra, Bedrock, GitHub Copilot,
Ollama, स्थानीय GGUF मॉडल, या OpenAI-संगत /v1/embeddings endpoint का उपयोग करने के लिए provider
स्पष्ट रूप से सेट करें।
पुराने कॉन्फ़िगरेशन जो अभी भी provider: "auto" कहते हैं, openai में रिज़ॉल्व होते हैं।
जब provider अनसेट होता है, पुराना provider: "auto" मौजूद होता है, या
provider: "none" जानबूझकर FTS-only मोड चुनता है, तब embeddings अनुपलब्ध होने पर भी memory recall
lexical FTS ranking का उपयोग कर सकता है।
स्पष्ट non-local providers fail closed होते हैं। यदि आप memorySearch.provider को
OpenAI, Gemini, Voyage, Mistral,
Bedrock, GitHub Copilot, DeepInfra, Ollama, LM Studio, या OpenAI-संगत
custom provider जैसे ठोस remote-backed provider पर सेट करते हैं, और वह provider runtime पर अनुपलब्ध है, तो memory_search
चुपचाप FTS-only recall का उपयोग करने के बजाय unavailable result लौटाता है। provider/auth configuration ठीक करें, किसी reachable provider पर स्विच करें, या यदि आप जानबूझकर FTS-only recall चाहते हैं तो
provider: "none" सेट करें।
कस्टम प्रदाता id
memorySearch.provider memory-specific provider adapters जैसे ollama, या OpenAI-compatible model APIs जैसे openai-responses / openai-completions के लिए custom models.providers.<id> entry की ओर संकेत कर सकता है। OpenClaw endpoint, auth, और model-prefix handling के लिए custom provider id को सुरक्षित रखते हुए embedding adapter के लिए उस provider के api owner को resolve करता है। इससे multi-GPU या multi-host setups memory embeddings को किसी विशिष्ट local endpoint को समर्पित कर सकते हैं:
{ 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 key resolution
Remote embeddings के लिए API key आवश्यक है। Bedrock इसके बजाय AWS SDK default credential chain का उपयोग करता है (instance roles, SSO, access keys)।
| Provider | Env var | Config key |
|---|---|---|
| Bedrock | AWS credential chain | कोई API key आवश्यक नहीं |
| 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 |
device login के माध्यम से auth profile |
| Mistral | MISTRAL_API_KEY |
models.providers.mistral.apiKey |
| Ollama | OLLAMA_API_KEY (placeholder) |
-- |
| OpenAI | OPENAI_API_KEY |
models.providers.openai.apiKey |
| Voyage | VOYAGE_API_KEY |
models.providers.voyage.apiKey |
Remote endpoint config
एक generic OpenAI-compatible
/v1/embeddings server के लिए provider: "openai-compatible" का उपयोग करें, जिसे global OpenAI chat credentials विरासत में नहीं लेने चाहिए।
remote.baseUrlstringCustom API base URL।
remote.apiKeystringAPI key override करें।
remote.headersobjectअतिरिक्त HTTP headers (provider defaults के साथ merged)।
{ agents: { defaults: { memorySearch: { provider: "openai-compatible", model: "text-embedding-3-small", remote: { baseUrl: "https://api.example.com/v1/", apiKey: "YOUR_KEY", }, }, }, },}Provider-specific config
Gemini
| Key | Type | Default | Description |
|---|---|---|---|
model |
string |
gemini-embedding-001 |
gemini-embedding-2-preview को भी support करता है |
outputDimensionality |
number |
3072 |
Embedding 2 के लिए: 768, 1536, या 3072 |
OpenAI-compatible input types
OpenAI-compatible embedding endpoints provider-specific input_type request fields में opt in कर सकते हैं। यह asymmetric embedding models के लिए उपयोगी है, जिन्हें query और document embeddings के लिए अलग labels चाहिए होते हैं।
| Key | Type | Default | Description |
|---|---|---|---|
inputType |
string |
unset | query और document embeddings के लिए साझा input_type |
queryInputType |
string |
unset | Query-time input_type; inputType को override करता है |
documentInputType |
string |
unset | Index/document input_type; inputType को override करता है |
{ agents: { defaults: { memorySearch: { provider: "openai-compatible", remote: { baseUrl: "https://embeddings.example/v1", apiKey: "${EMBEDDINGS_API_KEY}", }, model: "asymmetric-embedder", queryInputType: "query", documentInputType: "passage", }, }, },}इन मानों को बदलना provider batch indexing के लिए embedding cache identity को प्रभावित करता है और जब upstream model labels को अलग तरह से treat करता है, तो इसके बाद memory reindex किया जाना चाहिए।
Bedrock
Bedrock embedding config
Bedrock AWS SDK default credential chain का उपयोग करता है — कोई API keys आवश्यक नहीं। यदि OpenClaw Bedrock-enabled instance role के साथ EC2 पर चलता है, तो बस provider और model सेट करें:
{ agents: { defaults: { memorySearch: { provider: "bedrock", model: "amazon.titan-embed-text-v2:0", }, }, },}| Key | Type | Default | Description |
|---|---|---|---|
model |
string |
amazon.titan-embed-text-v2:0 |
कोई भी Bedrock embedding model ID |
outputDimensionality |
number |
model default | Titan V2 के लिए: 256, 512, या 1024 |
Supported models (family detection और dimension defaults के साथ):
| मॉडल 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-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) बेस मॉडल का कॉन्फ़िगरेशन इनहेरिट करते हैं।
प्रमाणीकरण: Bedrock प्रमाणीकरण मानक AWS SDK क्रेडेंशियल समाधान क्रम का उपयोग करता है:
- एनवायरनमेंट वेरिएबल (
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY) - SSO टोकन कैश
- वेब आइडेंटिटी टोकन क्रेडेंशियल
- साझा क्रेडेंशियल और कॉन्फ़िग फ़ाइलें
- ECS या EC2 मेटाडेटा क्रेडेंशियल
रीजन AWS_REGION, AWS_DEFAULT_REGION, amazon-bedrock प्रदाता baseUrl से निर्धारित होता है, या डिफ़ॉल्ट रूप से us-east-1 होता है।
IAM अनुमतियाँ: IAM रोल या उपयोगकर्ता को चाहिए:
{ "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": "*"}न्यूनतम-विशेषाधिकार के लिए, InvokeModel को विशिष्ट मॉडल तक सीमित करें:
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0Local (GGUF + llama.cpp)
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
local.modelPath |
string |
स्वतः डाउनलोड किया गया | GGUF मॉडल फ़ाइल का पथ |
local.modelCacheDir |
string |
node-llama-cpp डिफ़ॉल्ट | डाउनलोड किए गए मॉडल के लिए कैश डायरेक्टरी |
local.contextSize |
number | "auto" |
4096 |
एम्बेडिंग कॉन्टेक्स्ट के लिए कॉन्टेक्स्ट विंडो आकार। 4096 सामान्य चंक्स (128–512 टोकन) को कवर करता है और non-weight VRAM को सीमित रखता है। सीमित होस्ट पर इसे घटाकर 1024–2048 करें। "auto" मॉडल के प्रशिक्षित अधिकतम का उपयोग करता है — 8B+ मॉडल के लिए अनुशंसित नहीं (Qwen3-Embedding-8B: 40 960 टोकन → ~32 GB VRAM बनाम 4096 पर ~8.8 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स्थानीय GGUF एम्बेडिंग के लिए provider: "local" स्पष्ट रूप से सेट करें। hf: और HTTP(S) मॉडल संदर्भ स्पष्ट स्थानीय कॉन्फ़िग के लिए समर्थित हैं, लेकिन वे डिफ़ॉल्ट प्रदाता को नहीं बदलते।
इनलाइन एम्बेडिंग टाइमआउट
sync.embeddingBatchTimeoutSecondsnumberमेमोरी इंडेक्सिंग के दौरान इनलाइन एम्बेडिंग बैच के लिए टाइमआउट ओवरराइड करें।
सेट न होने पर प्रदाता डिफ़ॉल्ट का उपयोग होता है: local, ollama, और lmstudio जैसे स्थानीय/स्व-होस्टेड प्रदाताओं के लिए 600 सेकंड, और होस्टेड प्रदाताओं के लिए 120 सेकंड। जब स्थानीय CPU-बाउंड एम्बेडिंग बैच स्वस्थ हों लेकिन धीमे हों, तो इसे बढ़ाएँ।
हाइब्रिड खोज कॉन्फ़िग
सभी memorySearch.query.hybrid के अंतर्गत:
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
enabled |
boolean |
true |
हाइब्रिड BM25 + वेक्टर खोज सक्षम करें |
vectorWeight |
number |
0.7 |
वेक्टर स्कोर के लिए वेट (0-1) |
textWeight |
number |
0.3 |
BM25 स्कोर के लिए वेट (0-1) |
candidateMultiplier |
number |
4 |
उम्मीदवार पूल आकार गुणक |
MMR (diversity)
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
mmr.enabled |
boolean |
false |
MMR री-रैंकिंग सक्षम करें |
mmr.lambda |
number |
0.7 |
0 = अधिकतम विविधता, 1 = अधिकतम प्रासंगिकता |
Temporal decay (recency)
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
temporalDecay.enabled |
boolean |
false |
हालिया होने का बूस्ट सक्षम करें |
temporalDecay.halfLifeDays |
number |
30 |
स्कोर हर N दिन में आधा हो जाता है |
एवरग्रीन फ़ाइलें (MEMORY.md, memory/ में बिना तारीख वाली फ़ाइलें) कभी decay नहीं की जातीं।
पूरा उदाहरण
{ agents: { defaults: { memorySearch: { query: { hybrid: { vectorWeight: 0.7, textWeight: 0.3, mmr: { enabled: true, lambda: 0.7 }, temporalDecay: { enabled: true, halfLifeDays: 30 }, }, }, }, }, },}अतिरिक्त मेमोरी पथ
| कुंजी | प्रकार | विवरण |
|---|---|---|
extraPaths |
string[] |
इंडेक्स करने के लिए अतिरिक्त निर्देशिकाएं या फ़ाइलें |
{ agents: { defaults: { memorySearch: { extraPaths: ["../team-docs", "/srv/shared-notes"], }, }, },}पथ निरपेक्ष या workspace-सापेक्ष हो सकते हैं। निर्देशिकाओं को .md फ़ाइलों के लिए पुनरावर्ती रूप से स्कैन किया जाता है। Symlink हैंडलिंग सक्रिय backend पर निर्भर करती है: builtin engine symlinks को अनदेखा करता है, जबकि QMD अंतर्निहित QMD scanner व्यवहार का पालन करता है।
agent-scoped cross-agent transcript search के लिए, memory.qmd.paths के बजाय agents.list[].memorySearch.qmd.extraCollections का उपयोग करें। वे अतिरिक्त collections समान { path, name, pattern? } आकार का पालन करती हैं, लेकिन उन्हें प्रति agent merge किया जाता है और जब path वर्तमान workspace के बाहर इंगित करता है, तो वे स्पष्ट shared names को संरक्षित रख सकती हैं। यदि वही resolved path memory.qmd.paths और memorySearch.qmd.extraCollections दोनों में दिखाई देता है, तो QMD पहली entry रखता है और duplicate को छोड़ देता है।
Multimodal मेमोरी (Gemini)
Gemini Embedding 2 का उपयोग करके Markdown के साथ images और audio को इंडेक्स करें:
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
multimodal.enabled |
boolean |
false |
multimodal indexing सक्षम करें |
multimodal.modalities |
string[] |
-- | ["image"], ["audio"], या ["all"] |
multimodal.maxFileBytes |
number |
10000000 |
indexing के लिए अधिकतम फ़ाइल आकार |
समर्थित formats: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (images); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (audio).
एम्बेडिंग कैश
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
cache.enabled |
boolean |
true |
chunk embeddings को SQLite में cache करें |
cache.maxEntries |
number |
50000 |
अधिकतम cached embeddings |
reindex या transcript updates के दौरान अपरिवर्तित text को फिर से embed होने से रोकता है।
बैच इंडेक्सिंग
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
remote.nonBatchConcurrency |
number |
4 |
समानांतर inline embeddings |
remote.batch.enabled |
boolean |
false |
batch embedding API सक्षम करें |
remote.batch.concurrency |
number |
2 |
समानांतर batch jobs |
remote.batch.wait |
boolean |
true |
batch completion की प्रतीक्षा करें |
remote.batch.pollIntervalMs |
number |
-- | poll interval |
remote.batch.timeoutMinutes |
number |
-- | batch timeout |
openai, gemini, और voyage के लिए उपलब्ध। बड़े backfills के लिए OpenAI batch आमतौर पर सबसे तेज और सबसे सस्ता होता है।
remote.nonBatchConcurrency local/self-hosted providers और hosted providers द्वारा उपयोग की जाने वाली inline embedding calls को नियंत्रित करता है, जब provider batch APIs सक्रिय नहीं होती हैं। छोटे local hosts पर अधिक भार से बचने के लिए Ollama non-batch indexing के लिए डिफ़ॉल्ट रूप से 1 का उपयोग करता है; बड़ी machines पर अधिक मान सेट करें।
यह sync.embeddingBatchTimeoutSeconds से अलग है, जो inline embedding calls के लिए timeout को नियंत्रित करता है।
सेशन मेमोरी खोज (प्रायोगिक)
session transcripts को इंडेक्स करें और उन्हें memory_search के माध्यम से प्रस्तुत करें:
| कुंजी | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
experimental.sessionMemory |
boolean |
false |
session indexing सक्षम करें |
sources |
string[] |
["memory"] |
transcripts शामिल करने के लिए "sessions" जोड़ें |
sync.sessions.deltaBytes |
number |
100000 |
reindex के लिए byte threshold |
sync.sessions.deltaMessages |
number |
50 |
reindex के लिए message threshold |
सत्र प्रतिलेख मिलान भी
tools.sessions.visibility का पालन करते हैं। डिफ़ॉल्ट
tree दृश्यता केवल वर्तमान सत्र और उसके द्वारा शुरू किए गए सत्रों को दिखाती है। किसी
अलग सत्र, जैसे DM, से किसी असंबंधित समान-एजेंट Gateway द्वारा भेजे गए सत्र को
याद करने के लिए, दृश्यता को जानबूझकर agent तक बढ़ाएँ (या all केवल तब जब
क्रॉस-एजेंट रिकॉल भी आवश्यक हो और एजेंट-से-एजेंट नीति इसकी अनुमति देती हो)।
नीचे दिए गए उदाहरण इन सेटिंग्स को agents.defaults के अंतर्गत रखते हैं। जब केवल एक
एजेंट को सत्र प्रतिलेखों को इंडेक्स और खोज करना चाहिए, तब आप प्रति-एजेंट ओवरराइड में
समकक्ष memorySearch सेटिंग्स भी लागू कर सकते हैं।
समान-एजेंट Gateway-से-DM रिकॉल के लिए:
Builtin backend
{ agents: { defaults: { memorySearch: { experimental: { sessionMemory: true }, sources: ["memory", "sessions"], }, }, }, tools: { sessions: { visibility: "agent" }, },}QMD backend
{ agents: { defaults: { memorySearch: { experimental: { sessionMemory: true }, sources: ["memory", "sessions"], }, }, }, memory: { backend: "qmd", qmd: { sessions: { enabled: true }, }, }, tools: { sessions: { visibility: "agent" }, },}QMD का उपयोग करते समय, agents.defaults.memorySearch.experimental.sessionMemory और
sources: ["sessions"] अपने-आप प्रतिलेखों को QMD में निर्यात नहीं करते। साथ में
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 executable पथ; जब सेवा का PATH आपके shell से अलग हो तो एक absolute पथ सेट करें |
searchMode |
string |
search |
खोज कमांड: search, vsearch, query |
rerank |
boolean |
-- | QMD reranking छोड़ने के लिए 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 |
-- | प्रतिलेख retention |
sessions.exportDir |
string |
-- | निर्यात निर्देशिका |
searchMode: "search" केवल lexical/BM25 है। OpenClaw उस मोड के लिए semantic vector readiness probes या QMD embedding maintenance नहीं चलाता, जिसमें memory status --deep के दौरान भी शामिल है; vsearch और query के लिए QMD vector readiness और embeddings आवश्यक बने रहते हैं।
rerank: false केवल QMD query मोड को बदलता है और इसके लिए QMD 2.1 या उससे नया संस्करण आवश्यक है। direct CLI मोड में OpenClaw --no-rerank पास करता है; mcporter-backed MCP मोड में यह QMD के unified query tool को rerank: false पास करता है। QMD के डिफ़ॉल्ट query reranking व्यवहार का उपयोग करने के लिए इसे unset छोड़ दें।
OpenClaw मौजूदा QMD collection और MCP query shapes को प्राथमिकता देता है, लेकिन आवश्यकता होने पर compatible collection pattern flags और पुराने MCP tool names आज़माकर पुराने QMD रिलीज़ को काम करते रहने देता है। जब QMD कई collection filters के समर्थन का विज्ञापन करता है, same-source collections को एक QMD process से खोजा जाता है; पुराने QMD builds per-collection compatibility path बनाए रखते हैं। Same-source का अर्थ है कि durable memory collections को साथ में समूहित किया जाता है, जबकि session transcript collections एक अलग समूह बने रहते हैं ताकि source diversification में अब भी दोनों inputs रहें।
अपडेट शेड्यूल
| Key | Type | Default | Description |
|---|---|---|---|
update.interval |
string |
5m |
रीफ़्रेश अंतराल |
update.debounceMs |
number |
15000 |
फ़ाइल बदलावों को Debounce करें |
update.onBoot |
boolean |
true |
लंबे समय तक चलने वाला QMD मैनेजर खुलने पर रीफ़्रेश करें; तत्काल बूट अपडेट छोड़ने के लिए false सेट करें |
update.startup |
string |
off |
वैकल्पिक gateway-start QMD आरंभीकरण: off, idle, या immediate |
update.startupDelayMs |
number |
120000 |
startup: "idle" रीफ़्रेश चलने से पहले विलंब |
update.waitForBootSync |
boolean |
false |
मैनेजर खोलने को तब तक रोकें जब तक उसका शुरुआती रीफ़्रेश पूरा न हो जाए |
update.embedInterval |
string |
-- | अलग embed cadence |
update.commandTimeoutMs |
number |
-- | QMD कमांड के लिए Timeout |
update.updateTimeoutMs |
number |
-- | QMD अपडेट कार्रवाइयों के लिए Timeout |
update.embedTimeoutMs |
number |
-- | QMD embed कार्रवाइयों के लिए Timeout |
सीमाएँ
| Key | Type | Default | Description |
|---|---|---|---|
limits.maxResults |
number |
6 |
अधिकतम खोज परिणाम |
limits.maxSnippetChars |
number |
-- | स्निपेट की लंबाई सीमित करें |
limits.maxInjectedChars |
number |
-- | कुल इंजेक्ट किए गए वर्ण सीमित करें |
limits.timeoutMs |
number |
4000 |
खोज Timeout |
स्कोप
नियंत्रित करता है कि कौन-से सत्र QMD खोज परिणाम प्राप्त कर सकते हैं। वही स्कीमा जो session.sendPolicy में है:
{ memory: { qmd: { scope: { default: "deny", rules: [{ action: "allow", match: { chatType: "direct" } }], }, }, },}शिप किया गया डिफ़ॉल्ट direct और channel सत्रों को अनुमति देता है, जबकि groups को अब भी अस्वीकार करता है।
डिफ़ॉल्ट केवल-DM है। match.keyPrefix सामान्यीकृत session key से मेल खाता है; match.rawKeyPrefix agent:<id>: सहित raw key से मेल खाता है।
उद्धरण
memory.citations सभी backends पर लागू होता है:
| Value | Behavior |
|---|---|
auto (default) |
स्निपेट में Source: <path#line> footer शामिल करें |
on |
हमेशा footer शामिल करें |
off |
footer छोड़ें (path अब भी आंतरिक रूप से agent को भेजा जाता है) |
जब gateway-start QMD आरंभीकरण सक्षम होता है, OpenClaw केवल पात्र agents के लिए QMD शुरू करता है। यदि update.onBoot true है और कोई interval/embed maintenance कॉन्फ़िगर नहीं है, तो startup boot refresh के लिए one-shot manager का उपयोग करता है और उसे बंद कर देता है। यदि कोई update या embed interval कॉन्फ़िगर है, तो startup लंबे समय तक चलने वाला QMD manager खोलता है ताकि वह watcher और interval timers का स्वामी हो सके; update.onBoot: false केवल तत्काल boot refresh को छोड़ता है।
पूरा QMD उदाहरण
{ memory: { backend: "qmd", citations: "auto", qmd: { includeDefaultMemory: true, update: { interval: "5m", debounceMs: 15000 }, limits: { maxResults: 6, timeoutMs: 4000 }, scope: { default: "deny", rules: [{ action: "allow", match: { chatType: "direct" } }], }, paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }], }, },}Dreaming
Dreaming को agents.defaults.memorySearch के अंतर्गत नहीं, बल्कि plugins.entries.memory-core.config.dreaming के अंतर्गत कॉन्फ़िगर किया जाता है।
Dreaming एक scheduled sweep के रूप में चलता है और implementation detail के रूप में आंतरिक light/deep/REM phases का उपयोग करता है।
संकल्पनात्मक व्यवहार और slash commands के लिए, Dreaming देखें।
उपयोगकर्ता सेटिंग्स
| Key | Type | Default | Description |
|---|---|---|---|
enabled |
boolean |
false |
Dreaming को पूरी तरह सक्षम या अक्षम करें |
frequency |
string |
0 3 * * * |
पूरे dreaming sweep के लिए वैकल्पिक Cron cadence |
model |
string |
डिफ़ॉल्ट model | वैकल्पिक Dream Diary subagent model override |
phases.deep.maxPromotedSnippetTokens |
number |
160 |
MEMORY.md में promote किए गए प्रत्येक short-term recall snippet से रखे गए अधिकतम अनुमानित tokens; provenance metadata दृश्यमान रहता है |
उदाहरण
{ 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", }, }, }, }, },}