Gateway
कॉन्फ़िगरेशन — एजेंट
agents.*, multiAgent.*, session.*,
messages.*, और talk.* के अंतर्गत एजेंट-स्कोप वाली कॉन्फ़िगरेशन कुंजियाँ। चैनलों, टूल्स, gateway runtime, और अन्य
शीर्ष-स्तरीय कुंजियों के लिए, कॉन्फ़िगरेशन संदर्भ देखें।
एजेंट डिफ़ॉल्ट
agents.defaults.workspace
डिफ़ॉल्ट: OPENCLAW_WORKSPACE_DIR सेट होने पर वही, अन्यथा ~/.openclaw/workspace।
{ agents: { defaults: { workspace: "~/.openclaw/workspace" } },}स्पष्ट agents.defaults.workspace मान
OPENCLAW_WORKSPACE_DIR पर प्राथमिकता लेता है। जब आप उस पथ को config में लिखना नहीं चाहते, तब डिफ़ॉल्ट एजेंटों को
माउंट किए गए workspace की ओर इंगित करने के लिए environment variable का उपयोग करें।
agents.defaults.repoRoot
वैकल्पिक repository root जो system prompt की Runtime पंक्ति में दिखाया जाता है। सेट न होने पर, OpenClaw workspace से ऊपर की ओर चलते हुए स्वतः पता लगाता है।
{ agents: { defaults: { repoRoot: "~/Projects/openclaw" } },}agents.defaults.skills
उन एजेंटों के लिए वैकल्पिक डिफ़ॉल्ट skill allowlist जो
agents.list[].skills सेट नहीं करते।
{ agents: { defaults: { skills: ["github", "weather"] }, list: [ { id: "writer" }, // inherits github, weather { id: "docs", skills: ["docs-search"] }, // replaces defaults { id: "locked-down", skills: [] }, // no skills ], },}- डिफ़ॉल्ट रूप से अप्रतिबंधित skills के लिए
agents.defaults.skillsछोड़ दें। - डिफ़ॉल्ट विरासत में लेने के लिए
agents.list[].skillsछोड़ दें। - कोई skills नहीं चाहिए तो
agents.list[].skills: []सेट करें। - गैर-रिक्त
agents.list[].skillsसूची उस एजेंट के लिए अंतिम सेट होती है; यह डिफ़ॉल्ट के साथ merge नहीं होती।
agents.defaults.skipBootstrap
workspace bootstrap फ़ाइलों (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md) का स्वचालित निर्माण अक्षम करता है।
{ agents: { defaults: { skipBootstrap: true } },}agents.defaults.skipOptionalBootstrapFiles
आवश्यक bootstrap फ़ाइलें लिखते हुए भी चुनी गई वैकल्पिक workspace फ़ाइलों का निर्माण छोड़ता है। मान्य मान: SOUL.md, USER.md, HEARTBEAT.md, और IDENTITY.md।
{ agents: { defaults: { skipOptionalBootstrapFiles: ["SOUL.md", "USER.md"], }, },}agents.defaults.contextInjection
नियंत्रित करता है कि workspace bootstrap फ़ाइलें system prompt में कब inject की जाती हैं। डिफ़ॉल्ट: "always"।
"continuation-skip": सुरक्षित continuation turns (पूर्ण assistant response के बाद) workspace bootstrap re-injection छोड़ देते हैं, जिससे prompt आकार घटता है। Heartbeat runs और post-compaction retries फिर भी context दोबारा बनाते हैं।"never": हर turn पर workspace bootstrap और context-file injection अक्षम करें। इसे केवल उन एजेंटों के लिए उपयोग करें जो अपने prompt lifecycle का पूरा स्वामित्व रखते हैं (custom context engines, native runtimes जो अपना context स्वयं बनाते हैं, या विशेष bootstrap-free workflows)। Heartbeat और compaction-recovery turns भी injection छोड़ते हैं।
{ agents: { defaults: { contextInjection: "continuation-skip" } },}प्रति-एजेंट override: agents.list[].contextInjection। छोड़े गए मान
agents.defaults.contextInjection से विरासत में मिलते हैं।
agents.defaults.bootstrapMaxChars
truncation से पहले प्रति workspace bootstrap फ़ाइल अधिकतम characters। डिफ़ॉल्ट: 20000।
{ agents: { defaults: { bootstrapMaxChars: 20000 } },}प्रति-एजेंट override: agents.list[].bootstrapMaxChars। छोड़े गए मान
agents.defaults.bootstrapMaxChars से विरासत में मिलते हैं।
agents.defaults.bootstrapTotalMaxChars
सभी workspace bootstrap फ़ाइलों में inject किए गए कुल अधिकतम characters। डिफ़ॉल्ट: 60000।
{ agents: { defaults: { bootstrapTotalMaxChars: 60000 } },}प्रति-एजेंट override: agents.list[].bootstrapTotalMaxChars। छोड़े गए मान
agents.defaults.bootstrapTotalMaxChars से विरासत में मिलते हैं।
प्रति-एजेंट bootstrap profile overrides
जब किसी एक एजेंट को साझा डिफ़ॉल्ट से अलग prompt
injection व्यवहार चाहिए, तब प्रति-एजेंट bootstrap profile overrides का उपयोग करें। छोड़े गए fields
agents.defaults से विरासत में मिलते हैं।
{ agents: { defaults: { contextInjection: "continuation-skip", bootstrapMaxChars: 20000, bootstrapTotalMaxChars: 60000, }, list: [ { id: "strict-worker", contextInjection: "always", bootstrapMaxChars: 50000, bootstrapTotalMaxChars: 300000, }, ], },}agents.defaults.bootstrapPromptTruncationWarning
bootstrap context truncate होने पर एजेंट को दिखने वाले system-prompt notice को नियंत्रित करता है।
डिफ़ॉल्ट: "always"।
"off": system prompt में truncation notice text कभी inject न करें।"once": प्रत्येक अनोखे truncation signature के लिए एक बार संक्षिप्त notice inject करें।"always": truncation मौजूद होने पर हर run में संक्षिप्त notice inject करें (अनुशंसित)।
विस्तृत raw/injected counts और config tuning fields diagnostics जैसे context/status reports और logs में रहते हैं; routine WebChat user/runtime context को केवल संक्षिप्त recovery notice मिलता है।
{ agents: { defaults: { bootstrapPromptTruncationWarning: "always" } }, // off | once | always}Context budget ownership map
OpenClaw में कई high-volume prompt/context budgets हैं, और उन्हें जानबूझकर एक generic knob से गुज़ारने के बजाय subsystem के अनुसार विभाजित किया गया है।
agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: सामान्य workspace bootstrap injection।agents.defaults.startupContext.*: one-shot reset/startup model-run prelude, जिसमें recent dailymemory/*.mdफ़ाइलें शामिल हैं। Bare chat/newऔर/resetcommands को model invoke किए बिना acknowledge किया जाता है।skills.limits.*: system prompt में inject की गई compact skills list।agents.defaults.contextLimits.*: bounded runtime excerpts और injected runtime-owned blocks।memory.qmd.limits.*: indexed memory-search snippet और injection sizing।
केवल तब matching per-agent override का उपयोग करें जब किसी एक एजेंट को अलग budget चाहिए:
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextInjectionagents.list[].bootstrapMaxCharsagents.list[].bootstrapTotalMaxCharsagents.list[].contextLimits.*
agents.defaults.startupContext
reset/startup model runs पर inject किए गए first-turn startup prelude को नियंत्रित करता है।
Bare chat /new और /reset commands model invoke किए बिना reset acknowledge करते हैं,
इसलिए वे यह prelude load नहीं करते।
{ agents: { defaults: { startupContext: { enabled: true, applyOn: ["new", "reset"], dailyMemoryDays: 2, maxFileBytes: 16384, maxFileChars: 1200, maxTotalChars: 2800, }, }, },}agents.defaults.contextLimits
bounded runtime context surfaces के लिए साझा डिफ़ॉल्ट।
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000, memoryGetDefaultLines: 120, postCompactionMaxChars: 1800, }, }, },}memoryGetMaxChars: truncation metadata और continuation notice जोड़े जाने से पहले डिफ़ॉल्टmemory_getexcerpt cap।memoryGetDefaultLines:linesछोड़े जाने पर डिफ़ॉल्टmemory_getline window।toolResultMaxChars: persisted results और overflow recovery के लिए उपयोग की जाने वाली advanced live tool-result ceiling। model-context auto cap के लिए unset छोड़ें: 100K tokens से नीचे16000chars, 100K+ tokens पर32000chars, और 200K+ tokens पर64000chars। long-context models के लिए1000000तक के स्पष्ट मान स्वीकार किए जाते हैं, लेकिन effective cap फिर भी model context window के लगभग 30% तक सीमित रहता है।openclaw doctor --deepeffective cap प्रिंट करता है, और doctor केवल तब चेतावनी देता है जब कोई explicit override stale हो या उसका कोई प्रभाव न हो।postCompactionMaxChars: post-compaction refresh injection के दौरान उपयोग किया गया AGENTS.md excerpt cap।
agents.list[].contextLimits
साझा contextLimits knobs के लिए प्रति-एजेंट override। छोड़े गए fields
agents.defaults.contextLimits से विरासत में मिलते हैं।
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000, }, }, list: [ { id: "tiny-local", contextLimits: { memoryGetMaxChars: 6000, toolResultMaxChars: 8000, // advanced ceiling for this agent }, }, ], },}skills.limits.maxSkillsPromptChars
system prompt में inject की गई compact skills list के लिए global cap। यह
मांग पर SKILL.md फ़ाइलें पढ़ने को प्रभावित नहीं करता।
{ skills: { limits: { maxSkillsPromptChars: 18000, }, },}agents.list[].skillsLimits.maxSkillsPromptChars
skills prompt budget के लिए प्रति-एजेंट override।
{ agents: { list: [ { id: "tiny-local", skillsLimits: { maxSkillsPromptChars: 6000, }, }, ], },}agents.defaults.imageMaxDimensionPx
provider calls से पहले transcript/tool image blocks में सबसे लंबे image side का अधिकतम pixel size।
डिफ़ॉल्ट: 1200।
कम मान आम तौर पर screenshot-heavy runs के लिए vision-token usage और request payload size घटाते हैं। अधिक मान अधिक visual detail सुरक्षित रखते हैं।
{ agents: { defaults: { imageMaxDimensionPx: 1200 } },}agents.defaults.imageQuality
file paths, URLs, और media references से load की गई images के लिए image-tool compression/detail preference।
डिफ़ॉल्ट: auto।
OpenClaw चयनित image model के अनुसार resize ladder को adapt करता है। उदाहरण के लिए, Claude Opus 4.8, OpenAI GPT-5.5, Qwen VL, और hosted Llama 4 vision models पुराने/default high-detail vision paths की तुलना में बड़ी images का उपयोग कर सकते हैं, जबकि token और latency cost नियंत्रित करने के लिए multi-image turns को auto mode में अधिक aggressive ढंग से compress किया जाता है।
मान:
auto: model limits और image count के अनुसार adapt करें।efficient: कम token और byte usage के लिए छोटी images को प्राथमिकता दें।balanced: standard middle-ground ladder का उपयोग करें।high: screenshots, diagrams, और document images के लिए अधिक detail सुरक्षित रखें।
{ agents: { defaults: { imageQuality: "auto" } },}agents.defaults.userTimezone
system prompt context के लिए timezone (message timestamps नहीं)। host timezone पर fallback करता है।
{ agents: { defaults: { userTimezone: "America/Chicago" } },}agents.defaults.timeFormat
system prompt में time format। डिफ़ॉल्ट: auto (OS preference)।
{ agents: { defaults: { timeFormat: "auto" } }, // auto | 12 | 24}agents.defaults.model
{ agents: { defaults: { models: { "anthropic/claude-opus-4-6": { alias: "opus" }, "minimax/MiniMax-M2.7": { alias: "minimax" }, }, model: { primary: "anthropic/claude-opus-4-6", fallbacks: ["minimax/MiniMax-M2.7"], }, imageModel: { primary: "openrouter/qwen/qwen-2.5-vl-72b-instruct:free", fallbacks: ["openrouter/google/gemini-2.0-flash-vision:free"], }, imageGenerationModel: { primary: "openai/gpt-image-2", fallbacks: ["google/gemini-3.1-flash-image-preview"], }, videoGenerationModel: { primary: "qwen/wan2.6-t2v", fallbacks: ["qwen/wan2.6-i2v"], }, pdfModel: { primary: "anthropic/claude-opus-4-6", fallbacks: ["openai/gpt-5.4-mini"], }, params: { cacheRetention: "long" }, // global default provider params pdfMaxBytesMb: 10, pdfMaxPages: 20, thinkingDefault: "low", verboseDefault: "off", toolProgressDetail: "explain", reasoningDefault: "off", elevatedDefault: "on", timeoutSeconds: 600, mediaMaxMb: 5, contextTokens: 200000, maxConcurrent: 3, }, },}model: या तो एक स्ट्रिंग ("provider/model") या एक ऑब्जेक्ट ({ primary, fallbacks }) स्वीकार करता है।- स्ट्रिंग रूप केवल प्राथमिक मॉडल सेट करता है।
- ऑब्जेक्ट रूप प्राथमिक के साथ क्रमबद्ध failover मॉडल सेट करता है।
imageModel: या तो एक स्ट्रिंग ("provider/model") या एक ऑब्जेक्ट ({ primary, fallbacks }) स्वीकार करता है।imagetool path द्वारा उसके vision-model config के रूप में उपयोग किया जाता है।- जब चयनित/डिफ़ॉल्ट मॉडल image input स्वीकार नहीं कर सकता, तब fallback routing के रूप में भी उपयोग किया जाता है।
- स्पष्ट
provider/modelrefs को प्राथमिकता दें। Bare IDs compatibility के लिए स्वीकार किए जाते हैं; यदि कोई bare IDmodels.providers.*.modelsमें कॉन्फ़िगर की गई image-capable entry से अद्वितीय रूप से मेल खाता है, तो OpenClaw उसे उस provider के लिए qualify करता है। अस्पष्ट कॉन्फ़िगर किए गए matches के लिए स्पष्ट provider prefix आवश्यक है।
imageGenerationModel: या तो एक स्ट्रिंग ("provider/model") या एक ऑब्जेक्ट ({ primary, fallbacks }) स्वीकार करता है।- साझा image-generation capability और images generate करने वाले किसी भी future tool/plugin surface द्वारा उपयोग किया जाता है।
- सामान्य values: native Gemini image generation के लिए
google/gemini-3.1-flash-image-preview, fal के लिएfal/fal-ai/flux/dev, OpenAI Images के लिएopenai/gpt-image-2, या transparent-background OpenAI PNG/WebP output के लिएopenai/gpt-image-1.5। - यदि आप सीधे कोई provider/model चुनते हैं, तो matching provider auth भी configure करें (उदाहरण के लिए
google/*के लिएGEMINI_API_KEYयाGOOGLE_API_KEY,openai/gpt-image-2/openai/gpt-image-1.5के लिएOPENAI_API_KEYया OpenAI Codex OAuth,fal/*के लिएFAL_KEY)। - यदि छोड़ा गया है, तो
image_generateअब भी auth-backed provider default infer कर सकता है। यह पहले current default provider आज़माता है, फिर provider-id order में बाकी registered image-generation providers।
musicGenerationModel: या तो एक स्ट्रिंग ("provider/model") या एक ऑब्जेक्ट ({ primary, fallbacks }) स्वीकार करता है।- साझा music-generation capability और built-in
music_generatetool द्वारा उपयोग किया जाता है। - सामान्य values:
google/lyria-3-clip-preview,google/lyria-3-pro-preview, याminimax/music-2.6। - यदि छोड़ा गया है, तो
music_generateअब भी auth-backed provider default infer कर सकता है। यह पहले current default provider आज़माता है, फिर provider-id order में बाकी registered music-generation providers। - यदि आप सीधे कोई provider/model चुनते हैं, तो matching provider auth/API key भी configure करें।
- साझा music-generation capability और built-in
videoGenerationModel: या तो एक स्ट्रिंग ("provider/model") या एक ऑब्जेक्ट ({ primary, fallbacks }) स्वीकार करता है।- साझा video-generation capability और built-in
video_generatetool द्वारा उपयोग किया जाता है। - सामान्य values:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flash, याqwen/wan2.7-r2v। - यदि छोड़ा गया है, तो
video_generateअब भी auth-backed provider default infer कर सकता है। यह पहले current default provider आज़माता है, फिर provider-id order में बाकी registered video-generation providers। - यदि आप सीधे कोई provider/model चुनते हैं, तो matching provider auth/API key भी configure करें।
- आधिकारिक Qwen video-generation Plugin अधिकतम 1 output video, 1 input image, 4 input videos, 10 seconds duration, और provider-level
size,aspectRatio,resolution,audio, औरwatermarkoptions का समर्थन करता है।
- साझा video-generation capability और built-in
pdfModel: या तो एक स्ट्रिंग ("provider/model") या एक ऑब्जेक्ट ({ primary, fallbacks }) स्वीकार करता है।- model routing के लिए
pdftool द्वारा उपयोग किया जाता है। - यदि छोड़ा गया है, तो PDF tool
imageModelपर, फिर resolved session/default model पर fallback करता है।
- model routing के लिए
pdfMaxBytesMb:pdftool के लिए default PDF size limit, जब call time परmaxBytesMbpass नहीं किया जाता।pdfMaxPages:pdftool में extraction fallback mode द्वारा consider किए जाने वाले default maximum pages।verboseDefault: agents के लिए default verbose level। Values:"off","on","full"। Default:"off"।toolProgressDetail:/verbosetool summaries और progress-draft tool lines के लिए detail mode। Values:"explain"(default, compact human labels) या"raw"(उपलब्ध होने पर raw command/detail append करें)। Per-agentagents.list[].toolProgressDetailइस default को override करता है।reasoningDefault: agents के लिए default reasoning visibility। Values:"off","on","stream"। Per-agentagents.list[].reasoningDefaultइस default को override करता है। Configured reasoning defaults केवल owners, authorized senders, या operator-admin gateway contexts के लिए लागू होते हैं, जब कोई per-message या session reasoning override set नहीं होता।elevatedDefault: agents के लिए default elevated-output level। Values:"off","on","ask","full"। Default:"on"।model.primary: formatprovider/model(जैसे OpenAI API-key या Codex OAuth access के लिएopenai/gpt-5.5)। यदि आप provider छोड़ते हैं, तो OpenClaw पहले alias आज़माता है, फिर उस exact model id के लिए unique configured-provider match, और केवल उसके बाद configured default provider पर fallback करता है (deprecated compatibility behavior, इसलिए explicitprovider/modelको प्राथमिकता दें)। यदि वह provider अब configured default model expose नहीं करता, तो OpenClaw stale removed-provider default surface करने के बजाय पहले configured provider/model पर fallback करता है।models:/modelके लिए configured model catalog और allowlist। हर entry मेंalias(shortcut) औरparams(provider-specific, उदाहरण के लिएtemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold, OpenRouterproviderrouting,chat_template_kwargs,extra_body/extraBody) शामिल हो सकते हैं।- हर model id manually list किए बिना selected providers के सभी discovered models दिखाने के लिए
"openai/*": {}या"vllm/*": {}जैसेprovider/*entries का उपयोग करें। - जब उस provider के लिए dynamically discovered हर model को वही runtime use करना चाहिए, तो
provider/*entry मेंagentRuntimeजोड़ें। Exactprovider/modelruntime policy फिर भी wildcard पर प्राथमिकता रखती है। - सुरक्षित edits: entries जोड़ने के लिए
openclaw config set agents.defaults.models '<json>' --strict-json --mergeका उपयोग करें। जब तक आप--replacepass नहीं करते,config setऐसे replacements को मना करता है जो existing allowlist entries हटा देंगे। - Provider-scoped configure/onboarding flows selected provider models को इस map में merge करते हैं और पहले से configured unrelated providers को preserve करते हैं।
- direct OpenAI Responses models के लिए, server-side compaction अपने आप enabled होता है।
context_managementinject करना रोकने के लिएparams.responsesServerCompaction: false, या threshold override करने के लिएparams.responsesCompactThresholdका उपयोग करें। OpenAI server-side compaction देखें।
- हर model id manually list किए बिना selected providers के सभी discovered models दिखाने के लिए
params: सभी models पर लागू global default provider parameters।agents.defaults.paramsपर set करें (जैसे{ cacheRetention: "long" })।paramsmerge precedence (config):agents.defaults.params(global base) कोagents.defaults.models["provider/model"].params(per-model) override करता है, फिरagents.list[].params(matching agent id) key के हिसाब से override करता है। विवरण के लिए Prompt Caching देखें।models.providers.openrouter.params.provider: OpenRouter-wide default provider-routing policy। OpenClaw इसे OpenRouter के requestproviderobject को forward करता है; per-modelagents.defaults.models["openrouter/<model>"].params.providerऔर agent params key के हिसाब से override करते हैं। OpenRouter provider routing देखें।params.extra_body/params.extraBody: OpenAI-compatible proxies के लिएapi: "openai-completions"request bodies में merged advanced pass-through JSON। यदि यह generated request keys से collide करता है, तो extra body जीतता है; non-native completions routes बाद में भी OpenAI-onlystoreको strip करते हैं।params.chat_template_kwargs: vLLM/OpenAI-compatible chat-template arguments जो top-levelapi: "openai-completions"request bodies में merge होते हैं।vllm/nemotron-3-*के लिए thinking off होने पर, bundled vLLM Plugin अपने आपenable_thinking: falseऔरforce_nonempty_content: trueभेजता है; explicitchat_template_kwargsgenerated defaults को override करते हैं, औरextra_body.chat_template_kwargsकी final precedence बनी रहती है। Configured vLLM Qwen और Nemotron thinking models multi-level effort ladder के बजाय binary/thinkchoices (off,on) expose करते हैं।compat.thinkingFormat: OpenAI-compatible thinking payload style। Together-stylereasoning.enabledके लिए"together", Qwen-style top-levelenable_thinkingके लिए"qwen", या request-level chat-template kwargs support करने वाले Qwen-family backends, जैसे vLLM, परchat_template_kwargs.enable_thinkingके लिए"qwen-chat-template"का उपयोग करें। OpenClaw disabled thinking कोfalseऔर enabled thinking कोtrueपर map करता है, और configured vLLM Qwen models इन formats के लिए binary/thinkchoices expose करते हैं।compat.supportedReasoningEfforts: per-model OpenAI-compatible reasoning effort list। Custom endpoints के लिए"xhigh"शामिल करें जो वास्तव में इसे accept करते हैं; तब OpenClaw उस configured provider/model के लिए command menus, Gateway session rows, session patch validation, agent CLI validation, औरllm-taskvalidation में/think xhighexpose करता है। जब backend canonical level के लिए provider-specific value चाहता हो, तोcompat.reasoningEffortMapका उपयोग करें।params.preserveThinking: preserved thinking के लिए Z.AI-only opt-in। Enabled होने और thinking on होने पर, OpenClawthinking.clear_thinking: falseभेजता है और priorreasoning_contentreplay करता है; Z.AI thinking and preserved thinking देखें।localService: local/self-hosted model servers के लिए optional provider-level process manager। जब selected model उस provider से संबंधित होता है, OpenClawhealthUrl(याbaseUrl + "/models") probe करता है, endpoint down होने परargsके साथcommandstart करता है,readyTimeoutMsतक wait करता है, फिर model request भेजता है।commandabsolute path होना चाहिए।idleStopMs: 0process को OpenClaw exit होने तक alive रखता है; positive value उतने idle milliseconds के बाद OpenClaw-spawned process को stop करती है। Local model services देखें।- Runtime policy providers या models पर होती है,
agents.defaultsपर नहीं। Provider-wide rules के लिएmodels.providers.<provider>.agentRuntimeया model-specific rules के लिएagents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntimeका उपयोग करें। Official OpenAI provider पर OpenAI agent models default रूप से Codex select करते हैं। - इन fields को mutate करने वाले config writers (उदाहरण के लिए
/models set,/models set-image, और fallback add/remove commands) canonical object form save करते हैं और संभव होने पर existing fallback lists preserve करते हैं। maxConcurrent: sessions के across max parallel agent runs (हर session अभी भी serialized है)। Default: 4।
Runtime policy
{ models: { providers: { openai: { agentRuntime: { id: "codex" }, }, }, }, agents: { defaults: { model: "openai/gpt-5.5", models: { "anthropic/claude-opus-4-8": { agentRuntime: { id: "claude-cli" }, }, "vllm/*": { agentRuntime: { id: "openclaw" }, }, }, }, },}id:"auto","openclaw", कोई पंजीकृत plugin harness id, या समर्थित CLI backend alias. bundled Codex plugincodexपंजीकृत करता है; bundled Anthropic pluginclaude-cliCLI backend देता है।id: "auto"पंजीकृत plugin harnesses को समर्थित turns claim करने देता है और जब कोई harness match नहीं करता, तब OpenClaw का उपयोग करता है। कोई explicit plugin runtime जैसेid: "codex"उस harness की मांग करता है और अगर वह अनुपलब्ध हो या fail हो, तो fail closed करता है।id: "pi"केवलopenclawके deprecated alias के रूप में स्वीकार किया जाता है, ताकि v2026.5.22 और उससे पहले के shipped configs सुरक्षित रहें। नए config मेंopenclawका उपयोग करना चाहिए।- Runtime precedence पहले exact model policy है (
agents.list[].models["provider/model"],agents.defaults.models["provider/model"], याmodels.providers.<provider>.models[]), फिरagents.list[]/agents.defaults.models["provider/*"], फिरmodels.providers.<provider>.agentRuntimeपर provider-wide policy। - Whole-agent runtime keys legacy हैं।
agents.defaults.agentRuntime,agents.list[].agentRuntime, session runtime pins, औरOPENCLAW_AGENT_RUNTIMEको runtime selection अनदेखा करता है। stale values हटाने के लिएopenclaw doctor --fixचलाएँ। - OpenAI agent models default रूप से Codex harness का उपयोग करते हैं; जब आप इसे explicit बनाना चाहते हैं, तब provider/model
agentRuntime.id: "codex"वैध रहता है। - Claude CLI deployments के लिए,
model: "anthropic/claude-opus-4-8"और model-scopedagentRuntime.id: "claude-cli"को प्राथमिकता दें। Legacyclaude-cli/claude-opus-4-7model refs compatibility के लिए अभी भी काम करते हैं, लेकिन नए config में provider/model selection canonical रखना चाहिए और execution backend को provider/model runtime policy में रखना चाहिए। - यह केवल text agent-turn execution को नियंत्रित करता है। Media generation, vision, PDF, music, video, और TTS अभी भी अपनी provider/model settings का उपयोग करते हैं।
Built-in alias shorthands (केवल तब लागू होते हैं जब model agents.defaults.models में हो):
| Alias | Model |
|---|---|
opus |
anthropic/claude-opus-4-6 |
sonnet |
anthropic/claude-sonnet-4-6 |
gpt |
openai/gpt-5.5 |
gpt-mini |
openai/gpt-5.4-mini |
gpt-nano |
openai/gpt-5.4-nano |
gemini |
google/gemini-3.1-pro-preview |
gemini-flash |
google/gemini-3-flash-preview |
gemini-flash-lite |
google/gemini-3.1-flash-lite |
आपके configured aliases हमेशा defaults पर प्राथमिकता लेते हैं।
Z.AI GLM-4.x models automatically thinking mode enable करते हैं, जब तक आप --thinking off set नहीं करते या agents.defaults.models["zai/<model>"].params.thinking स्वयं define नहीं करते।
Z.AI models tool call streaming के लिए default रूप से tool_stream enable करते हैं। इसे disable करने के लिए agents.defaults.models["zai/<model>"].params.tool_stream को false set करें।
Anthropic Claude Opus 4.8 OpenClaw में default रूप से thinking off रखता है; जब adaptive thinking explicit रूप से enable हो, तब Anthropic का provider-owned effort default high होता है। Claude 4.6 models default रूप से adaptive का उपयोग करते हैं जब कोई explicit thinking level set नहीं हो।
agents.defaults.cliBackends
text-only fallback runs (कोई tool calls नहीं) के लिए optional CLI backends। API providers fail होने पर backup के रूप में उपयोगी।
{ agents: { defaults: { cliBackends: { "claude-cli": { command: "/opt/homebrew/bin/claude", }, "my-cli": { command: "my-cli", args: ["--json"], output: "json", modelArg: "--model", sessionArg: "--session", sessionMode: "existing", systemPromptArg: "--system", // Or use systemPromptFileArg when the CLI accepts a prompt file flag. systemPromptWhen: "first", imageArg: "--image", imageMode: "repeat", }, }, }, },}- CLI backends text-first हैं; tools हमेशा disabled रहते हैं।
- Sessions तब supported हैं जब
sessionArgset हो। - Image pass-through तब supported है जब
imageArgfile paths स्वीकार करता हो। reseedFromRawTranscriptWhenUncompacted: truebackend को पहले compaction summary के मौजूद होने से पहले bounded raw OpenClaw transcript tail से safe invalidated sessions recover करने देता है। Auth profile या credential-epoch changes फिर भी कभी raw-reseed नहीं करते।
agents.defaults.promptOverlays
OpenClaw-assembled prompt surfaces पर model family के अनुसार लागू provider-independent prompt overlays। GPT-5-family model ids को OpenClaw/provider routes में shared behavior contract मिलता है; personality केवल friendly interaction-style layer को नियंत्रित करता है। Native Codex app-server routes इस OpenClaw GPT-5 overlay के बजाय Codex-owned base/model instructions रखते हैं, और OpenClaw native threads के लिए Codex की built-in personality disable करता है।
{ agents: { defaults: { promptOverlays: { gpt5: { personality: "friendly", // friendly | on | off }, }, }, },}"friendly"(default) और"on"friendly interaction-style layer enable करते हैं।"off"केवल friendly layer disable करता है; tagged GPT-5 behavior contract enabled रहता है।- Legacy
plugins.entries.openai.config.personalityअभी भी तब read किया जाता है जब यह shared setting unset हो।
agents.defaults.heartbeat
Periodic heartbeat runs।
{ agents: { defaults: { heartbeat: { every: "30m", // 0m disables model: "openai/gpt-5.4-mini", includeReasoning: false, includeSystemPromptSection: true, // default: true; false omits the Heartbeat section from the system prompt lightContext: false, // default: false; true keeps only HEARTBEAT.md from workspace bootstrap files isolatedSession: false, // default: false; true runs each heartbeat in a fresh session (no conversation history) skipWhenBusy: false, // default: false; true also waits for this agent's subagent/nested lanes session: "main", to: "+15555550123", directPolicy: "allow", // allow (default) | block target: "none", // default: none | options: last | whatsapp | telegram | discord | ... prompt: "Read HEARTBEAT.md if it exists...", ackMaxChars: 300, suppressToolErrorWarnings: false, timeoutSeconds: 45, }, }, },}every: duration string (ms/s/m/h)। Default:30m(API-key auth) या1h(OAuth auth)। disable करने के लिए0mset करें।includeSystemPromptSection: false होने पर, system prompt से Heartbeat section हटाता है और bootstrap context मेंHEARTBEAT.mdinjection skip करता है। Default:true।suppressToolErrorWarnings: true होने पर, heartbeat runs के दौरान tool error warning payloads suppress करता है।timeoutSeconds: heartbeat agent turn abort होने से पहले अनुमत अधिकतम समय, seconds में। unset छोड़ें ताकि set होने परagents.defaults.timeoutSecondsउपयोग हो, अन्यथा heartbeat cadence 600 seconds पर capped हो।directPolicy: direct/DM delivery policy।allow(default) direct-target delivery की अनुमति देता है।blockdirect-target delivery suppress करता है औरreason=dm-blockedemit करता है।lightContext: true होने पर, heartbeat runs lightweight bootstrap context का उपयोग करते हैं और workspace bootstrap files से केवलHEARTBEAT.mdरखते हैं।isolatedSession: true होने पर, प्रत्येक heartbeat बिना prior conversation history के fresh session में चलता है। cronsessionTarget: "isolated"जैसा ही isolation pattern। per-heartbeat token cost को ~100K से ~2-5K tokens तक घटाता है।skipWhenBusy: true होने पर, heartbeat runs उस agent की extra busy lanes पर defer होते हैं: उसका अपना session-keyed subagent या nested command work। Cron lanes हमेशा heartbeats defer करती हैं, इस flag के बिना भी।- Per-agent:
agents.list[].heartbeatset करें। जब कोई agentheartbeatdefine करता है, केवल वे agents heartbeats चलाते हैं। - Heartbeats full agent turns चलाते हैं — छोटे intervals अधिक tokens खर्च करते हैं।
agents.defaults.compaction
{ agents: { defaults: { compaction: { mode: "safeguard", // default | safeguard provider: "my-provider", // id of a registered compaction provider plugin (optional) timeoutSeconds: 180, reserveTokensFloor: 24000, keepRecentTokens: 50000, identifierPolicy: "strict", // strict | off | custom identifierInstructions: "Preserve deployment IDs, ticket IDs, and host:port pairs exactly.", // used when identifierPolicy=custom qualityGuard: { enabled: true, maxRetries: 1 }, midTurnPrecheck: { enabled: false }, // optional tool-loop pressure check postCompactionSections: ["Session Startup", "Red Lines"], // opt in to AGENTS.md section reinjection model: "openrouter/anthropic/claude-sonnet-4-6", // optional compaction-only model override truncateAfterCompaction: true, // rotate to a smaller successor JSONL after compaction maxActiveTranscriptBytes: "20mb", // optional preflight local compaction trigger notifyUser: true, // send brief notices when compaction starts and completes (default: false) memoryFlush: { enabled: true, model: "ollama/qwen3:8b", // optional memory-flush-only model override softThresholdTokens: 6000, systemPrompt: "Session nearing compaction. Store durable memories now.", prompt: "Write any lasting notes to memory/YYYY-MM-DD.md; reply with the exact silent token NO_REPLY if nothing to store.", }, }, }, },}mode:defaultयाsafeguard(लंबे इतिहासों के लिए खंडित सारांशीकरण)। Compaction देखें।provider: पंजीकृत Compaction प्रदाता plugin की आईडी। सेट होने पर, अंतर्निहित LLM सारांशीकरण के बजाय प्रदाता काsummarize()कॉल किया जाता है। विफलता पर अंतर्निहित पर वापस चला जाता है। प्रदाता सेट करने सेmode: "safeguard"बाध्य होता है। Compaction देखें।timeoutSeconds: किसी एक Compaction ऑपरेशन के लिए OpenClaw द्वारा उसे रोकने से पहले अनुमत अधिकतम सेकंड। डिफ़ॉल्ट:180।keepRecentTokens: सबसे हाल की ट्रांसक्रिप्ट पूंछ को शब्दशः रखने के लिए एजेंट कट-पॉइंट बजट। मैन्युअल/compactइसे तब मानता है जब इसे स्पष्ट रूप से सेट किया गया हो; अन्यथा मैन्युअल Compaction एक हार्ड चेकपॉइंट है।identifierPolicy:strict(डिफ़ॉल्ट),off, याcustom।strictCompaction सारांशीकरण के दौरान अंतर्निहित अपारदर्शी पहचानकर्ता संरक्षण मार्गदर्शन को पहले जोड़ता है।identifierInstructions:identifierPolicy=customहोने पर उपयोग किया जाने वाला वैकल्पिक कस्टम पहचानकर्ता-संरक्षण टेक्स्ट।qualityGuard: सुरक्षा सारांशों के लिए विकृत-आउटपुट पर फिर से प्रयास करने वाली जांचें। सुरक्षा मोड में डिफ़ॉल्ट रूप से सक्षम; ऑडिट छोड़ने के लिएenabled: falseसेट करें।midTurnPrecheck: वैकल्पिक टूल-लूप दबाव जांच। जबenabled: trueहोता है, OpenClaw टूल परिणाम जोड़े जाने के बाद और अगले मॉडल कॉल से पहले संदर्भ दबाव जांचता है। यदि संदर्भ अब फिट नहीं होता, तो यह प्रॉम्प्ट सबमिट करने से पहले वर्तमान प्रयास को रोक देता है और टूल परिणामों को छोटा करने या compact कर फिर से प्रयास करने के लिए मौजूदा प्रीचेक रिकवरी पथ का पुनः उपयोग करता है।defaultऔरsafeguardदोनों Compaction मोड के साथ काम करता है। डिफ़ॉल्ट: अक्षम।postCompactionSections: Compaction के बाद फिर से इंजेक्ट करने के लिए वैकल्पिक AGENTS.md H2/H3 सेक्शन नाम। unset होने या[]पर सेट होने पर रीइंजेक्शन अक्षम रहता है। स्पष्ट रूप से["Session Startup", "Red Lines"]सेट करने से वह जोड़ी सक्षम होती है और विरासतEvery Session/Safetyfallback सुरक्षित रहता है। इसे केवल तब सक्षम करें जब अतिरिक्त संदर्भ, Compaction सारांश में पहले से कैप्चर किए गए प्रोजेक्ट मार्गदर्शन की नकल करने के जोखिम के लायक हो।model: केवल Compaction सारांशीकरण के लिए वैकल्पिकprovider/model-idयाagents.defaults.modelsसे साधारण alias। साधारण alias dispatch से पहले resolve होते हैं; टकराव होने पर कॉन्फ़िगर किए गए literal model IDs की प्राथमिकता बनी रहती है। इसका उपयोग तब करें जब मुख्य सेशन को एक मॉडल रखना चाहिए लेकिन Compaction सारांश दूसरे पर चलने चाहिए; unset होने पर, Compaction सेशन के प्राथमिक मॉडल का उपयोग करता है।maxActiveTranscriptBytes: वैकल्पिक बाइट सीमा (numberया"20mb"जैसी strings) जो active JSONL के सीमा से आगे बढ़ने पर run से पहले सामान्य local Compaction ट्रिगर करती है।truncateAfterCompactionआवश्यक है ताकि सफल Compaction छोटे successor transcript पर rotate कर सके। unset या0होने पर अक्षम।notifyUser:trueहोने पर, Compaction शुरू होने और पूरा होने पर उपयोगकर्ता को संक्षिप्त सूचनाएं भेजता है (उदाहरण के लिए, "Compacting context..." और "Compaction complete")। Compaction को silent रखने के लिए डिफ़ॉल्ट रूप से अक्षम।memoryFlush: auto-compaction से पहले durable memories संग्रहीत करने के लिए silent agentic turn। जब यह housekeeping turn local model पर ही रहना चाहिए, तोmodelकोollama/qwen3:8bजैसे exact provider/model पर सेट करें; override active session fallback chain inherit नहीं करता। workspace read-only होने पर छोड़ दिया जाता है।
agents.defaults.runRetries
विफलता रिकवरी के दौरान अनंत execution loops रोकने के लिए embedded agent runtime के outer run loop retry iteration boundaries। ध्यान दें कि यह setting वर्तमान में केवल embedded agent runtime पर लागू होती है, ACP या CLI runtimes पर नहीं।
{ agents: { defaults: { runRetries: { base: 24, perProfile: 8, min: 32, max: 160, }, }, list: [ { id: "main", runRetries: { max: 50 }, // optional per-agent overrides }, ], },}base: outer run loop के लिए run retry iterations की base संख्या। डिफ़ॉल्ट:24।perProfile: प्रति fallback profile candidate दिए जाने वाले अतिरिक्त run retry iterations। डिफ़ॉल्ट:8।min: run retry iterations के लिए न्यूनतम absolute limit। डिफ़ॉल्ट:32।max: runaway execution रोकने के लिए run retry iterations की अधिकतम absolute limit। डिफ़ॉल्ट:160।
agents.defaults.contextPruning
LLM को भेजने से पहले in-memory context से पुराने tool results prune करता है। डिस्क पर session history को modify नहीं करता।
{ agents: { defaults: { contextPruning: { mode: "cache-ttl", // off | cache-ttl ttl: "1h", // duration (ms/s/m/h), default unit: minutes keepLastAssistants: 3, softTrimRatio: 0.3, hardClearRatio: 0.5, minPrunableToolChars: 50000, softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 }, hardClear: { enabled: true, placeholder: "[Old tool result content cleared]" }, tools: { deny: ["browser", "canvas"] }, }, }, },}cache-ttl mode behavior
mode: "cache-ttl"pruning passes सक्षम करता है।ttlनियंत्रित करता है कि pruning फिर से कितनी बार चल सकती है (last cache touch के बाद)।- Pruning पहले oversized tool results को soft-trim करती है, फिर आवश्यकता होने पर पुराने tool results को hard-clear करती है।
softTrimRatioऔरhardClearRatio0.0से1.0तक मान स्वीकार करते हैं; config validation उस range से बाहर के मानों को reject करता है।
Soft-trim शुरुआत + अंत रखता है और बीच में ... insert करता है।
Hard-clear पूरे tool result को placeholder से बदल देता है।
नोट्स:
- Image blocks को कभी trim/clear नहीं किया जाता।
- Ratios character-based (approximate) हैं, exact token counts नहीं।
- यदि
keepLastAssistantsसे कम assistant messages मौजूद हों, तो pruning छोड़ दी जाती है।
व्यवहार विवरण के लिए Session Pruning देखें।
ब्लॉक streaming
{ agents: { defaults: { blockStreamingDefault: "off", // on | off blockStreamingBreak: "text_end", // text_end | message_end blockStreamingChunk: { minChars: 800, maxChars: 1200 }, blockStreamingCoalesce: { idleMs: 1000 }, humanDelay: { mode: "natural" }, // off | natural | custom (use minMs/maxMs) }, },}- Non-Telegram channels को block replies सक्षम करने के लिए स्पष्ट
*.blockStreaming: trueचाहिए। - Channel overrides:
channels.<channel>.blockStreamingCoalesce(और per-account variants)। Signal/Slack/Discord/Google Chat डिफ़ॉल्टminChars: 1500। humanDelay: block replies के बीच randomized pause।natural= 800–2500ms। Per-agent override:agents.list[].humanDelay।
व्यवहार + chunking विवरण के लिए Streaming देखें।
Typing indicators
{ agents: { defaults: { typingMode: "instant", // never | instant | thinking | message typingIntervalSeconds: 6, }, },}- डिफ़ॉल्ट: direct chats/mentions के लिए
instant, unmentioned group chats के लिएmessage। - Per-session overrides:
session.typingMode,session.typingIntervalSeconds।
Typing Indicators देखें।
agents.defaults.sandbox
embedded agent के लिए वैकल्पिक sandboxing। पूर्ण गाइड के लिए Sandboxing देखें।
{ agents: { defaults: { sandbox: { mode: "non-main", // off | non-main | all backend: "docker", // docker | ssh | openshell scope: "agent", // session | agent | shared workspaceAccess: "none", // none | ro | rw workspaceRoot: "~/.openclaw/sandboxes", docker: { image: "openclaw-sandbox:bookworm-slim", containerPrefix: "openclaw-sbx-", workdir: "/workspace", readOnlyRoot: true, tmpfs: ["/tmp", "/var/tmp", "/run"], network: "none", user: "1000:1000", capDrop: ["ALL"], env: { LANG: "C.UTF-8" }, setupCommand: "apt-get update && apt-get install -y git curl jq", pidsLimit: 256, memory: "1g", memorySwap: "2g", cpus: 1, ulimits: { nofile: { soft: 1024, hard: 2048 }, nproc: 256, }, seccompProfile: "/path/to/seccomp.json", apparmorProfile: "openclaw-sandbox", dns: ["1.1.1.1", "8.8.8.8"], extraHosts: ["internal.service:10.0.0.5"], binds: ["/home/user/source:/source:rw"], }, ssh: { target: "user@gateway-host:22", command: "ssh", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true, identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", // SecretRefs / inline contents also supported: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, }, browser: { enabled: false, image: "openclaw-sandbox-browser:bookworm-slim", network: "openclaw-sandbox-browser", cdpPort: 9222, cdpSourceRange: "172.21.0.1/32", vncPort: 5900, noVncPort: 6080, headless: false, enableNoVnc: true, allowHostControl: false, autoStart: true, autoStartTimeoutMs: 12000, }, prune: { idleHours: 24, maxAgeDays: 7, }, }, }, }, tools: { sandbox: { tools: { allow: [ "exec", "process", "read", "write", "edit", "apply_patch", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["browser", "canvas", "nodes", "cron", "discord", "gateway"], }, }, },}Sandbox details
Backend:
docker: local Docker runtime (डिफ़ॉल्ट)ssh: generic SSH-backed remote runtimeopenshell: OpenShell runtime
जब backend: "openshell" चुना जाता है, runtime-specific settings
plugins.entries.openshell.config में चली जाती हैं।
SSH backend config:
target:user@host[:port]रूप में SSH targetcommand: SSH client command (डिफ़ॉल्ट:ssh)workspaceRoot: per-scope workspaces के लिए उपयोग किया गया absolute remote rootidentityFile/certificateFile/knownHostsFile: OpenSSH को पास की गई मौजूदा local filesidentityData/certificateData/knownHostsData: inline contents या SecretRefs जिन्हें OpenClaw runtime पर temp files में materialize करता हैstrictHostKeyChecking/updateHostKeys: OpenSSH host-key policy knobs
SSH auth precedence:
identityData,identityFileपर प्राथमिकता रखता हैcertificateData,certificateFileपर प्राथमिकता रखता हैknownHostsData,knownHostsFileपर प्राथमिकता रखता है- SecretRef-backed
*Datavalues sandbox session शुरू होने से पहले active secrets runtime snapshot से resolve किए जाते हैं
SSH backend behavior:
- create या recreate के बाद remote workspace को एक बार seed करता है
- फिर remote SSH workspace को canonical रखता है
exec, file tools, और media paths को SSH के ऊपर route करता है- remote changes को host पर automatically sync नहीं करता
- sandbox browser containers का support नहीं करता
Workspace access:
none:~/.openclaw/sandboxesके तहत per-scope sandbox workspacero:/workspaceपर sandbox workspace,/agentपर agent workspace read-only mount किया गयाrw:/workspaceपर agent workspace read/write mount किया गया
Scope:
session: per-session container + workspaceagent: प्रति agent एक container + workspace (डिफ़ॉल्ट)shared: shared container और workspace (कोई cross-session isolation नहीं)
OpenShell plugin config:
{plugins: { entries: { openshell: { enabled: true, config: { mode: "mirror", // mirror | remote from: "openclaw", remoteWorkspaceDir: "/sandbox", remoteAgentWorkspaceDir: "/agent", gateway: "lab", // वैकल्पिक gatewayEndpoint: "https://lab.example", // वैकल्पिक policy: "strict", // वैकल्पिक OpenShell policy id providers: ["openai"], // वैकल्पिक autoProviders: true, timeoutSeconds: 120, }, }, },},}OpenShell मोड:
mirror: exec से पहले local से remote को seed करें, exec के बाद वापस sync करें; local workspace canonical रहता हैremote: sandbox बनने पर remote को एक बार seed करें, फिर remote workspace को canonical रखें
remote मोड में, OpenClaw के बाहर किए गए host-local edits seed step के बाद sandbox में अपने-आप sync नहीं होते।
Transport OpenShell sandbox में SSH है, लेकिन sandbox lifecycle और वैकल्पिक mirror sync का स्वामित्व plugin के पास है।
setupCommand container creation के बाद एक बार चलता है (sh -lc के ज़रिए)। Network egress, writable root, root user चाहिए।
Containers default रूप से network: "none" होते हैं — अगर agent को outbound access चाहिए, तो इसे "bridge" (या custom bridge network) पर set करें।
"host" blocked है। "container:<id>" default रूप से blocked है, जब तक आप स्पष्ट रूप से
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (break-glass) set नहीं करते।
सक्रिय OpenClaw sandbox में Codex app-server turns अपने native code-mode network access के लिए यही egress setting इस्तेमाल करते हैं।
Inbound attachments सक्रिय workspace में media/inbound/* में staged किए जाते हैं।
docker.binds अतिरिक्त host directories mount करता है; global और per-agent binds merge किए जाते हैं।
Sandboxed browser (sandbox.browser.enabled): container में Chromium + CDP। noVNC URL system prompt में inject किया जाता है। openclaw.json में browser.enabled की जरूरत नहीं है।
noVNC observer access default रूप से VNC auth इस्तेमाल करता है और OpenClaw shared URL में password expose करने के बजाय short-lived token URL emit करता है।
allowHostControl: false(default) sandboxed sessions को host browser target करने से रोकता है।networkdefault रूप सेopenclaw-sandbox-browser(dedicated bridge network) होता है। इसेbridgeपर तभी set करें जब आप स्पष्ट रूप से global bridge connectivity चाहते हों।cdpSourceRangeवैकल्पिक रूप से container edge पर CDP ingress को CIDR range तक सीमित करता है (उदाहरण के लिए172.21.0.1/32)।sandbox.browser.bindsअतिरिक्त host directories को केवल sandbox browser container में mount करता है। Set होने पर ([]सहित), यह browser container के लिएdocker.bindsको replace करता है।- Launch defaults
scripts/sandbox-browser-entrypoint.shमें defined हैं और container hosts के लिए tuned हैं: --remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-software-rasterizer--disable-dev-shm-usage--disable-background-networking--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--renderer-process-limit=2--no-zygote--metrics-recording-only--disable-extensions(default enabled)--disable-3d-apis,--disable-software-rasterizer, और--disable-gpudefault रूप से enabled हैं और WebGL/3D usage को इसकी जरूरत होने परOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0से disabled किए जा सकते हैं।- अगर आपका workflow extensions पर निर्भर करता है, तो
OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0extensions को फिर से enable करता है। --renderer-process-limit=2कोOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>से बदला जा सकता है; Chromium की default process limit इस्तेमाल करने के लिए0set करें।- साथ में
--no-sandbox, जबnoSandboxenabled हो। - Defaults container image baseline हैं; container defaults बदलने के लिए custom entrypoint वाली custom browser image इस्तेमाल करें।
Browser sandboxing और sandbox.docker.binds केवल Docker के लिए हैं।
Images build करें (source checkout से):
scripts/sandbox-setup.sh # main sandbox imagescripts/sandbox-browser-setup.sh # optional browser imageSource checkout के बिना npm installs के लिए, inline docker build commands हेतु Sandboxing § Images and setup देखें।
agents.list (per-agent overrides)
Agent को अपना TTS provider, voice, model,
style, या auto-TTS mode देने के लिए agents.list[].tts इस्तेमाल करें। Agent block global
messages.tts पर deep-merge होता है, इसलिए shared credentials एक जगह रह सकते हैं जबकि individual
agents केवल अपनी जरूरत के voice या provider fields override करते हैं। Active agent का
override automatic spoken replies, /tts audio, /tts status, और
tts agent tool पर apply होता है। Provider examples और precedence के लिए Text-to-speech
देखें।
{ agents: { list: [ { id: "main", default: true, name: "Main Agent", workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", model: "anthropic/claude-opus-4-6", // or { primary, fallbacks } thinkingDefault: "high", // per-agent thinking level override reasoningDefault: "on", // per-agent reasoning visibility override fastModeDefault: false, // per-agent fast mode override params: { cacheRetention: "none" }, // overrides matching defaults.models params by key tts: { providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" }, }, }, skills: ["docs-search"], // replaces agents.defaults.skills when set identity: { name: "Samantha", theme: "helpful sloth", emoji: "🦥", avatar: "avatars/samantha.png", }, groupChat: { mentionPatterns: ["@openclaw"] }, sandbox: { mode: "off" }, runtime: { type: "acp", acp: { agent: "codex", backend: "acpx", mode: "persistent", cwd: "/workspace/openclaw", }, }, subagents: { allowAgents: ["*"] }, tools: { profile: "coding", allow: ["browser"], deny: ["canvas"], elevated: { enabled: true }, }, }, ], },}id: stable agent id (required).default: कई set होने पर, पहला जीतता है (warning logged)। अगर कोई set नहीं है, तो पहली list entry default है।model: string form बिना model fallback के strict per-agent primary set करता है; object form{ primary }भी strict है, जब तक आपfallbacksadd नहीं करते। उस agent को fallback में opt करने के लिए{ primary, fallbacks: [...] }इस्तेमाल करें, या strict behavior explicit करने के लिए{ primary, fallbacks: [] }। Cron jobs जो केवलprimaryoverride करते हैं, वे फिर भी default fallbacks inherit करते हैं जब तक आपfallbacks: []set नहीं करते।params: per-agent stream paramsagents.defaults.modelsमें selected model entry पर merge होते हैं। पूरे model catalog को duplicate किए बिनाcacheRetention,temperature, याmaxTokensजैसे agent-specific overrides के लिए इसका इस्तेमाल करें।tts: वैकल्पिक per-agent text-to-speech overrides। Blockmessages.ttsपर deep-merge होता है, इसलिए shared provider credentials और fallback policy कोmessages.ttsमें रखें और यहां केवल provider, voice, model, style, या auto mode जैसे persona-specific values set करें।skills: वैकल्पिक per-agent skill allowlist। Omit करने पर, agent set होने परagents.defaults.skillsinherit करता है; explicit list defaults को merge करने के बजाय replace करती है, और[]का अर्थ कोई Skills नहीं है।thinkingDefault: वैकल्पिक per-agent default thinking level (off | minimal | low | medium | high | xhigh | adaptive | max)। जब कोई per-message या session override set नहीं है, तो इस agent के लिएagents.defaults.thinkingDefaultoverride करता है। Selected provider/model profile नियंत्रित करता है कि कौन-सी values valid हैं; Google Gemini के लिए,adaptiveprovider-owned dynamic thinking रखता है (Gemini 3/3.1 परthinkingLevelomitted, Gemini 2.5 परthinkingBudget: -1)।reasoningDefault: वैकल्पिक per-agent default reasoning visibility (on | off | stream)। जब कोई per-message या session reasoning override set नहीं है, तो इस agent के लिएagents.defaults.reasoningDefaultoverride करता है।fastModeDefault: fast mode के लिए वैकल्पिक per-agent default ("auto" | true | false)। जब कोई per-message या session fast-mode override set नहीं है, तब लागू होता है।models: वैकल्पिक per-agent model catalog/runtime overrides, fullprovider/modelids से keyed। Per-agent runtime exceptions के लिएmodels["provider/model"].agentRuntimeइस्तेमाल करें।runtime: वैकल्पिक per-agent runtime descriptor। जब agent को default रूप से ACP harness sessions इस्तेमाल करने चाहिए, तोruntime.acpdefaults (agent,backend,mode,cwd) के साथtype: "acp"इस्तेमाल करें।identity.avatar: workspace-relative path,http(s)URL, याdata:URI।- Local workspace-relative
identity.avatarimage files 2 MB तक सीमित हैं।http(s)URLs औरdata:URIs को local file-size limit से check नहीं किया जाता। identitydefaults derive करता है:emojiसेackReaction,name/emojiसेmentionPatterns।subagents.allowAgents: explicitsessions_spawn.agentIdtargets के लिए configured agent ids की allowlist (["*"]= कोई भी configured target; default: वही agent only)। जब self-targetedagentIdcalls allowed होने चाहिए, तो requester id शामिल करें। जिन stale entries का agent config delete हो गया है, उन्हेंsessions_spawnreject करता है औरagents_listसे omit करता है; उन्हें clean up करने के लिएopenclaw doctor --fixचलाएं, या अगर वह target defaults inherit करते हुए spawnable रहना चाहिए तो minimalagents.list[]entry add करें।- Sandbox inheritance guard: अगर requester session sandboxed है, तो
sessions_spawnऐसे targets reject करता है जो unsandboxed चलेंगे। subagents.requireAgentId: true होने पर,agentIdomit करने वालीsessions_spawncalls को block करें (explicit profile selection force करता है; default: false)।
Multi-agent routing
एक Gateway के अंदर कई isolated agents चलाएं। Multi-Agent देखें।
{ agents: { list: [ { id: "home", default: true, workspace: "~/.openclaw/workspace-home" }, { id: "work", workspace: "~/.openclaw/workspace-work" }, ], }, bindings: [ { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } }, { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } }, ],}Binding match fields
type(वैकल्पिक): normal routing के लिएroute(missing type defaults to route), persistent ACP conversation bindings के लिएacp।match.channel(required)match.accountId(वैकल्पिक;*= कोई भी account; omitted = default account)match.peer(वैकल्पिक;{ kind: direct|group|channel, id })match.guildId/match.teamId(वैकल्पिक; channel-specific)acp(वैकल्पिक; केवलtype: "acp"के लिए):{ mode, label, cwd, backend }
Deterministic match order:
match.peermatch.guildIdmatch.teamIdmatch.accountId(exact, no peer/guild/team)match.accountId: "*"(channel-wide)- Default agent
हर tier के अंदर, पहली matching bindings entry जीतती है।
type: "acp" entries के लिए, OpenClaw exact conversation identity (match.channel + account + match.peer.id) से resolve करता है और ऊपर दिए गए route binding tier order का उपयोग नहीं करता।
Per-agent access profiles
Full access (no sandbox)
{agents: { list: [ { id: "personal", workspace: "~/.openclaw/workspace-personal", sandbox: { mode: "off" }, }, ],},}Read-only tools + workspace
{agents: { list: [ { id: "family", workspace: "~/.openclaw/workspace-family", sandbox: { mode: "all", scope: "agent", workspaceAccess: "ro" }, tools: { allow: [ "read", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["write", "edit", "apply_patch", "exec", "process", "browser"], }, }, ],},}कोई filesystem एक्सेस नहीं (केवल messaging)
{agents: { list: [ { id: "public", workspace: "~/.openclaw/workspace-public", sandbox: { mode: "all", scope: "agent", workspaceAccess: "none" }, tools: { allow: [ "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", "whatsapp", "telegram", "slack", "discord", "gateway", ], deny: [ "read", "write", "edit", "apply_patch", "exec", "process", "browser", "canvas", "nodes", "cron", "gateway", "image", ], }, }, ],},}precedence विवरण के लिए Multi-Agent Sandbox & Tools देखें।
Session
{ session: { scope: "per-sender", dmScope: "main", // main | per-peer | per-channel-peer | per-account-channel-peer identityLinks: { alice: ["telegram:123456789", "discord:987654321012345678"], }, reset: { mode: "daily", // daily | idle atHour: 4, idleMinutes: 60, }, resetByType: { thread: { mode: "daily", atHour: 4 }, direct: { mode: "idle", idleMinutes: 240 }, group: { mode: "idle", idleMinutes: 120 }, }, resetTriggers: ["/new", "/reset"], store: "~/.openclaw/agents/{agentId}/sessions/sessions.json", maintenance: { mode: "enforce", // enforce (default) | warn pruneAfter: "30d", maxEntries: 500, resetArchiveRetention: "30d", // duration or false maxDiskBytes: "500mb", // optional hard budget highWaterBytes: "400mb", // optional cleanup target }, threadBindings: { enabled: true, idleHours: 24, // default inactivity auto-unfocus in hours (`0` disables) maxAgeHours: 0, // default hard max age in hours (`0` disables) }, mainKey: "main", // legacy (runtime always uses "main") agentToAgent: { maxPingPongTurns: 5 }, sendPolicy: { rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }], default: "allow", }, },}Session field विवरण
scope: group-chat संदर्भों के लिए आधार session grouping रणनीति।per-sender(डिफ़ॉल्ट): प्रत्येक sender को channel संदर्भ के भीतर एक अलग session मिलता है।global: channel संदर्भ में सभी participants एक ही session साझा करते हैं (केवल तब उपयोग करें जब shared context इरादा हो)।dmScope: DMs को कैसे group किया जाता है।main: सभी DMs मुख्य session साझा करते हैं।per-peer: channels में sender id के आधार पर अलग करें।per-channel-peer: प्रति channel + sender अलग करें (multi-user inboxes के लिए अनुशंसित)।per-account-channel-peer: प्रति account + channel + sender अलग करें (multi-account के लिए अनुशंसित)।identityLinks: cross-channel session sharing के लिए canonical ids को provider-prefixed peers से map करें।/dock_discordजैसे Dock commands इसी map का उपयोग करके active session के reply route को किसी दूसरे linked channel peer पर switch करते हैं; Channel docking देखें।reset: प्राथमिक reset policy।daily,atHourlocal time पर reset करता है;idle,idleMinutesके बाद reset करता है। जब दोनों configured हों, जो पहले expire हो वही लागू होता है। Daily reset freshness session row केsessionStartedAtका उपयोग करती है; idle reset freshnesslastInteractionAtका उपयोग करती है। heartbeat, cron wakeups, exec notifications, और gateway bookkeeping जैसे background/system-event writesupdatedAtको update कर सकते हैं, लेकिन वे daily/idle sessions को fresh नहीं रखते।resetByType: प्रति-type overrides (direct,group,thread)। Legacydmकोdirectके alias के रूप में स्वीकार किया जाता है।mainKey: legacy field। Runtime हमेशा मुख्य direct-chat bucket के लिए"main"का उपयोग करता है।agentToAgent.maxPingPongTurns: agent-to-agent exchanges के दौरान agents के बीच अधिकतम reply-back turns (integer, range:0-20, default:5)।0ping-pong chaining को disable करता है।sendPolicy:channel,chatType(direct|group|channel, legacydmalias के साथ),keyPrefix, याrawKeyPrefixसे match करें। पहला deny जीतता है।maintenance: session-store cleanup + retention controls।mode:enforcecleanup लागू करता है और default है;warnकेवल warnings emit करता है।pruneAfter: stale entries के लिए age cutoff (default30d)।maxEntries:sessions.jsonमें entries की अधिकतम संख्या (default500)। Runtime production-sized caps के लिए छोटे high-water buffer के साथ batch cleanup writes करता है;openclaw sessions cleanup --enforcecap को तुरंत लागू करता है।- Short-lived gateway model-run probe sessions fixed
24hretention का उपयोग करते हैं, लेकिन cleanup pressure-gated है: यह stale strict model-run probe rows को केवल तब हटाता है जब session-entry maintenance/cap pressure पहुँचता है। केवलagent:*:explicit:model-run-<uuid>से match करने वाली strict explicit probe keys eligible हैं; सामान्य direct, group, thread, cron, hook, heartbeat, ACP, और sub-agent sessions यह 24h retention inherit नहीं करते। जब model-run cleanup चलता है, तो यह व्यापकpruneAfterstale-entry cleanup औरmaxEntriescap से पहले चलता है। rotateBytes: deprecated और ignored;openclaw doctor --fixइसे पुराने configs से हटाता है।resetArchiveRetention:*.reset.<timestamp>transcript archives के लिए retention। Defaults topruneAfter; disable करने के लिएfalseset करें।maxDiskBytes: optional sessions-directory disk budget।warnmode में यह warnings log करता है;enforcemode में यह सबसे पुराने artifacts/sessions पहले हटाता है।highWaterBytes: budget cleanup के बाद optional target। Defaults tomaxDiskBytesका80%।threadBindings: thread-bound session features के लिए global defaults।enabled: master default switch (providers override कर सकते हैं; Discordchannels.discord.threadBindings.enabledका उपयोग करता है)idleHours: hours में default inactivity auto-unfocus (0disables; providers override कर सकते हैं)maxAgeHours: hours में default hard max age (0disables; providers override कर सकते हैं)spawnSessions:sessions_spawnऔर ACP thread spawns से thread-bound work sessions बनाने के लिए default gate। Thread bindings enabled होने पर defaults totrue; providers/accounts override कर सकते हैं।defaultSpawnContext: thread-bound spawns के लिए default native subagent context ("fork"या"isolated")। Defaults to"fork"।
Messages
{ messages: { responsePrefix: "🦞", // or "auto" ackReaction: "👀", ackReactionScope: "group-mentions", // group-mentions | group-all | direct | all removeAckAfterReply: false, queue: { mode: "followup", // steer | followup | collect | interrupt debounceMs: 500, cap: 20, drop: "summarize", // old | new | summarize byChannel: { whatsapp: "followup", telegram: "followup", }, }, inbound: { debounceMs: 2000, // 0 disables byChannel: { whatsapp: 5000, slack: 1500, }, }, },}Response prefix
Per-channel/account overrides: channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Resolution (सबसे specific जीतता है): account → channel → global। "" disable करता है और cascade रोकता है। "auto" derives [{identity.name}]।
Template variables:
| Variable | Description | Example |
|---|---|---|
{model} |
छोटा model name | claude-opus-4-6 |
{modelFull} |
पूरा model identifier | anthropic/claude-opus-4-6 |
{provider} |
Provider name | anthropic |
{thinkingLevel} |
वर्तमान thinking level | high, low, off |
{identity.name} |
Agent identity name | ("auto" जैसा ही) |
Variables case-insensitive हैं। {think} {thinkingLevel} का alias है।
Ack reaction
- Defaults to active agent का
identity.emoji, अन्यथा"👀"। Disable करने के लिए""set करें। - Per-channel overrides:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Resolution order: account → channel →
messages.ackReaction→ identity fallback. - Scope:
group-mentions(default),group-all,direct,all. removeAckAfterReply: Slack, Discord, Telegram, WhatsApp, और iMessage जैसे reaction-capable channels पर reply के बाद ack हटाता है।messages.statusReactions.enabled: Slack, Discord, Telegram, और WhatsApp पर lifecycle status reactions enable करता है। Slack और Discord पर, unset status reactions को तब enabled रखता है जब ack reactions active हों। Telegram और WhatsApp पर, lifecycle status reactions enable करने के लिए इसे स्पष्ट रूप सेtrueset करें।messages.statusReactions.emojis: lifecycle emoji keys override करता है:queued,thinking,compacting,tool,coding,web,deploy,build,concierge,done,error,stallSoft, औरstallHard। Telegram केवल fixed reaction set allow करता है, इसलिए unsupported configured emoji उस chat के लिए निकटतम supported status variant पर fall back करते हैं।
Inbound debounce
एक ही sender से आने वाले तेज़ text-only messages को एक single agent turn में batch करता है। Media/attachments तुरंत flush होते हैं। Control commands debouncing bypass करते हैं।
TTS (text-to-speech)
{ messages: { tts: { auto: "always", // off | always | inbound | tagged mode: "final", // final | all provider: "elevenlabs", summaryModel: "openai/gpt-5.4-mini", modelOverrides: { enabled: true }, maxTextLength: 4000, timeoutMs: 30000, prefsPath: "~/.openclaw/settings/tts.json", providers: { elevenlabs: { apiKey: "elevenlabs_api_key", baseUrl: "https://api.elevenlabs.io", speakerVoiceId: "voice_id", modelId: "eleven_multilingual_v2", seed: 42, applyTextNormalization: "auto", languageCode: "en", voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0, }, }, microsoft: { speakerVoice: "en-US-AvaMultilingualNeural", lang: "en-US", outputFormat: "audio-24khz-48kbitrate-mono-mp3", }, openai: { apiKey: "openai_api_key", baseUrl: "https://api.openai.com/v1", model: "gpt-4o-mini-tts", speakerVoice: "alloy", }, }, }, },}autoडिफ़ॉल्ट auto-TTS मोड नियंत्रित करता है:off,always,inbound, याtagged।/tts on|offस्थानीय प्राथमिकताओं को ओवरराइड कर सकता है, और/tts statusप्रभावी स्थिति दिखाता है।summaryModelauto-summary के लिएagents.defaults.model.primaryको ओवरराइड करता है।modelOverridesडिफ़ॉल्ट रूप से सक्षम है;modelOverrides.allowProviderका डिफ़ॉल्टfalseहै (opt-in)।- API कुंजियाँ
ELEVENLABS_API_KEY/XI_API_KEYऔरOPENAI_API_KEYपर फ़ॉलबैक करती हैं। - बंडल किए गए speech provider Plugin-स्वामित्व वाले हैं। यदि
plugins.allowसेट है, तो हर वह TTS provider Plugin शामिल करें जिसे आप उपयोग करना चाहते हैं, उदाहरण के लिए Edge TTS के लिएmicrosoft। पुरानेedgeprovider id कोmicrosoftके alias के रूप में स्वीकार किया जाता है। providers.openai.baseUrlOpenAI TTS endpoint को ओवरराइड करता है। समाधान क्रम config, फिरOPENAI_TTS_BASE_URL, फिरhttps://api.openai.com/v1है।- जब
providers.openai.baseUrlकिसी non-OpenAI endpoint की ओर इशारा करता है, OpenClaw उसे OpenAI-संगत TTS server मानता है और model/voice validation को ढीला करता है।
Talk
Talk मोड (macOS/iOS/Android) के लिए डिफ़ॉल्ट।
{ talk: { provider: "elevenlabs", providers: { elevenlabs: { speakerVoiceId: "elevenlabs_voice_id", voiceAliases: { Clawd: "EXAVITQu4vr4xnSDxMaL", Roger: "CwhRBWXzGAHq8TQ4Fs17", }, modelId: "eleven_v3", outputFormat: "mp3_44100_128", apiKey: "elevenlabs_api_key", }, mlx: { modelId: "mlx-community/Soprano-80M-bf16", }, system: {}, }, consultThinkingLevel: "low", consultFastMode: true, speechLocale: "ru-RU", silenceTimeoutMs: 1500, interruptOnSpeech: true, realtime: { provider: "openai", providers: { openai: { model: "gpt-realtime-2", speakerVoice: "cedar", }, }, instructions: "Speak warmly and keep answers brief.", mode: "realtime", transport: "webrtc", brain: "agent-consult", }, },}- जब कई Talk provider कॉन्फ़िगर किए गए हों, तो
talk.providerकोtalk.providersमें किसी कुंजी से मेल खाना चाहिए। - पुराने flat Talk keys (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) केवल compatibility के लिए हैं। persisted config कोtalk.providers.<provider>में फिर से लिखने के लिएopenclaw doctor --fixचलाएँ। - Voice IDs
ELEVENLABS_VOICE_IDयाSAG_VOICE_IDपर फ़ॉलबैक करते हैं। providers.*.apiKeyplaintext strings या SecretRef objects स्वीकार करता है।ELEVENLABS_API_KEYfallback केवल तब लागू होता है जब कोई Talk API key कॉन्फ़िगर नहीं की गई हो।providers.*.voiceAliasesTalk directives को दोस्ताना नाम उपयोग करने देता है।providers.mlx.modelIdmacOS local MLX helper द्वारा उपयोग किया जाने वाला Hugging Face repo चुनता है। यदि छोड़ा गया हो, तो macOSmlx-community/Soprano-80M-bf16का उपयोग करता है।- macOS MLX playback मौजूद होने पर बंडल किए गए
openclaw-mlx-ttshelper के माध्यम से चलता है, याPATHपर किसी executable के माध्यम से;OPENCLAW_MLX_TTS_BINdevelopment के लिए helper path को ओवरराइड करता है। consultThinkingLevelControl UI Talk realtimeopenclaw_agent_consultcalls के पीछे पूरे OpenClaw agent run के लिए thinking level नियंत्रित करता है। सामान्य session/model behavior बनाए रखने के लिए unset छोड़ें।consultFastModesession की सामान्य fast-mode setting बदले बिना Control UI Talk realtime consults के लिए one-shot fast-mode override सेट करता है।speechLocaleiOS/macOS Talk speech recognition द्वारा उपयोग की जाने वाली BCP 47 locale id सेट करता है। device default का उपयोग करने के लिए unset छोड़ें।silenceTimeoutMsनियंत्रित करता है कि user silence के बाद transcript भेजने से पहले Talk mode कितनी देर प्रतीक्षा करे। Unset platform default pause window (700 ms on macOS and Android, 900 ms on iOS) बनाए रखता है।realtime.instructionsOpenClaw के built-in realtime prompt में provider-facing system instructions जोड़ता है, ताकि defaultopenclaw_agent_consultguidance खोए बिना voice style कॉन्फ़िगर की जा सके।realtime.consultRoutingGateway relay fallback नियंत्रित करता है जब realtime provideropenclaw_agent_consultके बिना final user transcript उत्पन्न करता है:provider-directdirect provider replies को सुरक्षित रखता है, जबकिforce-agent-consultfinalized request को OpenClaw के माध्यम से route करता है।
संबंधित
- Configuration reference — बाकी सभी config keys
- Configuration — सामान्य tasks और quick setup
- Configuration examples