tools.* e configuração personalizada de provider / base URL. Para agentes,
canais e outras chaves de configuração de nível superior, consulte
Referência de configuração.
Ferramentas
Perfis de ferramentas
tools.profile define uma lista de permissão base antes de tools.allow/tools.deny:
O onboarding local define novas configurações locais com tools.profile: "coding" por padrão quando não definido (perfis explícitos existentes são preservados).
| Perfil | Inclui |
|---|---|
minimal | somente 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 | Sem restrição (igual a não definido) |
Grupos de ferramentas
| Grupo | Ferramentas |
|---|---|
group:runtime | exec, process, code_execution (bash é aceito como alias de 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 | Todas as ferramentas integradas (exclui Plugins de provider) |
tools.allow / tools.deny
Política global de permitir/negar ferramentas (negação vence). Não diferencia maiúsculas de minúsculas e oferece suporte a curingas *. Aplicada mesmo quando o sandbox Docker está desligado.
tools.byProvider
Restringe ainda mais as ferramentas para providers ou modelos específicos. Ordem: perfil base → perfil do provider → allow/deny.
tools.elevated
Controla acesso elevado de exec fora do sandbox:
- A substituição por agente (
agents.list[].tools.elevated) só pode restringir ainda mais. /elevated on|off|ask|fullarmazena estado por sessão; diretivas inline se aplicam a uma única mensagem.execelevado ignora o sandbox e usa o caminho de escape configurado (gatewaypor padrão, ounodequando o destino de exec énode).
tools.exec
tools.loopDetection
As verificações de segurança de loop de ferramentas ficam desabilitadas por padrão. Defina enabled: true para ativar a detecção.
As configurações podem ser definidas globalmente em tools.loopDetection e substituídas por agente em agents.list[].tools.loopDetection.
historySize: máximo do histórico de chamadas de ferramentas mantido para análise de loop.warningThreshold: limite de padrão repetitivo sem progresso para avisos.criticalThreshold: limite repetitivo mais alto para bloquear loops críticos.globalCircuitBreakerThreshold: limite de parada rígida para qualquer execução sem progresso.detectors.genericRepeat: avisa sobre chamadas repetidas da mesma ferramenta/com os mesmos argumentos.detectors.knownPollNoProgress: avisa/bloqueia ferramentas de polling conhecidas (process.poll,command_statusetc.).detectors.pingPong: avisa/bloqueia padrões alternados em pares sem progresso.- Se
warningThreshold >= criticalThresholdoucriticalThreshold >= globalCircuitBreakerThreshold, a validação falha.
tools.web
tools.media
Configura compreensão de mídia de entrada (imagem/áudio/vídeo):
Campos de entrada de modelo de mídia
Campos de entrada de modelo de mídia
Entrada de provider (
type: "provider" ou omitido):provider: ID do provider da API (openai,anthropic,google/gemini,groqetc.)model: substituição do ID do modeloprofile/preferredProfile: seleção de perfil emauth-profiles.json
type: "cli"):command: executável a ser executadoargs: argumentos com template (compatível com{{MediaPath}},{{Prompt}},{{MaxChars}}etc.)
capabilities: lista opcional (image,audio,video). Padrões:openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: substituições por entrada.- Falhas recorrem à próxima entrada.
auth-profiles.json → variáveis de ambiente → models.providers.*.apiKey.Campos de conclusão assíncrona:asyncCompletion.directSend: quandotrue, tarefas assíncronas concluídas demusic_generateevideo_generatetentam primeiro a entrega direta ao canal. Padrão:false(caminho legado de despertar sessão solicitante/entrega pelo modelo).
tools.agentToAgent
tools.sessions
Controla quais sessões podem ser direcionadas pelas ferramentas de sessão (sessions_list, sessions_history, sessions_send).
Padrão: tree (sessão atual + sessões iniciadas por ela, como subagentes).
self: somente a chave da sessão atual.tree: sessão atual + sessões iniciadas pela sessão atual (subagentes).agent: qualquer sessão pertencente ao ID do agente atual (pode incluir outros usuários se você executar sessões por remetente sob o mesmo ID de agente).all: qualquer sessão. O direcionamento entre agentes ainda exigetools.agentToAgent.- Restrição de sandbox: quando a sessão atual está em sandbox e
agents.defaults.sandbox.sessionToolsVisibility="spawned", a visibilidade é forçada paratreemesmo setools.sessions.visibility="all".
tools.sessions_spawn
Controla o suporte a anexos inline para sessions_spawn.
- Anexos só são compatíveis com
runtime: "subagent". O runtime ACP os rejeita. - Os arquivos são materializados no workspace filho em
.openclaw/attachments/<uuid>/com um.manifest.json. - O conteúdo do anexo é automaticamente redigido da persistência da transcrição.
- Entradas em Base64 são validadas com verificações rígidas de alfabeto/preenchimento e uma proteção de tamanho antes da decodificação.
- As permissões de arquivo são
0700para diretórios e0600para arquivos. - A limpeza segue a política
cleanup:deletesempre remove anexos;keepsó os mantém quandoretainOnSessionKeep: true.
tools.experimental
Sinalizadores experimentais de ferramentas integradas. Desligados por padrão, a menos que se aplique uma regra de autoativação rígida agentic GPT-5.
planTool: habilita a ferramenta estruturadaupdate_planpara rastreamento de trabalho não trivial em várias etapas.- Padrão:
false, a menos queagents.defaults.embeddedPi.executionContract(ou uma substituição por agente) esteja definido como"strict-agentic"para uma execução da família GPT-5 do OpenAI ou OpenAI Codex. Definatruepara forçar a ferramenta fora desse escopo, oufalsepara mantê-la desligada mesmo em execuções rígidas agentic GPT-5. - Quando habilitado, o prompt do sistema também adiciona orientação de uso para que o modelo só a use em trabalho substancial e mantenha no máximo uma etapa
in_progress.
agents.defaults.subagents
model: modelo padrão para subagentes iniciados. Se omitido, os subagentes herdam o modelo do chamador.allowAgents: lista de permissão padrão de IDs de agente de destino parasessions_spawnquando o agente solicitante não define seu própriosubagents.allowAgents(["*"]= qualquer; padrão: somente o mesmo agente).runTimeoutSeconds: timeout padrão (segundos) parasessions_spawnquando a chamada da ferramenta omiterunTimeoutSeconds.0significa sem timeout.- Política de ferramentas por subagente:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Providers personalizados e base URLs
O OpenClaw usa o catálogo de modelos integrado. Adicione providers personalizados viamodels.providers na configuração ou em ~/.openclaw/agents/<agentId>/agent/models.json.
- Use
authHeader: true+headerspara necessidades de autenticação personalizadas. - Substitua a raiz de configuração do agente com
OPENCLAW_AGENT_DIR(ouPI_CODING_AGENT_DIR, um alias legado de variável de ambiente). - Precedência de merge para IDs de provider correspondentes:
- Valores não vazios de
baseUrlemmodels.jsondo agente prevalecem. - Valores não vazios de
apiKeydo agente prevalecem somente quando esse provider não é gerenciado por SecretRef no contexto atual de configuração/perfil de autenticação. - Valores de
apiKeyde provider gerenciados por SecretRef são atualizados a partir de marcadores de origem (ENV_VAR_NAMEpara refs de ambiente,secretref-managedpara refs de arquivo/exec) em vez de persistirem segredos resolvidos. - Valores de header de provider gerenciados por SecretRef são atualizados a partir de marcadores de origem (
secretref-env:ENV_VAR_NAMEpara refs de ambiente,secretref-managedpara refs de arquivo/exec). apiKey/baseUrldo agente vazios ou ausentes recorrem amodels.providersna configuração.contextWindow/maxTokensde modelo correspondente usam o valor mais alto entre a configuração explícita e os valores implícitos do catálogo.contextTokensde modelo correspondente preserva um limite explícito de runtime quando presente; use-o para limitar o contexto efetivo sem alterar os metadados nativos do modelo.- Use
models.mode: "replace"quando quiser que a configuração reescreva totalmentemodels.json. - A persistência de marcadores é autoritativa da origem: os marcadores são gravados a partir do snapshot da configuração de origem ativa (pré-resolução), não dos valores secretos resolvidos em runtime.
- Valores não vazios de
Detalhes dos campos do provider
models.mode: comportamento do catálogo de provider (mergeoureplace).models.providers: mapa de providers personalizados indexado por ID do provider.- Edições seguras: use
openclaw config set models.providers.<id> '<json>' --strict-json --mergeouopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergepara atualizações aditivas.config setrecusa substituições destrutivas a menos que você passe--replace.
- Edições seguras: use
models.providers.*.api: adaptador de requisição (openai-completions,openai-responses,anthropic-messages,google-generative-aietc.).models.providers.*.apiKey: credencial do provider (prefira SecretRef/substituição por ambiente).models.providers.*.auth: estratégia de autenticação (api-key,token,oauth,aws-sdk).models.providers.*.injectNumCtxForOpenAICompat: para Ollama +openai-completions, injetaoptions.num_ctxnas requisições (padrão:true).models.providers.*.authHeader: força o transporte de credencial no headerAuthorizationquando necessário.models.providers.*.baseUrl: base URL da API upstream.models.providers.*.headers: headers estáticos extras para roteamento de proxy/tenant.models.providers.*.request: substituições de transporte para requisições HTTP do model-provider.request.headers: headers extras (mesclados com os padrões do provider). Os valores aceitam SecretRef.request.auth: substituição da estratégia de autenticação. Modos:"provider-default"(usa a autenticação integrada do provider),"authorization-bearer"(comtoken),"header"(comheaderName,value,prefixopcional).request.proxy: substituição de proxy HTTP. Modos:"env-proxy"(usa as variáveis de ambienteHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(comurl). Ambos os modos aceitam um subobjetotlsopcional.request.tls: substituição de TLS para conexões diretas. Campos:ca,cert,key,passphrase(todos aceitam SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: quandotrue, permite HTTPS parabaseUrlquando o DNS resolve para intervalos privados, CGNAT ou semelhantes, via a proteção SSRF de fetch HTTP do provider (opt-in do operador para endpoints autohospedados confiáveis compatíveis com OpenAI). O WebSocket usa o mesmorequestpara headers/TLS, mas não essa proteção SSRF de fetch. Padrãofalse.
models.providers.*.models: entradas explícitas do catálogo de modelos do provider.models.providers.*.models.*.contextWindow: metadados nativos da janela de contexto do modelo.models.providers.*.models.*.contextTokens: limite opcional de contexto em runtime. Use isso quando quiser um orçamento efetivo de contexto menor que ocontextWindownativo do modelo.models.providers.*.models.*.compat.supportsDeveloperRole: dica opcional de compatibilidade. Paraapi: "openai-completions"com umbaseUrlnão nativo não vazio (host diferente deapi.openai.com), o OpenClaw força isso parafalseem runtime.baseUrlvazio/omitido mantém o comportamento padrão da OpenAI.models.providers.*.models.*.compat.requiresStringContent: dica opcional de compatibilidade para endpoints de chat compatíveis com OpenAI que aceitam apenas string. Quandotrue, o OpenClaw achata arrays puros de textomessages[].contentem strings simples antes de enviar a requisição.plugins.entries.amazon-bedrock.config.discovery: raiz das configurações de descoberta automática do Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: ativa/desativa a descoberta implícita.plugins.entries.amazon-bedrock.config.discovery.region: região AWS para descoberta.plugins.entries.amazon-bedrock.config.discovery.providerFilter: filtro opcional de ID do provider para descoberta direcionada.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: intervalo de polling para atualização de descoberta.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: fallback de janela de contexto para modelos descobertos.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: fallback de máximo de tokens de saída para modelos descobertos.
Exemplos de provider
Cerebras (GLM 4.6 / 4.7)
Cerebras (GLM 4.6 / 4.7)
cerebras/zai-glm-4.7 para Cerebras; zai/glm-4.7 para Z.AI direto.OpenCode
OpenCode
OPENCODE_API_KEY (ou OPENCODE_ZEN_API_KEY). Use refs opencode/... para o catálogo Zen ou refs opencode-go/... para o catálogo Go. Atalho: openclaw onboard --auth-choice opencode-zen ou openclaw onboard --auth-choice opencode-go.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY. z.ai/* e z-ai/* são aliases aceitos. Atalho: openclaw onboard --auth-choice zai-api-key.- Endpoint geral:
https://api.z.ai/api/paas/v4 - Endpoint de coding (padrão):
https://api.z.ai/api/coding/paas/v4 - Para o endpoint geral, defina um provider personalizado com a substituição de base URL.
Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" ou openclaw onboard --auth-choice moonshot-api-key-cn.Endpoints nativos do Moonshot anunciam compatibilidade de uso de streaming no transporte compartilhado
openai-completions, e o OpenClaw baseia isso nas capacidades do endpoint
em vez de apenas no ID integrado do provider.Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key.Synthetic (compatível com Anthropic)
Synthetic (compatível com Anthropic)
/v1 (o cliente Anthropic a acrescenta). Atalho: openclaw onboard --auth-choice synthetic-api-key.MiniMax M2.7 (direto)
MiniMax M2.7 (direto)
MINIMAX_API_KEY. Atalhos:
openclaw onboard --auth-choice minimax-global-api ou
openclaw onboard --auth-choice minimax-cn-api.
O catálogo de modelos usa somente M2.7 por padrão.
No caminho de streaming compatível com Anthropic, o OpenClaw desabilita o thinking do MiniMax
por padrão, a menos que você defina thinking explicitamente. /fast on ou
params.fastMode: true reescreve MiniMax-M2.7 para
MiniMax-M2.7-highspeed.Modelos locais (LM Studio)
Modelos locais (LM Studio)
Consulte Modelos locais. Resumo: execute um modelo local grande via LM Studio Responses API em hardware robusto; mantenha modelos hospedados mesclados como fallback.
Relacionado
- Referência de configuração — outras chaves de nível superior
- Configuração — agentes
- Configuração — canais
- Ferramentas e Plugins