tools.* e configurazione personalizzata di provider / base-URL. Per agenti,
canali e altre chiavi di configurazione di primo livello, vedi
Configuration reference.
Strumenti
Profili degli strumenti
tools.profile imposta una allowlist di base prima di tools.allow/tools.deny:
L’onboarding locale imposta per default le nuove configurazioni locali su tools.profile: "coding" quando non impostato (i profili espliciti esistenti vengono preservati).
| Profilo | Include |
|---|---|
minimal | Solo session_status |
coding | group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full | Nessuna restrizione (uguale a non impostato) |
Gruppi di strumenti
| Gruppo | Strumenti |
|---|---|
group:runtime | exec, process, code_execution (bash è accettato come alias di exec) |
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 | cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list |
group:media | image, image_generate, video_generate, tts |
group:openclaw | Tutti gli strumenti integrati (esclude i Plugin provider) |
tools.allow / tools.deny
Criterio globale di allow/deny degli strumenti (deny ha la precedenza). Case-insensitive, supporta wildcard *. Si applica anche quando la sandbox Docker è disattivata.
tools.byProvider
Limita ulteriormente gli strumenti per provider o modelli specifici. Ordine: profilo base → profilo provider → allow/deny.
tools.elevated
Controlla l’accesso exec elevato fuori dalla sandbox:
- L’override per agente (
agents.list[].tools.elevated) può solo restringere ulteriormente. /elevated on|off|ask|fullmemorizza lo stato per sessione; le direttive inline si applicano a un singolo messaggio.execelevato aggira la sandbox e usa il percorso di escape configurato (gatewayper impostazione predefinita, oppurenodequando la destinazione exec ènode).
tools.exec
tools.loopDetection
I controlli di sicurezza del loop degli strumenti sono disabilitati per impostazione predefinita. Imposta enabled: true per attivare il rilevamento.
Le impostazioni possono essere definite globalmente in tools.loopDetection e sovrascritte per agente in agents.list[].tools.loopDetection.
historySize: cronologia massima delle chiamate agli strumenti mantenuta per l’analisi del loop.warningThreshold: soglia del pattern ripetuto senza avanzamento per gli avvisi.criticalThreshold: soglia ripetuta più alta per bloccare i loop critici.globalCircuitBreakerThreshold: soglia di arresto rigido per qualsiasi esecuzione senza avanzamento.detectors.genericRepeat: avvisa sulle chiamate ripetute stesso-strumento/stessi-argomenti.detectors.knownPollNoProgress: avvisa/blocca sugli strumenti di polling noti (process.poll,command_status, ecc.).detectors.pingPong: avvisa/blocca sui pattern alternati a coppie senza avanzamento.- Se
warningThreshold >= criticalThresholdocriticalThreshold >= globalCircuitBreakerThreshold, la validazione fallisce.
tools.web
tools.media
Configura la comprensione dei contenuti multimediali in ingresso (immagine/audio/video):
Campi delle voci del modello media
Campi delle voci del modello media
Voce provider (
type: "provider" o omesso):provider: id del provider API (openai,anthropic,google/gemini,groq, ecc.)model: override dell’id modelloprofile/preferredProfile: selezione del profiloauth-profiles.json
type: "cli"):command: eseguibile da lanciareargs: argomenti con template (supporta{{MediaPath}},{{Prompt}},{{MaxChars}}, ecc.)
capabilities: elenco facoltativo (image,audio,video). Valori predefiniti:openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: override per voce.- In caso di errore si passa alla voce successiva.
auth-profiles.json → variabili env → models.providers.*.apiKey.Campi di completamento asincrono:asyncCompletion.directSend: quandotrue, le attività asincrone completatemusic_generateevideo_generatetentano prima la consegna diretta al canale. Predefinito:false(percorso legacy requester-session wake/model-delivery).
tools.agentToAgent
tools.sessions
Controlla quali sessioni possono essere indirizzate dagli strumenti di sessione (sessions_list, sessions_history, sessions_send).
Predefinito: tree (sessione corrente + sessioni generate da essa, come i sotto-agenti).
self: solo la chiave della sessione corrente.tree: sessione corrente + sessioni generate dalla sessione corrente (sotto-agenti).agent: qualsiasi sessione appartenente all’id agente corrente (può includere altri utenti se esegui sessioni per mittente sotto lo stesso id agente).all: qualsiasi sessione. Il targeting cross-agent richiede comunquetools.agentToAgent.- Limitazione sandbox: quando la sessione corrente è sandboxed e
agents.defaults.sandbox.sessionToolsVisibility="spawned", la visibilità viene forzata atreeanche setools.sessions.visibility="all".
tools.sessions_spawn
Controlla il supporto per allegati inline di sessions_spawn.
- Gli allegati sono supportati solo per
runtime: "subagent". Il runtime ACP li rifiuta. - I file vengono materializzati nello spazio di lavoro figlio in
.openclaw/attachments/<uuid>/con un.manifest.json. - Il contenuto degli allegati viene automaticamente redatto dalla persistenza della trascrizione.
- Gli input base64 vengono convalidati con controlli rigorosi su alfabeto/padding e una guardia sulla dimensione prima della decodifica.
- I permessi dei file sono
0700per le directory e0600per i file. - La pulizia segue il criterio
cleanup:deleterimuove sempre gli allegati;keepli conserva solo quandoretainOnSessionKeep: true.
tools.experimental
Flag sperimentali degli strumenti integrati. Disattivati per impostazione predefinita, a meno che non si applichi una regola di auto-abilitazione strict-agentic GPT-5.
planTool: abilita lo strumento strutturatoupdate_planper il tracciamento del lavoro non banale a più fasi.- Predefinito:
falsea meno cheagents.defaults.embeddedPi.executionContract(o un override per agente) sia impostato su"strict-agentic"per un’esecuzione OpenAI o OpenAI Codex della famiglia GPT-5. Impostatrueper forzare l’attivazione dello strumento fuori da tale ambito, oppurefalseper mantenerlo disattivato anche per esecuzioni strict-agentic GPT-5. - Quando abilitato, il prompt di sistema aggiunge anche indicazioni d’uso in modo che il modello lo usi solo per lavoro sostanziale e mantenga al massimo una fase
in_progress.
agents.defaults.subagents
model: modello predefinito per i sotto-agenti generati. Se omesso, i sotto-agenti ereditano il modello del chiamante.allowAgents: allowlist predefinita degli id agente di destinazione persessions_spawnquando l’agente richiedente non imposta il propriosubagents.allowAgents(["*"]= qualsiasi; predefinito: solo lo stesso agente).runTimeoutSeconds: timeout predefinito (secondi) persessions_spawnquando la chiamata allo strumento ometterunTimeoutSeconds.0significa nessun timeout.- Criterio degli strumenti per sotto-agente:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Provider personalizzati e base URL
OpenClaw usa il catalogo modelli integrato. Aggiungi provider personalizzati tramitemodels.providers nella configurazione o in ~/.openclaw/agents/<agentId>/agent/models.json.
- Usa
authHeader: true+headersper esigenze di autenticazione personalizzate. - Esegui l’override della radice della configurazione dell’agente con
OPENCLAW_AGENT_DIR(oppurePI_CODING_AGENT_DIR, alias legacy della variabile d’ambiente). - Precedenza di merge per ID provider corrispondenti:
- I valori
baseUrlnon vuoti inmodels.jsondell’agente hanno la precedenza. - I valori
apiKeynon vuoti dell’agente hanno la precedenza solo quando quel provider non è gestito da SecretRef nel contesto attuale di config/profilo auth. - I valori
apiKeydei provider gestiti da SecretRef vengono aggiornati dai marker di origine (ENV_VAR_NAMEper ref env,secretref-managedper ref file/exec) invece di persistere i segreti risolti. - I valori header dei provider gestiti da SecretRef vengono aggiornati dai marker di origine (
secretref-env:ENV_VAR_NAMEper ref env,secretref-managedper ref file/exec). apiKey/baseUrldell’agente vuoti o mancanti usano come fallbackmodels.providersnella configurazione.- I valori
contextWindow/maxTokensdei modelli corrispondenti usano il valore più alto tra configurazione esplicita e valori impliciti del catalogo. contextTokensdel modello corrispondente preserva un limite runtime esplicito quando presente; usalo per limitare il contesto effettivo senza cambiare i metadati nativi del modello.- Usa
models.mode: "replace"quando vuoi che la configurazione riscriva completamentemodels.json. - La persistenza dei marker è autorevole rispetto alla fonte: i marker vengono scritti dall’istantanea della configurazione sorgente attiva (pre-risoluzione), non dai valori dei segreti runtime risolti.
- I valori
Dettagli dei campi del provider
models.mode: comportamento del catalogo provider (mergeoreplace).models.providers: mappa dei provider personalizzati indicizzata per id provider.- Modifiche sicure: usa
openclaw config set models.providers.<id> '<json>' --strict-json --mergeoppureopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergeper aggiornamenti incrementali.config setrifiuta sostituzioni distruttive a meno che tu non passi--replace.
- Modifiche sicure: usa
models.providers.*.api: adattatore di richiesta (openai-completions,openai-responses,anthropic-messages,google-generative-ai, ecc).models.providers.*.apiKey: credenziale del provider (preferisci SecretRef/sostituzione env).models.providers.*.auth: strategia auth (api-key,token,oauth,aws-sdk).models.providers.*.injectNumCtxForOpenAICompat: per Ollama +openai-completions, inserisceoptions.num_ctxnelle richieste (predefinito:true).models.providers.*.authHeader: forza il trasporto della credenziale nell’headerAuthorizationquando richiesto.models.providers.*.baseUrl: URL base dell’API upstream.models.providers.*.headers: header statici aggiuntivi per instradamento proxy/tenant.models.providers.*.request: override di trasporto per le richieste HTTP del provider di modelli.request.headers: header aggiuntivi (uniti ai valori predefiniti del provider). I valori accettano SecretRef.request.auth: override della strategia auth. Modalità:"provider-default"(usa l’auth integrata del provider),"authorization-bearer"(contoken),"header"(conheaderName,value,prefixfacoltativo).request.proxy: override del proxy HTTP. Modalità:"env-proxy"(usa le variabili envHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(conurl). Entrambe le modalità accettano un sotto-oggettotlsfacoltativo.request.tls: override TLS per connessioni dirette. Campi:ca,cert,key,passphrase(tutti accettano SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: quandotrue, consente HTTPS versobaseUrlquando il DNS risolve verso intervalli privati, CGNAT o simili, tramite la guardia fetch HTTP del provider (opt-in dell’operatore per endpoint self-hosted attendibili compatibili con OpenAI). WebSocket usa la stessarequestper header/TLS ma non quella guardia SSRF della fetch. Predefinitofalse.
models.providers.*.models: voci esplicite del catalogo modelli del provider.models.providers.*.models.*.contextWindow: metadati della finestra di contesto nativa del modello.models.providers.*.models.*.contextTokens: limite facoltativo del contesto runtime. Usalo quando vuoi un budget di contesto effettivo più piccolo dellacontextWindownativa del modello.models.providers.*.models.*.compat.supportsDeveloperRole: suggerimento facoltativo di compatibilità. Perapi: "openai-completions"conbaseUrlnon nativo non vuoto (host diverso daapi.openai.com), OpenClaw lo forza afalsea runtime.baseUrlvuoto/omesso mantiene il comportamento OpenAI predefinito.models.providers.*.models.*.compat.requiresStringContent: suggerimento facoltativo di compatibilità per endpoint chat compatibili con OpenAI che accettano solo stringhe. Quandotrue, OpenClaw appiattisce gli arraymessages[].contentdi puro testo in stringhe semplici prima di inviare la richiesta.plugins.entries.amazon-bedrock.config.discovery: radice delle impostazioni di auto-discovery di Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: attiva/disattiva il discovery implicito.plugins.entries.amazon-bedrock.config.discovery.region: regione AWS per il discovery.plugins.entries.amazon-bedrock.config.discovery.providerFilter: filtro facoltativo per id provider per discovery mirato.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: intervallo di polling per l’aggiornamento del discovery.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: finestra di contesto di fallback per i modelli rilevati.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: token massimi di output di fallback per i modelli rilevati.
Esempi di provider
Cerebras (GLM 4.6 / 4.7)
Cerebras (GLM 4.6 / 4.7)
cerebras/zai-glm-4.7 per Cerebras; zai/glm-4.7 per Z.AI diretto.OpenCode
OpenCode
OPENCODE_API_KEY (oppure OPENCODE_ZEN_API_KEY). Usa riferimenti opencode/... per il catalogo Zen oppure riferimenti opencode-go/... per il catalogo Go. Scorciatoia: openclaw onboard --auth-choice opencode-zen oppure openclaw onboard --auth-choice opencode-go.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY. z.ai/* e z-ai/* sono alias accettati. Scorciatoia: openclaw onboard --auth-choice zai-api-key.- Endpoint generale:
https://api.z.ai/api/paas/v4 - Endpoint coding (predefinito):
https://api.z.ai/api/coding/paas/v4 - Per l’endpoint generale, definisci un provider personalizzato con l’override del base URL.
Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" oppure openclaw onboard --auth-choice moonshot-api-key-cn.Gli endpoint Moonshot nativi dichiarano la compatibilità dell’utilizzo streaming sul trasporto condiviso
openai-completions, e OpenClaw la determina in base alle capacità dell’endpoint
piuttosto che al solo id provider integrato.Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key.Synthetic (compatibile con Anthropic)
Synthetic (compatibile con Anthropic)
/v1 (il client Anthropic lo aggiunge). Scorciatoia: openclaw onboard --auth-choice synthetic-api-key.MiniMax M2.7 (diretto)
MiniMax M2.7 (diretto)
MINIMAX_API_KEY. Scorciatoie:
openclaw onboard --auth-choice minimax-global-api oppure
openclaw onboard --auth-choice minimax-cn-api.
Il catalogo modelli usa come predefinito solo M2.7.
Nel percorso streaming compatibile con Anthropic, OpenClaw disattiva il thinking di MiniMax
per impostazione predefinita a meno che tu non imposti esplicitamente thinking. /fast on oppure
params.fastMode: true riscrive MiniMax-M2.7 in
MiniMax-M2.7-highspeed.Modelli locali (LM Studio)
Modelli locali (LM Studio)
Vedi Local Models. In breve: esegui un grande modello locale tramite LM Studio Responses API su hardware serio; mantieni i modelli ospitati uniti per il fallback.
Correlati
- Configuration reference — altre chiavi di primo livello
- Configuration — agents
- Configuration — channels
- Strumenti e Plugin