tools.* कॉन्फ़िगरेशन keys और कस्टम provider / base-URL सेटअप। agents, channels, और अन्य शीर्ष-स्तरीय कॉन्फ़िगरेशन keys के लिए, कॉन्फ़िगरेशन संदर्भ देखें।
टूल
टूल प्रोफ़ाइल
tools.profile, tools.allow/tools.deny से पहले एक आधार allowlist सेट करता है:
स्थानीय onboarding, unset होने पर नए स्थानीय configs को डिफ़ॉल्ट रूप से
tools.profile: "coding" पर सेट करता है (मौजूदा explicit profiles संरक्षित रखे जाते हैं)।| प्रोफ़ाइल | शामिल हैं |
|---|---|
minimal | केवल session_status |
coding | group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, skill_workshop, video_generate |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full | कोई प्रतिबंध नहीं (unset जैसा ही) |
टूल समूह
| समूह | टूल |
|---|---|
group:runtime | exec, process, code_execution (bash को exec के alias के रूप में स्वीकार किया जाता है) |
group:fs | read, write, edit, apply_patch |
group:sessions | sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory | memory_search, memory_get |
group:web | web_search, x_search, web_fetch |
group:ui | browser, canvas |
group:automation | heartbeat_respond, cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list, update_plan |
group:media | image, image_generate, music_generate, video_generate, tts |
group:openclaw | सभी built-in टूल (provider Plugins को छोड़कर) |
group:plugins | loaded Plugins के स्वामित्व वाले टूल, जिनमें bundle-mcp के माध्यम से उजागर configured MCP servers शामिल हैं |
sandbox tool policy के अंदर MCP और Plugin टूल
Configured MCP servers कोbundle-mcp Plugin id के तहत Plugin-स्वामित्व वाले टूल के रूप में उजागर किया जाता है। सामान्य टूल प्रोफ़ाइल उन्हें allow कर सकती हैं, लेकिन sandboxed sessions के लिए tools.sandbox.tools एक अतिरिक्त gate है। यदि sandbox mode "all" या "non-main" है, तो MCP/Plugin टूल दिखने चाहिए होने पर sandbox tool allowlist में इनमें से कोई एक entry शामिल करें:
mcp.serversसे OpenClaw-प्रबंधित MCP servers के लिएbundle-mcp- किसी विशिष्ट native Plugin के लिए Plugin id
- सभी loaded Plugin-स्वामित्व वाले टूल के लिए
group:plugins - exact MCP server tool names या server globs जैसे
outlook__send_mailयाoutlook__*, जब आप केवल एक server चाहते हों
mcp.servers key का। Non-[A-Za-z0-9_-] characters - बन जाते हैं, जिन names की शुरुआत letter से नहीं होती उन्हें mcp- prefix मिलता है, और लंबे या duplicate prefixes truncate या suffix किए जा सकते हैं; उदाहरण के लिए, mcp.servers["Outlook Graph"] outlook-graph__* जैसा glob उपयोग करता है।
mcp.servers में OpenClaw-प्रबंधित servers के लिए इस shape को पकड़ने के लिए openclaw doctor का उपयोग करें। bundled Plugin manifests या Claude .mcp.json से loaded MCP servers भी वही sandbox gate उपयोग करते हैं, लेकिन यह diagnostic अभी उन sources को enumerate नहीं करता; यदि sandboxed turns में उनके टूल गायब हो जाएं तो वही allowlist entries उपयोग करें।
tools.codeMode
tools.codeMode सामान्य OpenClaw code-mode surface सक्षम करता है। जब tools वाले run के लिए सक्षम किया जाता है, model को केवल exec और wait दिखते हैं; सामान्य OpenClaw टूल in-sandbox tools.* catalog bridge के पीछे चले जाते हैं, और MCP टूल generated MCP namespace के माध्यम से उपलब्ध होते हैं।
MCP.<server>.<tool>() call करने से पहले TypeScript-style signatures inspect करने के लिए API.list("mcp") और API.read("mcp/<server>.d.ts") call कर सकता है। runtime contract, limits, और debugging steps के लिए Code mode देखें।
tools.allow / tools.deny
Global tool allow/deny policy (deny wins)। Case-insensitive, * wildcards का समर्थन करती है। Docker sandbox off होने पर भी लागू होती है।
write और apply_patch अलग tool ids हैं। allow: ["write"] compatible models के लिए apply_patch भी सक्षम करता है, लेकिन deny: ["write"], apply_patch को deny नहीं करता। सभी file mutation block करने के लिए, group:fs deny करें या प्रत्येक mutating tool को स्पष्ट रूप से list करें:
tools.byProvider
विशिष्ट providers या models के लिए टूल को और restrict करता है। क्रम: base profile → provider profile → allow/deny।
tools.toolsBySender
किसी विशिष्ट requester identity के लिए टूल restrict करता है। यह channel access control के ऊपर defense-in-depth है; sender values channel adapter से आने चाहिए, message text से नहीं।
channel:<channelId>:<senderId>, id:<senderId>, e164:<phone>, username:<handle>, name:<displayName>, या "*"। Channel ids canonical OpenClaw ids हैं; teams जैसे aliases msteams में normalize होते हैं। Legacy unprefixed keys केवल id: के रूप में स्वीकार की जाती हैं। Matching order है channel+id, id, e164, username, name, फिर wildcard।
Per-agent agents.list[].tools.toolsBySender, match होने पर global sender match को override करता है, खाली {} policy के साथ भी।
tools.elevated
sandbox के बाहर elevated exec access नियंत्रित करता है:
- Per-agent override (
agents.list[].tools.elevated) केवल और restrict कर सकता है। /elevated on|off|ask|fullप्रति session state store करता है; inline directives single message पर लागू होते हैं।- Elevated
execsandboxing bypass करता है और configured escape path का उपयोग करता है (डिफ़ॉल्ट रूप सेgateway, या exec targetnodeहोने परnode)।
tools.exec
tools.loopDetection
Tool-loop safety checks डिफ़ॉल्ट रूप से disabled हैं। detection activate करने के लिए enabled: true set करें। Settings को globally tools.loopDetection में define किया जा सकता है और per-agent agents.list[].tools.loopDetection पर override किया जा सकता है।
loop analysis के लिए retained अधिकतम tool-call history।
warnings के लिए repeating no-progress pattern threshold।
critical loops block करने के लिए उच्चतर repeating threshold।
किसी भी no-progress run के लिए hard stop threshold।
repeated same-tool/same-args calls पर warn करें।
ज्ञात poll tools (
process.poll, command_status, आदि) पर warn/block करें।alternating no-progress pair patterns पर warn/block करें।
tools.web
tools.media
inbound media understanding (image/audio/video) configure करता है:
मीडिया मॉडल एंट्री फ़ील्ड
मीडिया मॉडल एंट्री फ़ील्ड
प्रदाता एंट्री (
type: "provider" या छोड़ा गया):provider: API प्रदाता id (openai,anthropic,google/gemini,groq, आदि)model: मॉडल id ओवरराइडprofile/preferredProfile:auth-profiles.jsonप्रोफ़ाइल चयन
type: "cli"):command: चलाने योग्य executableargs: templated args ({{MediaPath}},{{Prompt}},{{MaxChars}}, आदि का समर्थन करता है;openclaw doctor --fixअप्रचलित{input}placeholders को{{MediaPath}}में माइग्रेट करता है)
capabilities: वैकल्पिक सूची (image,audio,video). डिफ़ॉल्ट:openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: प्रति-एंट्री ओवरराइड.tools.media.image.timeoutSecondsऔर मिलती-जुलती image मॉडलtimeoutSecondsएंट्रियां तब भी लागू होती हैं जब एजेंट स्पष्टimageटूल को कॉल करता है. इमेज समझने के लिए, यह timeout अनुरोध पर ही लागू होता है और पहले की तैयारी के काम से कम नहीं किया जाता.- विफलताएं अगली एंट्री पर fallback करती हैं.
auth-profiles.json → env vars → models.providers.*.apiKey.Async completion फ़ील्ड:asyncCompletion.directSend: अप्रचलित compatibility flag. पूर्ण async मीडिया कार्य requester-session मध्यस्थित रहते हैं ताकि एजेंट परिणाम प्राप्त करे, तय करे कि उपयोगकर्ता को कैसे बताना है, और स्रोत delivery की आवश्यकता होने पर message tool का उपयोग करे.
tools.agentToAgent
tools.sessions
नियंत्रित करता है कि session tools (sessions_list, sessions_history, sessions_send) द्वारा किन sessions को target किया जा सकता है.
डिफ़ॉल्ट: tree (वर्तमान session + इससे spawned sessions, जैसे subagents).
दृश्यता scopes
दृश्यता scopes
self: केवल वर्तमान session key.tree: वर्तमान session + वर्तमान session द्वारा spawned sessions (subagents).agent: वर्तमान agent id से संबंधित कोई भी session (यदि आप एक ही agent id के तहत per-sender sessions चलाते हैं तो अन्य उपयोगकर्ता शामिल हो सकते हैं).all: कोई भी session. Cross-agent targeting के लिए अभी भीtools.agentToAgentआवश्यक है.- Sandbox clamp: जब वर्तमान session sandboxed हो और
agents.defaults.sandbox.sessionToolsVisibility="spawned"हो, तो visibility कोtreeपर बाध्य किया जाता है, भले हीtools.sessions.visibility="all"हो. - जब
allनहीं होता,sessions_listएक compactvisibilityफ़ील्ड शामिल करता है जो effective mode का वर्णन करता है और चेतावनी देता है कि कुछ sessions वर्तमान scope के बाहर छोड़े जा सकते हैं.
tools.sessions_spawn
sessions_spawn के लिए inline attachment समर्थन नियंत्रित करता है.
Attachment नोट्स
Attachment नोट्स
- Attachments के लिए
enabled: trueआवश्यक है. - Subagent attachments को child workspace में
.openclaw/attachments/<uuid>/पर.manifest.jsonके साथ materialize किया जाता है. - ACP attachments केवल image-only होते हैं और समान file count, per-file byte, और total byte limits pass होने के बाद ACP runtime को inline forward किए जाते हैं.
- Attachment content को transcript persistence से स्वचालित रूप से redact किया जाता है.
- Base64 inputs को strict alphabet/padding checks और pre-decode size guard के साथ validate किया जाता है.
- Subagent attachment file permissions directories के लिए
0700और files के लिए0600हैं. - Subagent cleanup
cleanuppolicy का पालन करता है:deleteहमेशा attachments हटाता है;keepउन्हें केवल तब retain करता है जबretainOnSessionKeep: trueहो.
tools.experimental
Experimental built-in tool flags. डिफ़ॉल्ट रूप से off, जब तक strict-agentic GPT-5 auto-enable rule लागू न हो.
planTool: non-trivial multi-step work tracking के लिए structuredupdate_plantool सक्षम करता है.- डिफ़ॉल्ट:
falseजब तकagents.defaults.embeddedAgent.executionContract(या per-agent override) OpenAI या OpenAI Codex GPT-5-family run के लिए"strict-agentic"पर सेट न हो. उस scope से बाहर tool को force on करने के लिएtrueसेट करें, या strict-agentic GPT-5 runs के लिए भी इसे off रखने के लिएfalseसेट करें. - सक्षम होने पर, system prompt usage guidance भी जोड़ता है ताकि model इसे केवल substantial work के लिए उपयोग करे और अधिकतम एक step
in_progressरखे.
agents.defaults.subagents
model: spawned sub-agents के लिए डिफ़ॉल्ट model. यदि छोड़ा गया है, तो sub-agents caller के model को inherit करते हैं.allowAgents:sessions_spawnके लिए configured target agent ids की डिफ़ॉल्ट allowlist, जब requester agent अपनाsubagents.allowAgentsसेट नहीं करता (["*"]= कोई भी configured target; डिफ़ॉल्ट: केवल वही agent). जिन stale entries का agent config delete हो चुका है, उन्हेंsessions_spawnreject करता है औरagents_listसे omit करता है; उन्हें clean up करने के लिएopenclaw doctor --fixचलाएं.runTimeoutSeconds:sessions_spawnके लिए डिफ़ॉल्ट timeout (seconds).0का अर्थ है कोई timeout नहीं.announceTimeoutMs: Gatewayagentannounce delivery attempts के लिए per-call timeout (milliseconds). डिफ़ॉल्ट:120000. Transient retries कुल announce wait को एक configured timeout से लंबा बना सकते हैं.- Per-subagent tool policy:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Custom providers और base URLs
Provider plugins अपने model catalog rows प्रकाशित करते हैं. Custom providers को config मेंmodels.providers के ज़रिए या ~/.openclaw/agents/<agentId>/agent/models.json में जोड़ें.
Custom/local provider baseUrl configure करना model HTTP requests के लिए narrow network trust decision भी है: OpenClaw उसी exact scheme://host:port origin को guarded fetch path से allow करता है, बिना अलग config option जोड़ने या अन्य private origins पर trust किए.
Auth और merge precedence
Auth और merge precedence
- Custom auth ज़रूरतों के लिए
authHeader: true+headersका उपयोग करें. - Agent config root को
OPENCLAW_AGENT_DIRसे override करें. - Matching provider IDs के लिए merge precedence:
- Non-empty agent
models.jsonbaseUrlvalues जीतती हैं. - Non-empty agent
apiKeyvalues केवल तब जीतती हैं जब वह provider वर्तमान config/auth-profile context में SecretRef-managed नहीं है. - SecretRef-managed provider
apiKeyvalues resolved secrets persist करने के बजाय source markers (env refs के लिएENV_VAR_NAME, file/exec refs के लिएsecretref-managed) से refresh की जाती हैं. - SecretRef-managed provider header values source markers (env refs के लिए
secretref-env:ENV_VAR_NAME, file/exec refs के लिएsecretref-managed) से refresh की जाती हैं. - Empty या missing agent
apiKey/baseUrlconfig मेंmodels.providersपर fall back करते हैं. - Matching model
contextWindow/maxTokensexplicit config और implicit catalog values के बीच higher value का उपयोग करते हैं. - Matching model
contextTokensमौजूद होने पर explicit runtime cap को preserve करता है; native model metadata बदले बिना effective context limit करने के लिए इसका उपयोग करें. - Provider-plugin catalogs agent के plugin state के तहत generated plugin-owned catalog shards के रूप में stored होते हैं.
- जब आप चाहते हैं कि config
models.jsonऔर active plugin catalog shards को पूरी तरह rewrite करे, तोmodels.mode: "replace"का उपयोग करें. - Marker persistence source-authoritative है: markers active source config snapshot (pre-resolution) से लिखे जाते हैं, resolved runtime secret values से नहीं.
- Non-empty agent
Provider field details
Top-level catalog
Top-level catalog
models.mode: provider catalog behavior (mergeयाreplace).models.providers: provider id से keyed custom provider map.- Safe edits: additive updates के लिए
openclaw config set models.providers.<id> '<json>' --strict-json --mergeयाopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergeका उपयोग करें.config setdestructive replacements से इनकार करता है, जब तक आप--replacepass नहीं करते.
- Safe edits: additive updates के लिए
प्रदाता कनेक्शन और प्रमाणीकरण
प्रदाता कनेक्शन और प्रमाणीकरण
अनुरोध ट्रांसपोर्ट ओवरराइड
अनुरोध ट्रांसपोर्ट ओवरराइड
मॉडल कैटलॉग प्रविष्टियाँ
मॉडल कैटलॉग प्रविष्टियाँ
models.providers.*.models: स्पष्ट प्रदाता मॉडल कैटलॉग प्रविष्टियाँ।models.providers.*.models.*.input: मॉडल इनपुट मोडैलिटी। केवल-टेक्स्ट मॉडलों के लिए["text"]और नेटिव image/vision मॉडलों के लिए["text", "image"]का उपयोग करें। इमेज अटैचमेंट एजेंट टर्न में केवल तब इंजेक्ट किए जाते हैं जब चुना गया मॉडल image-capable के रूप में चिह्नित हो।models.providers.*.models.*.contextWindow: नेटिव मॉडल संदर्भ विंडो मेटाडेटा। यह उस मॉडल के लिए प्रदाता-स्तरcontextWindowको ओवरराइड करता है।models.providers.*.models.*.contextTokens: वैकल्पिक रनटाइम संदर्भ सीमा। यह प्रदाता-स्तरcontextTokensको ओवरराइड करता है; इसका उपयोग तब करें जब आप मॉडल की नेटिवcontextWindowसे छोटा प्रभावी संदर्भ बजट चाहते हों;openclaw models listदोनों मान अलग होने पर दिखाता है।models.providers.*.models.*.compat.supportsDeveloperRole: वैकल्पिक संगतता संकेत।api: "openai-completions"के लिए, गैर-खाली गैर-नेटिवbaseUrl(होस्टapi.openai.comनहीं) के साथ, OpenClaw रनटाइम पर इसेfalseकरने के लिए बाध्य करता है। खाली/छोड़ा गयाbaseUrlडिफ़ॉल्ट OpenAI व्यवहार रखता है।models.providers.*.models.*.compat.requiresStringContent: केवल-स्ट्रिंग OpenAI-संगत चैट एंडपॉइंट के लिए वैकल्पिक संगतता संकेत। जबtrueहो, OpenClaw अनुरोध भेजने से पहले शुद्ध टेक्स्टmessages[].contentऐरे को साधारण स्ट्रिंग में फ्लैट कर देता है।models.providers.*.models.*.compat.strictMessageKeys: सख्त OpenAI-संगत चैट एंडपॉइंट के लिए वैकल्पिक संगतता संकेत। जबtrueहो, OpenClaw अनुरोध भेजने से पहले आउटगोइंग Chat Completions संदेश ऑब्जेक्ट कोroleऔरcontentतक सीमित कर देता है।models.providers.*.models.*.compat.thinkingFormat: वैकल्पिक thinking payload संकेत। Together-शैलीreasoning.enabledके लिए"together", शीर्ष-स्तरीयenable_thinkingके लिए"qwen", या request-level chat-template kwargs का समर्थन करने वाले Qwen-family OpenAI-संगत सर्वरों, जैसे vLLM, परchat_template_kwargs.enable_thinkingके लिए"qwen-chat-template"का उपयोग करें। कॉन्फ़िगर किए गए vLLM Qwen मॉडल इन फ़ॉर्मैट के लिए बाइनरी/thinkविकल्प (off,on) उजागर करते हैं।models.providers.*.models.*.compat.requiresReasoningContentOnAssistantMessages: DeepSeek-शैली Chat Completions बैकएंड के लिए वैकल्पिक संगतता संकेत, जिन्हें replay पर पिछले assistant संदेशों मेंreasoning_contentरखना आवश्यक होता है। जबtrueहो, OpenClaw आउटगोइंग assistant संदेशों पर उस फ़ील्ड को सुरक्षित रखता है। इसका उपयोग तब करें जब ऐसा कस्टम DeepSeek-संगत प्रॉक्सी जोड़ रहे हों जो reasoning हटाए जाने के बाद अनुरोधों को अस्वीकार करता हो। डिफ़ॉल्टfalse।
Amazon Bedrock डिस्कवरी
Amazon Bedrock डिस्कवरी
plugins.entries.amazon-bedrock.config.discovery: Bedrock ऑटो-डिस्कवरी सेटिंग्स रूट।plugins.entries.amazon-bedrock.config.discovery.enabled: implicit discovery चालू/बंद करें।plugins.entries.amazon-bedrock.config.discovery.region: discovery के लिए AWS region।plugins.entries.amazon-bedrock.config.discovery.providerFilter: लक्षित discovery के लिए वैकल्पिक provider-id फ़िल्टर।plugins.entries.amazon-bedrock.config.discovery.refreshInterval: discovery refresh के लिए polling interval।plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: खोजे गए मॉडलों के लिए fallback context window।plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: खोजे गए मॉडलों के लिए fallback max output tokens।
--custom-image-input या text-only metadata बाध्य करने के लिए --custom-text-input पास करें।
प्रदाता उदाहरण
Cerebras (GLM 4.7 / GPT OSS)
Cerebras (GLM 4.7 / GPT OSS)
आधिकारिक बाहरी Cerebras के लिए
cerebras provider plugin इसे openclaw onboard --auth-choice cerebras-api-key के माध्यम से कॉन्फ़िगर कर सकता है। स्पष्ट provider config का उपयोग केवल डिफ़ॉल्ट ओवरराइड करते समय करें।cerebras/zai-glm-4.7; Z.AI direct के लिए zai/glm-4.7 का उपयोग करें।Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key।स्थानीय मॉडल (LM Studio)
स्थानीय मॉडल (LM Studio)
स्थानीय मॉडल देखें। TL;DR: गंभीर हार्डवेयर पर LM Studio Responses API के माध्यम से बड़ा स्थानीय मॉडल चलाएँ; fallback के लिए hosted models को merged रखें।
MiniMax M3 (direct)
MiniMax M3 (direct)
MINIMAX_API_KEY सेट करें। शॉर्टकट: openclaw onboard --auth-choice minimax-global-api या openclaw onboard --auth-choice minimax-cn-api। मॉडल कैटलॉग डिफ़ॉल्ट रूप से M3 का उपयोग करता है और M2.7 variants भी शामिल करता है। Anthropic-संगत streaming path पर, OpenClaw डिफ़ॉल्ट रूप से MiniMax M2.x thinking को बंद करता है, जब तक कि आप स्वयं स्पष्ट रूप से thinking सेट न करें; MiniMax-M3 (और M3.x) डिफ़ॉल्ट रूप से प्रदाता के omitted/adaptive thinking path पर रहता है। /fast on या params.fastMode: true MiniMax-M2.7 को MiniMax-M2.7-highspeed में फिर से लिखता है।Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" या openclaw onboard --auth-choice moonshot-api-key-cn।Native Moonshot endpoints साझा openai-completions transport पर streaming usage compatibility का विज्ञापन करते हैं, और OpenClaw इसे केवल built-in provider id के बजाय endpoint capabilities के आधार पर तय करता है।OpenCode
OpenCode
OPENCODE_API_KEY (या OPENCODE_ZEN_API_KEY) सेट करें। Zen catalog के लिए opencode/... refs या Go catalog के लिए opencode-go/... refs उपयोग करें। शॉर्टकट: openclaw onboard --auth-choice opencode-zen या openclaw onboard --auth-choice opencode-go।Synthetic (Anthropic-compatible)
Synthetic (Anthropic-compatible)
/v1 नहीं होना चाहिए (Anthropic क्लाइंट इसे जोड़ता है)। शॉर्टकट: openclaw onboard --auth-choice synthetic-api-key.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY सेट करें। मॉडल रेफ canonical zai/* प्रदाता ID का उपयोग करते हैं। शॉर्टकट: openclaw onboard --auth-choice zai-api-key.- सामान्य endpoint:
https://api.z.ai/api/paas/v4 - कोडिंग endpoint (डिफ़ॉल्ट):
https://api.z.ai/api/coding/paas/v4 - सामान्य endpoint के लिए, आधार URL ओवरराइड के साथ एक कस्टम प्रदाता परिभाषित करें।
संबंधित
- कॉन्फ़िगरेशन — agents
- कॉन्फ़िगरेशन — channels
- कॉन्फ़िगरेशन संदर्भ — अन्य शीर्ष-स्तरीय कुंजियाँ
- टूल और plugins