Gateway
कॉन्फ़िगरेशन — टूल और कस्टम प्रदाता
tools.* कॉन्फ़िगरेशन keys और कस्टम provider / base-URL सेटअप। agents, channels, और अन्य शीर्ष-स्तरीय कॉन्फ़िगरेशन keys के लिए, कॉन्फ़िगरेशन संदर्भ देखें।
टूल
टूल प्रोफ़ाइल
tools.profile, tools.allow/tools.deny से पहले एक आधार allowlist सेट करता है:
| प्रोफ़ाइल | शामिल हैं |
|---|---|
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 चाहते हों
Server globs provider-safe MCP server prefix का उपयोग करते हैं, जरूरी नहीं कि raw mcp.servers key का। Non-[A-Za-z0-9_-] characters - बन जाते हैं, जिन names की शुरुआत letter से नहीं होती उन्हें mcp- prefix मिलता है, और लंबे या duplicate prefixes truncate या suffix किए जा सकते हैं; उदाहरण के लिए, mcp.servers["Outlook Graph"] outlook-graph__* जैसा glob उपयोग करता है।
{ agents: { defaults: { sandbox: { mode: "all" } } }, mcp: { servers: { outlook: { command: "node", args: ["./outlook-mcp.js"] }, }, }, tools: { sandbox: { tools: { alsoAllow: ["web_search", "web_fetch", "memory_search", "memory_get", "bundle-mcp"], }, }, },}उस sandbox-layer entry के बिना, MCP server अभी भी सफलतापूर्वक load हो सकता है जबकि उसके टूल provider request से पहले filtered हो जाते हैं। 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 के माध्यम से उपलब्ध होते हैं।
{ tools: { codeMode: { enabled: true, }, },}shorthand भी स्वीकार किया जाता है:
{ tools: { codeMode: true },}MCP declarations को code mode में read-only virtual API file surface के माध्यम से उजागर किया जाता है। Guest code, 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 होने पर भी लागू होती है।
{ tools: { deny: ["browser", "canvas"] },}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: { deny: ["write", "edit", "apply_patch"] },}tools.byProvider
विशिष्ट providers या models के लिए टूल को और restrict करता है। क्रम: base profile → provider profile → allow/deny।
{ tools: { profile: "coding", byProvider: { "google-antigravity": { profile: "minimal" }, "openai/gpt-5.4": { allow: ["group:fs", "sessions_list"] }, }, },}tools.toolsBySender
किसी विशिष्ट requester identity के लिए टूल restrict करता है। यह channel access control के ऊपर defense-in-depth है; sender values channel adapter से आने चाहिए, message text से नहीं।
{ tools: { toolsBySender: { "channel:discord:1234567890123": { alsoAllow: ["group:fs"] }, "id:guest-user-id": { deny: ["group:runtime", "group:fs"] }, "*": { deny: ["exec", "process", "write", "edit", "apply_patch"] }, }, },}Keys explicit prefixes उपयोग करती हैं: 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 नियंत्रित करता है:
{ tools: { elevated: { enabled: true, allowFrom: { whatsapp: ["+15555550123"], discord: ["1234567890123", "987654321098765432"], }, }, },}- 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: { exec: { backgroundMs: 10000, timeoutSec: 1800, cleanupMs: 1800000, notifyOnExit: true, notifyOnExitEmptySuccess: false, commandHighlighting: false, applyPatch: { enabled: false, allowModels: ["gpt-5.5"], }, }, },}tools.loopDetection
Tool-loop safety checks डिफ़ॉल्ट रूप से disabled हैं। detection activate करने के लिए enabled: true set करें। Settings को globally tools.loopDetection में define किया जा सकता है और per-agent agents.list[].tools.loopDetection पर override किया जा सकता है।
{ tools: { loopDetection: { enabled: true, historySize: 30, warningThreshold: 10, criticalThreshold: 20, globalCircuitBreakerThreshold: 30, detectors: { genericRepeat: true, knownPollNoProgress: true, pingPong: true, }, }, },}historySizenumberloop analysis के लिए retained अधिकतम tool-call history।
warningThresholdnumberwarnings के लिए repeating no-progress pattern threshold।
criticalThresholdnumbercritical loops block करने के लिए उच्चतर repeating threshold।
globalCircuitBreakerThresholdnumberकिसी भी no-progress run के लिए hard stop threshold।
detectors.genericRepeatbooleanrepeated same-tool/same-args calls पर warn करें।
detectors.knownPollNoProgressbooleanज्ञात poll tools (process.poll, command_status, आदि) पर warn/block करें।
detectors.pingPongbooleanalternating no-progress pair patterns पर warn/block करें।
tools.web
{ tools: { web: { search: { enabled: true, apiKey: "brave_api_key", // or BRAVE_API_KEY env maxResults: 5, timeoutSeconds: 30, cacheTtlMinutes: 15, }, fetch: { enabled: true, provider: "firecrawl", // optional; omit for auto-detect maxChars: 50000, maxCharsCap: 50000, maxResponseBytes: 2000000, timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, readability: true, userAgent: "custom-ua", }, }, },}tools.media
inbound media understanding (image/audio/video) configure करता है:
{ tools: { media: { concurrency: 2, asyncCompletion: { directSend: false, // अप्रचलित: completions एजेंट-मध्यस्थित रहते हैं }, audio: { enabled: true, maxBytes: 20971520, scope: { default: "deny", rules: [{ action: "allow", match: { chatType: "direct" } }], }, models: [ { provider: "openai", model: "gpt-4o-mini-transcribe" }, { type: "cli", command: "whisper", args: ["--model", "base", "{{MediaPath}}"] }, ], }, image: { enabled: true, timeoutSeconds: 180, models: [{ provider: "ollama", model: "gemma4:26b", timeoutSeconds: 300 }], }, video: { enabled: true, maxBytes: 52428800, models: [{ provider: "google", model: "gemini-3-flash-preview" }], }, }, },}मीडिया मॉडल एंट्री फ़ील्ड
प्रदाता एंट्री (type: "provider" या छोड़ा गया):
provider: API प्रदाता id (openai,anthropic,google/gemini,groq, आदि)model: मॉडल id ओवरराइडprofile/preferredProfile:auth-profiles.jsonप्रोफ़ाइल चयन
CLI एंट्री (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 मानक क्रम का पालन करता है: auth-profiles.json → env vars → models.providers.*.apiKey.
Async completion फ़ील्ड:
asyncCompletion.directSend: अप्रचलित compatibility flag. पूर्ण async मीडिया कार्य requester-session मध्यस्थित रहते हैं ताकि एजेंट परिणाम प्राप्त करे, तय करे कि उपयोगकर्ता को कैसे बताना है, और स्रोत delivery की आवश्यकता होने पर message tool का उपयोग करे.
tools.agentToAgent
{ tools: { agentToAgent: { enabled: false, allow: ["home", "work"], }, },}tools.sessions
नियंत्रित करता है कि session tools (sessions_list, sessions_history, sessions_send) द्वारा किन sessions को target किया जा सकता है.
डिफ़ॉल्ट: tree (वर्तमान session + इससे spawned sessions, जैसे subagents).
{ tools: { sessions: { // "self" | "tree" | "agent" | "all" visibility: "tree", }, },}दृश्यता 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 समर्थन नियंत्रित करता है.
{ tools: { sessions_spawn: { attachments: { enabled: false, // opt-in: inline file attachments की अनुमति देने के लिए true सेट करें maxTotalBytes: 5242880, // सभी files में कुल 5 MB maxFiles: 50, maxFileBytes: 1048576, // प्रति file 1 MB retainOnSessionKeep: false, // cleanup="keep" होने पर attachments रखें }, }, },}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 लागू न हो.
{ tools: { experimental: { planTool: true, // experimental update_plan सक्षम करें }, },}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
{ agents: { defaults: { subagents: { allowAgents: ["research"], model: "minimax/MiniMax-M2.7", maxConcurrent: 8, runTimeoutSeconds: 900, announceTimeoutMs: 120000, archiveAfterMinutes: 60, }, }, },}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 किए.
{ models: { mode: "merge", // merge (default) | replace providers: { "custom-proxy": { baseUrl: "http://localhost:4000/v1", apiKey: "LITELLM_KEY", api: "openai-completions", // openai-completions | openai-responses | anthropic-messages | google-generative-ai models: [ { id: "llama-3.1-8b", name: "Llama 3.1 8B", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128000, contextTokens: 96000, maxTokens: 32000, }, ], }, }, },}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
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.*.api: अनुरोध अडैप्टर (openai-completions,openai-responses,anthropic-messages,google-generative-ai, आदि)। MLX, vLLM, SGLang, और अधिकांश OpenAI-संगत स्थानीय सर्वर जैसे स्वयं-होस्ट किए गए/v1/chat/completionsबैकएंड के लिए,openai-completionsका उपयोग करें।baseUrlवाला लेकिनapiके बिना कस्टम प्रदाता डिफ़ॉल्ट रूप सेopenai-completionsका उपयोग करता है;openai-responsesकेवल तब सेट करें जब बैकएंड/v1/responsesका समर्थन करता हो।models.providers.*.apiKey: प्रदाता क्रेडेंशियल (SecretRef/env प्रतिस्थापन को प्राथमिकता दें)।models.providers.*.auth: प्रमाणीकरण रणनीति (api-key,token,oauth,aws-sdk)।models.providers.*.contextWindow: इस प्रदाता के अंतर्गत मॉडलों के लिए डिफ़ॉल्ट नेटिव संदर्भ विंडो, जब मॉडल प्रविष्टिcontextWindowसेट नहीं करती।models.providers.*.contextTokens: इस प्रदाता के अंतर्गत मॉडलों के लिए डिफ़ॉल्ट प्रभावी रनटाइम संदर्भ सीमा, जब मॉडल प्रविष्टिcontextTokensसेट नहीं करती।models.providers.*.maxTokens: इस प्रदाता के अंतर्गत मॉडलों के लिए डिफ़ॉल्ट आउटपुट-टोकन सीमा, जब मॉडल प्रविष्टिmaxTokensसेट नहीं करती।models.providers.*.timeoutSeconds: वैकल्पिक प्रति-प्रदाता मॉडल HTTP अनुरोध टाइमआउट सेकंड में, जिसमें कनेक्ट, हेडर, बॉडी, और कुल अनुरोध निरस्त प्रबंधन शामिल है।models.providers.*.injectNumCtxForOpenAICompat: Ollama +openai-completionsके लिए, अनुरोधों मेंoptions.num_ctxइंजेक्ट करें (डिफ़ॉल्ट:true)।models.providers.*.authHeader: आवश्यकता होने परAuthorizationहेडर में क्रेडेंशियल ट्रांसपोर्ट को बाध्य करें।models.providers.*.baseUrl: अपस्ट्रीम API बेस URL।models.providers.*.headers: प्रॉक्सी/टेनेंट रूटिंग के लिए अतिरिक्त स्थिर हेडर।
अनुरोध ट्रांसपोर्ट ओवरराइड
models.providers.*.request: मॉडल-प्रदाता HTTP अनुरोधों के लिए ट्रांसपोर्ट ओवरराइड।
request.headers: अतिरिक्त हेडर (प्रदाता डिफ़ॉल्ट के साथ मर्ज किए जाते हैं)। मान SecretRef स्वीकार करते हैं।request.auth: प्रमाणीकरण रणनीति ओवरराइड। मोड:"provider-default"(प्रदाता का बिल्ट-इन प्रमाणीकरण उपयोग करें),"authorization-bearer"(tokenके साथ),"header"(headerName,value, वैकल्पिकprefixके साथ)।request.proxy: HTTP प्रॉक्सी ओवरराइड। मोड:"env-proxy"(HTTP_PROXY/HTTPS_PROXYenv vars का उपयोग करें),"explicit-proxy"(urlके साथ)। दोनों मोड वैकल्पिकtlsउप-ऑब्जेक्ट स्वीकार करते हैं।request.tls: प्रत्यक्ष कनेक्शन के लिए TLS ओवरराइड। फ़ील्ड:ca,cert,key,passphrase(सभी SecretRef स्वीकार करते हैं),serverName,insecureSkipVerify।request.allowPrivateNetwork: जबtrueहो, तो मॉडल-प्रदाता HTTP अनुरोधों को प्रदाता HTTP fetch गार्ड के माध्यम से निजी, CGNAT, या समान रेंज तक जाने दें। कस्टम/स्थानीय प्रदाता बेस URL पहले से ही ठीक-ठीक कॉन्फ़िगर किए गए ओरिजिन पर भरोसा करते हैं, सिवाय metadata/link-local ओरिजिन के, जो स्पष्ट opt-in के बिना अवरुद्ध रहते हैं। ठीक-ठीक ओरिजिन भरोसे से बाहर निकलने के लिए इसेfalseपर सेट करें। WebSocket हेडर/TLS के लिए वहीrequestउपयोग करता है, लेकिन उस fetch SSRF गेट का उपयोग नहीं करता। डिफ़ॉल्टfalse।
मॉडल कैटलॉग प्रविष्टियाँ
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 डिस्कवरी
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-provider onboarding सामान्य vision model IDs जैसे GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V, और GLM-4V के लिए image input का अनुमान लगाता है, और ज्ञात text-only families के लिए अतिरिक्त प्रश्न छोड़ देता है। अज्ञात model IDs अभी भी image support के लिए पूछते हैं। Non-interactive onboarding वही inference उपयोग करता है; image-capable metadata बाध्य करने के लिए --custom-image-input या text-only metadata बाध्य करने के लिए --custom-text-input पास करें।
प्रदाता उदाहरण
Cerebras (GLM 4.7 / GPT OSS)
आधिकारिक बाहरी cerebras provider plugin इसे openclaw onboard --auth-choice cerebras-api-key के माध्यम से कॉन्फ़िगर कर सकता है। स्पष्ट provider config का उपयोग केवल डिफ़ॉल्ट ओवरराइड करते समय करें।
{ env: { CEREBRAS_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "cerebras/zai-glm-4.7", fallbacks: ["cerebras/gpt-oss-120b"], }, models: { "cerebras/zai-glm-4.7": { alias: "GLM 4.7 (Cerebras)" }, "cerebras/gpt-oss-120b": { alias: "GPT OSS 120B (Cerebras)" }, }, }, }, models: { mode: "merge", providers: { cerebras: { baseUrl: "https://api.cerebras.ai/v1", apiKey: "${CEREBRAS_API_KEY}", api: "openai-completions", models: [ { id: "zai-glm-4.7", name: "GLM 4.7 (Cerebras)" }, { id: "gpt-oss-120b", name: "GPT OSS 120B (Cerebras)" }, ], }, }, },}Cerebras के लिए cerebras/zai-glm-4.7; Z.AI direct के लिए zai/glm-4.7 का उपयोग करें।
Kimi Coding
{ env: { KIMI_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "kimi/kimi-for-coding" }, models: { "kimi/kimi-for-coding": { alias: "Kimi Code" } }, }, },}Anthropic-संगत, बिल्ट-इन प्रदाता। शॉर्टकट: openclaw onboard --auth-choice kimi-code-api-key।
स्थानीय मॉडल (LM Studio)
स्थानीय मॉडल देखें। TL;DR: गंभीर हार्डवेयर पर LM Studio Responses API के माध्यम से बड़ा स्थानीय मॉडल चलाएँ; fallback के लिए hosted models को merged रखें।
MiniMax M3 (direct)
{ agents: { defaults: { model: { primary: "minimax/MiniMax-M3" }, models: { "minimax/MiniMax-M3": { alias: "Minimax" }, }, }, }, models: { mode: "merge", providers: { minimax: { baseUrl: "https://api.minimax.io/anthropic", apiKey: "${MINIMAX_API_KEY}", api: "anthropic-messages", models: [ { id: "MiniMax-M3", name: "MiniMax M3", reasoning: true, input: ["text", "image"], cost: { input: 0.6, output: 2.4, cacheRead: 0.12, cacheWrite: 0 }, contextWindow: 1000000, maxTokens: 131072, }, ], }, }, },}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)
{ env: { MOONSHOT_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "moonshot/kimi-k2.6" }, models: { "moonshot/kimi-k2.6": { alias: "Kimi K2.6" } }, }, }, models: { mode: "merge", providers: { moonshot: { baseUrl: "https://api.moonshot.ai/v1", apiKey: "${MOONSHOT_API_KEY}", api: "openai-completions", models: [ { id: "kimi-k2.6", name: "Kimi K2.6", reasoning: false, input: ["text", "image"], cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 }, contextWindow: 262144, maxTokens: 262144, }, ], }, }, },}China endpoint के लिए: 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
{ agents: { defaults: { model: { primary: "opencode/claude-opus-4-6" }, models: { "opencode/claude-opus-4-6": { alias: "Opus" } }, }, },}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)
{ env: { SYNTHETIC_API_KEY: "sk-..." }, agents: { defaults: { model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" }, models: { "synthetic/hf:MiniMaxAI/MiniMax-M2.5": { alias: "MiniMax M2.5" } }, }, }, models: { mode: "merge", providers: { synthetic: { baseUrl: "https://api.synthetic.new/anthropic", apiKey: "${SYNTHETIC_API_KEY}", api: "anthropic-messages", models: [ { id: "hf:MiniMaxAI/MiniMax-M2.5", name: "MiniMax M2.5", reasoning: true, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 192000, maxTokens: 65536, }, ], }, }, },}आधार URL में /v1 नहीं होना चाहिए (Anthropic क्लाइंट इसे जोड़ता है)। शॉर्टकट: openclaw onboard --auth-choice synthetic-api-key.
Z.AI (GLM-4.7)
{ agents: { defaults: { model: { primary: "zai/glm-4.7" }, models: { "zai/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