agents.*, multiAgent.*, session.*,
messages.* e talk.*. Para canais, tools, runtime do gateway e outras
chaves de nível superior, consulte Referência de configuração.
Padrões do agente
agents.defaults.workspace
Padrão: ~/.openclaw/workspace.
agents.defaults.repoRoot
Raiz opcional do repositório mostrada na linha Runtime do prompt de sistema. Se não for definida, o OpenClaw detecta automaticamente subindo a partir do workspace.
agents.defaults.skills
Lista de permissões padrão opcional de Skills para agentes que não definem
agents.list[].skills.
- Omita
agents.defaults.skillspara Skills irrestritas por padrão. - Omita
agents.list[].skillspara herdar os padrões. - Defina
agents.list[].skills: []para nenhuma Skill. - Uma lista não vazia em
agents.list[].skillsé o conjunto final para esse agente; ela não é mesclada com os padrões.
agents.defaults.skipBootstrap
Desabilita a criação automática de arquivos bootstrap do workspace (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.contextInjection
Controla quando os arquivos bootstrap do workspace são injetados no prompt de sistema. Padrão: "always".
"continuation-skip": turnos seguros de continuação (após uma resposta concluída do assistente) pulam a reinjeção do bootstrap do workspace, reduzindo o tamanho do prompt. Execuções de Heartbeat e novas tentativas pós-Compaction ainda recompõem o contexto.
agents.defaults.bootstrapMaxChars
Máximo de caracteres por arquivo bootstrap do workspace antes do truncamento. Padrão: 12000.
agents.defaults.bootstrapTotalMaxChars
Máximo total de caracteres injetados em todos os arquivos bootstrap do workspace. Padrão: 60000.
agents.defaults.bootstrapPromptTruncationWarning
Controla o texto de aviso visível ao agente quando o contexto bootstrap é truncado.
Padrão: "once".
"off": nunca injeta texto de aviso no prompt de sistema."once": injeta o aviso uma vez por assinatura de truncamento exclusiva (recomendado)."always": injeta o aviso em toda execução quando houver truncamento.
Mapa de propriedade de orçamento de contexto
O OpenClaw tem vários orçamentos de prompt/contexto de alto volume, e eles são intencionalmente divididos por subsistema em vez de passarem todos por um único controle genérico.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: injeção normal do bootstrap do workspace.agents.defaults.startupContext.*: prelúdio de inicialização de uso único para/newe/reset, incluindo arquivos recentes diários dememory/*.md.skills.limits.*: lista compacta de Skills injetada no prompt de sistema.agents.defaults.contextLimits.*: trechos limitados em runtime e blocos injetados de propriedade do runtime.memory.qmd.limits.*: dimensionamento de snippets e de injeção da busca de memória indexada.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Controla o prelúdio de inicialização do primeiro turno injetado em execuções simples de /new e /reset.
agents.defaults.contextLimits
Padrões compartilhados para superfícies limitadas de contexto em runtime.
memoryGetMaxChars: limite padrão de trecho dememory_getantes da adição de metadados de truncamento e aviso de continuação.memoryGetDefaultLines: janela padrão de linhas dememory_getquandolinesfor omitido.toolResultMaxChars: limite de resultado de tool em live usado para resultados persistidos e recuperação de overflow.postCompactionMaxChars: limite de trecho de AGENTS.md usado durante a injeção de atualização pós-Compaction.
agents.list[].contextLimits
Substituição por agente para os controles compartilhados de contextLimits. Campos omitidos herdam
de agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Limite global para a lista compacta de Skills injetada no prompt de sistema. Isso
não afeta a leitura sob demanda de arquivos SKILL.md.
agents.list[].skillsLimits.maxSkillsPromptChars
Substituição por agente para o orçamento do prompt de Skills.
agents.defaults.imageMaxDimensionPx
Tamanho máximo em pixels do lado mais longo da imagem em blocos de imagem de transcrição/tool antes de chamadas ao provider.
Padrão: 1200.
Valores menores geralmente reduzem o uso de tokens de visão e o tamanho do payload da requisição em execuções com muitas capturas de tela.
Valores maiores preservam mais detalhes visuais.
agents.defaults.userTimezone
Timezone para o contexto do prompt de sistema (não para timestamps de mensagem). Usa o timezone do host como fallback.
agents.defaults.timeFormat
Formato de hora no prompt de sistema. Padrão: auto (preferência do SO).
agents.defaults.model
model: aceita uma string ("provider/model") ou um objeto ({ primary, fallbacks }).- A forma string define apenas o modelo primário.
- A forma objeto define o primário mais modelos ordenados de failover.
imageModel: aceita uma string ("provider/model") ou um objeto ({ primary, fallbacks }).- Usado pelo caminho da tool
imagecomo sua configuração de modelo de visão. - Também usado como roteamento de fallback quando o modelo selecionado/padrão não consegue aceitar entrada de imagem.
- Usado pelo caminho da tool
imageGenerationModel: aceita uma string ("provider/model") ou um objeto ({ primary, fallbacks }).- Usado pela capacidade compartilhada de geração de imagem e por qualquer superfície futura de tool/plugin que gere imagens.
- Valores típicos:
google/gemini-3.1-flash-image-previewpara geração nativa de imagem do Gemini,fal/fal-ai/flux/devpara fal ouopenai/gpt-image-2para OpenAI Images. - Se você selecionar diretamente um provider/model, configure também a autenticação correspondente do provider (por exemplo
GEMINI_API_KEYouGOOGLE_API_KEYparagoogle/*,OPENAI_API_KEYou OpenAI Codex OAuth paraopenai/gpt-image-2,FAL_KEYparafal/*). - Se omitido,
image_generateainda pode inferir um provider padrão com autenticação. Ele tenta primeiro o provider padrão atual e depois os providers restantes de geração de imagem registrados, na ordem do ID do provider.
musicGenerationModel: aceita uma string ("provider/model") ou um objeto ({ primary, fallbacks }).- Usado pela capacidade compartilhada de geração de música e pela tool integrada
music_generate. - Valores típicos:
google/lyria-3-clip-preview,google/lyria-3-pro-previewouminimax/music-2.5+. - Se omitido,
music_generateainda pode inferir um provider padrão com autenticação. Ele tenta primeiro o provider padrão atual e depois os providers restantes de geração de música registrados, na ordem do ID do provider. - Se você selecionar diretamente um provider/model, configure também a autenticação/chave de API correspondente do provider.
- Usado pela capacidade compartilhada de geração de música e pela tool integrada
videoGenerationModel: aceita uma string ("provider/model") ou um objeto ({ primary, fallbacks }).- Usado pela capacidade compartilhada de geração de vídeo e pela tool integrada
video_generate. - Valores típicos:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flashouqwen/wan2.7-r2v. - Se omitido,
video_generateainda pode inferir um provider padrão com autenticação. Ele tenta primeiro o provider padrão atual e depois os providers restantes de geração de vídeo registrados, na ordem do ID do provider. - Se você selecionar diretamente um provider/model, configure também a autenticação/chave de API correspondente do provider.
- O provider integrado de geração de vídeo Qwen suporta até 1 vídeo de saída, 1 imagem de entrada, 4 vídeos de entrada, duração de 10 segundos e opções de nível de provider
size,aspectRatio,resolution,audioewatermark.
- Usado pela capacidade compartilhada de geração de vídeo e pela tool integrada
pdfModel: aceita uma string ("provider/model") ou um objeto ({ primary, fallbacks }).- Usado pela tool
pdfpara roteamento de modelo. - Se omitido, a tool PDF usa como fallback
imageModele depois o modelo resolvido da sessão/padrão.
- Usado pela tool
pdfMaxBytesMb: limite padrão de tamanho de PDF para a toolpdfquandomaxBytesMbnão é passado no momento da chamada.pdfMaxPages: máximo padrão de páginas consideradas pelo modo de fallback de extração na toolpdf.verboseDefault: nível verbose padrão para agentes. Valores:"off","on","full". Padrão:"off".elevatedDefault: nível padrão de saída elevada para agentes. Valores:"off","on","ask","full". Padrão:"on".model.primary: formatoprovider/model(por exemploopenai/gpt-5.4para acesso com chave de API ouopenai-codex/gpt-5.5para Codex OAuth). Se você omitir o provider, o OpenClaw tenta primeiro um alias, depois uma correspondência única de provider configurado para aquele ID exato de modelo e só então usa como fallback o provider padrão configurado (comportamento legado obsoleto de compatibilidade, então prefiraprovider/modelexplícito). Se esse provider não expuser mais o modelo padrão configurado, o OpenClaw usa como fallback o primeiro provider/model configurado em vez de expor um padrão obsoleto de provider removido.models: o catálogo de modelos configurado e a lista de permissões para/model. Cada entrada pode incluiralias(atalho) eparams(específicos do provider, por exemplotemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold).- Edições seguras: use
openclaw config set agents.defaults.models '<json>' --strict-json --mergepara adicionar entradas.config setrecusa substituições que removeriam entradas existentes da lista de permissões, a menos que você passe--replace. - Fluxos de configuração/onboarding com escopo de provider mesclam os modelos selecionados do provider nesse mapa e preservam providers não relacionados já configurados.
- Para modelos diretos OpenAI Responses, a Compaction no lado do servidor é habilitada automaticamente. Use
params.responsesServerCompaction: falsepara parar de injetarcontext_management, ouparams.responsesCompactThresholdpara substituir o limite. Consulte Compaction no lado do servidor da OpenAI.
- Edições seguras: use
params: parâmetros globais padrão de provider aplicados a todos os modelos. Definidos emagents.defaults.params(por exemplo{ cacheRetention: "long" }).- Precedência de mesclagem de
params(config):agents.defaults.params(base global) é substituído poragents.defaults.models["provider/model"].params(por modelo) e depoisagents.list[].params(agent id correspondente) substitui por chave. Consulte Cache de prompt para detalhes. embeddedHarness: política padrão do runtime de agente incorporado de baixo nível. Useruntime: "auto"para permitir que harnesses de plugin registrados assumam modelos compatíveis,runtime: "pi"para forçar o harness PI integrado ou um ID de harness registrado comoruntime: "codex". Definafallback: "none"para desabilitar fallback automático para PI.- Gravadores de configuração que alteram esses campos (por exemplo
/models set,/models set-imagee comandos de adicionar/remover fallback) salvam a forma canônica de objeto e preservam listas existentes de fallback quando possível. maxConcurrent: máximo de execuções paralelas de agente entre sessões (cada sessão ainda é serializada). Padrão: 4.
agents.defaults.embeddedHarness
embeddedHarness controla qual executor de baixo nível executa turnos de agente incorporados.
A maioria das implantações deve manter o padrão { runtime: "auto", fallback: "pi" }.
Use-o quando um plugin confiável fornecer um harness nativo, como o harness
integrado do app-server Codex.
runtime:"auto","pi"ou um ID de harness de plugin registrado. O plugin integrado Codex registracodex.fallback:"pi"ou"none"."pi"mantém o harness PI integrado como fallback de compatibilidade quando nenhum harness de plugin é selecionado."none"faz com que uma seleção ausente ou incompatível de harness de plugin falhe em vez de usar PI silenciosamente. Falhas do harness de plugin selecionado sempre aparecem diretamente.- Substituições por ambiente:
OPENCLAW_AGENT_RUNTIME=<id|auto|pi>substituiruntime;OPENCLAW_AGENT_HARNESS_FALLBACK=nonedesabilita o fallback para PI nesse processo. - Para implantações somente Codex, defina
model: "openai/gpt-5.5",embeddedHarness.runtime: "codex"eembeddedHarness.fallback: "none". - A escolha do harness é fixada por session id após a primeira execução incorporada. Alterações de config/env afetam sessões novas ou redefinidas, não uma transcrição existente. Sessões legadas com histórico de transcrição, mas sem pin registrado, são tratadas como fixadas em PI.
/statusmostra IDs de harness não PI, comocodex, ao lado deFast. - Isso controla apenas o harness de chat incorporado. Geração de mídia, visão, PDF, música, vídeo e TTS ainda usam suas configurações de provider/model.
agents.defaults.models):
| Alias | Modelo |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 ou GPT-5.5 Codex OAuth configurado |
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-preview |
--thinking off ou defina agents.defaults.models["zai/<model>"].params.thinking por conta própria.
Modelos Z.AI habilitam tool_stream por padrão para streaming de chamada de ferramenta. Defina agents.defaults.models["zai/<model>"].params.tool_stream como false para desabilitá-lo.
Modelos Anthropic Claude 4.6 usam por padrão thinking adaptive quando nenhum nível explícito de thinking é definido.
agents.defaults.cliBackends
Backends de CLI opcionais para execuções de fallback somente de texto (sem chamadas de ferramenta). Úteis como backup quando providers de API falham.
- Backends de CLI são orientados a texto; tools são sempre desabilitadas.
- Sessões são compatíveis quando
sessionArgestá definido. - Passagem de imagem é compatível quando
imageArgaceita caminhos de arquivo.
agents.defaults.systemPromptOverride
Substitui todo o prompt de sistema montado pelo OpenClaw por uma string fixa. Defina no nível padrão (agents.defaults.systemPromptOverride) ou por agente (agents.list[].systemPromptOverride). Valores por agente têm precedência; um valor vazio ou apenas com espaços é ignorado. Útil para experimentos controlados de prompt.
agents.defaults.promptOverlays
Overlays de prompt independentes de provider aplicados por família de modelo. IDs de modelo da família GPT-5 recebem o contrato compartilhado de comportamento entre providers; personality controla apenas a camada de estilo de interação amigável.
"friendly"(padrão) e"on"habilitam a camada de estilo de interação amigável."off"desabilita apenas a camada amigável; o contrato de comportamento GPT-5 com tags continua habilitado.- O legado
plugins.entries.openai.config.personalityainda é lido quando essa configuração compartilhada não está definida.
agents.defaults.heartbeat
Execuções periódicas de Heartbeat.
every: string de duração (ms/s/m/h). Padrão:30m(autenticação com chave de API) ou1h(autenticação OAuth). Defina como0mpara desabilitar.includeSystemPromptSection: quandofalse, omite a seção Heartbeat do prompt de sistema e pula a injeção deHEARTBEAT.mdno contexto bootstrap. Padrão:true.suppressToolErrorWarnings: quandotrue, suprime payloads de aviso de erro de tool durante execuções de Heartbeat.timeoutSeconds: tempo máximo em segundos permitido para um turno de agente de Heartbeat antes de ser abortado. Deixe sem definir para usaragents.defaults.timeoutSeconds.directPolicy: política de entrega direta/DM.allow(padrão) permite entrega com alvo direto.blocksuprime entrega com alvo direto e emitereason=dm-blocked.lightContext: quandotrue, execuções de Heartbeat usam contexto bootstrap leve e mantêm apenasHEARTBEAT.mddos arquivos bootstrap do workspace.isolatedSession: quandotrue, cada Heartbeat é executado em uma sessão nova, sem histórico prévio de conversa. Mesmo padrão de isolamento quesessionTarget: "isolated"do Cron. Reduz o custo por Heartbeat de ~100 mil para ~2-5 mil tokens.- Por agente: defina
agents.list[].heartbeat. Quando qualquer agente defineheartbeat, somente esses agentes executam Heartbeats. - Heartbeats executam turnos completos de agente — intervalos menores consomem mais tokens.
agents.defaults.compaction
mode:defaultousafeguard(sumarização em blocos para históricos longos). Consulte Compaction.provider: ID de um plugin de provider de Compaction registrado. Quando definido, osummarize()do provider é chamado em vez da sumarização integrada com LLM. Em caso de falha, usa o integrado como fallback. Definir um provider forçamode: "safeguard". Consulte Compaction.timeoutSeconds: máximo de segundos permitidos para uma única operação de Compaction antes que o OpenClaw a aborte. Padrão:900.identifierPolicy:strict(padrão),offoucustom.strictadiciona instruções integradas de retenção de identificadores opacos durante a sumarização de Compaction.identifierInstructions: texto opcional personalizado de preservação de identificadores usado quandoidentifierPolicy=custom.postCompactionSections: nomes opcionais de seções H2/H3 de AGENTS.md para reinjetar após a Compaction. O padrão é["Session Startup", "Red Lines"]; defina[]para desabilitar a reinjeção. Quando não definido ou definido explicitamente com esse par padrão, cabeçalhos antigosEvery Session/Safetytambém são aceitos como fallback legado.model: substituição opcionalprovider/model-idapenas para sumarização de Compaction. Use isto quando a sessão principal deve manter um modelo, mas os resumos de Compaction devem rodar em outro; quando não definido, a Compaction usa o modelo primário da sessão.notifyUser: quandotrue, envia avisos curtos ao usuário quando a Compaction começa e termina (por exemplo, “Compacting context…” e “Compaction complete”). Desabilitado por padrão para manter a Compaction silenciosa.memoryFlush: turno agentic silencioso antes da Compaction automática para armazenar memórias duráveis. Ignorado quando o workspace é somente leitura.
agents.defaults.contextPruning
Remove resultados antigos de tools do contexto em memória antes de enviar ao LLM. Não modifica o histórico da sessão em disco.
Comportamento do modo cache-ttl
Comportamento do modo cache-ttl
mode: "cache-ttl"habilita passagens de pruning.ttlcontrola com que frequência o pruning pode rodar novamente (após o último toque de cache).- O pruning primeiro aplica soft-trim em resultados de tools superdimensionados e depois faz hard-clear de resultados de tools mais antigos, se necessário.
... no meio.Hard-clear substitui todo o resultado da tool pelo placeholder.Observações:- Blocos de imagem nunca são truncados/limpos.
- As proporções são baseadas em caracteres (aproximadas), não em contagens exatas de tokens.
- Se existirem menos de
keepLastAssistantsmensagens do assistente, o pruning é ignorado.
Streaming por bloco
- Canais que não são Telegram exigem
*.blockStreaming: trueexplícito para habilitar respostas por bloco. - Substituições por canal:
channels.<channel>.blockStreamingCoalesce(e variantes por conta). Signal/Slack/Discord/Google Chat usam por padrãominChars: 1500. humanDelay: pausa aleatória entre respostas por bloco.natural= 800–2500ms. Substituição por agente:agents.list[].humanDelay.
Indicadores de digitação
- Padrões:
instantpara chats diretos/menções,messagepara chats em grupo sem menção. - Substituições por sessão:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Sandboxing opcional para o agente incorporado. Consulte Sandboxing para o guia completo.
Detalhes do sandbox
Detalhes do sandbox
Backend:Modo OpenShell:
docker: runtime Docker local (padrão)ssh: runtime remoto genérico com backend SSHopenshell: runtime OpenShell
backend: "openshell" é selecionado, configurações específicas do runtime vão para
plugins.entries.openshell.config.Configuração do backend SSH:target: destino SSH no formatouser@host[:port]command: comando do cliente SSH (padrão:ssh)workspaceRoot: raiz remota absoluta usada para workspaces por escopoidentityFile/certificateFile/knownHostsFile: arquivos locais existentes passados ao OpenSSHidentityData/certificateData/knownHostsData: conteúdos inline ou SecretRefs que o OpenClaw materializa em arquivos temporários em runtimestrictHostKeyChecking/updateHostKeys: controles de política de chave do host do OpenSSH
identityDatatem prioridade sobreidentityFilecertificateDatatem prioridade sobrecertificateFileknownHostsDatatem prioridade sobreknownHostsFile- Valores
*Datacom SecretRef são resolvidos a partir do snapshot ativo do runtime de segredos antes do início da sessão sandbox
- semeia o workspace remoto uma vez após criação ou recriação
- depois mantém o workspace SSH remoto como canônico
- roteia
exec, tools de arquivo e caminhos de mídia por SSH - não sincroniza automaticamente mudanças remotas de volta para o host
- não oferece suporte a contêineres de browser em sandbox
none: workspace sandbox por escopo em~/.openclaw/sandboxesro: workspace sandbox em/workspace, workspace do agente montado como somente leitura em/agentrw: workspace do agente montado para leitura/gravação em/workspace
session: contêiner + workspace por sessãoagent: um contêiner + workspace por agente (padrão)shared: contêiner e workspace compartilhados (sem isolamento entre sessões)
mirror: semeia o remoto a partir do local antes do exec, sincroniza de volta após o exec; o workspace local continua canônicoremote: semeia o remoto uma vez quando o sandbox é criado e depois mantém o workspace remoto como canônico
remote, edições locais no host feitas fora do OpenClaw não são sincronizadas automaticamente para o sandbox após a etapa de seed.
O transporte é SSH para o sandbox OpenShell, mas o plugin é dono do ciclo de vida do sandbox e da sincronização opcional em espelho.setupCommand executa uma vez após a criação do contêiner (via sh -lc). Precisa de saída de rede, raiz gravável e usuário root.Os contêineres usam por padrão network: "none" — defina como "bridge" (ou uma rede bridge personalizada) se o agente precisar de acesso de saída.
"host" é bloqueado. "container:<id>" é bloqueado por padrão, a menos que você defina explicitamente
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (medida de emergência).Anexos de entrada são preparados em media/inbound/* no workspace ativo.docker.binds monta diretórios adicionais do host; binds globais e por agente são mesclados.Browser em sandbox (sandbox.browser.enabled): Chromium + CDP em um contêiner. A URL do noVNC é injetada no prompt de sistema. Não requer browser.enabled em openclaw.json.
O acesso de observador ao noVNC usa autenticação VNC por padrão, e o OpenClaw emite uma URL com token de curta duração (em vez de expor a senha na URL compartilhada).allowHostControl: false(padrão) bloqueia sessões em sandbox de apontarem para o browser do host.networkusa por padrãoopenclaw-sandbox-browser(rede bridge dedicada). Defina comobridgeapenas quando você quiser explicitamente conectividade global da bridge.cdpSourceRangerestringe opcionalmente a entrada CDP na borda do contêiner a um intervalo CIDR (por exemplo172.21.0.1/32).sandbox.browser.bindsmonta diretórios adicionais do host apenas no contêiner do browser em sandbox. Quando definido (inclusive[]), ele substituidocker.bindspara o contêiner do browser.- Os padrões de inicialização são definidos em
scripts/sandbox-browser-entrypoint.she ajustados para hosts com contêiner:--remote-debugging-address=127.0.0.1--remote-debugging-port=<derivado de 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(habilitado por padrão)--disable-3d-apis,--disable-software-rasterizere--disable-gpusão habilitados por padrão e podem ser desabilitados comOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0se o uso de WebGL/3D exigir isso.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0reabilita extensões se o seu workflow depender delas.--renderer-process-limit=2pode ser alterado comOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; defina0para usar o limite de processos padrão do Chromium.- além de
--no-sandboxe--disable-setuid-sandboxquandonoSandboxestiver habilitado. - Os padrões são a baseline da imagem do contêiner; use uma imagem de browser personalizada com um entrypoint personalizado para alterar os padrões do contêiner.
sandbox.docker.binds são apenas para Docker.
Imagens de build:
agents.list (substituições por agente)
id: ID estável do agente (obrigatório).default: quando vários são definidos, o primeiro vence (aviso registrado em log). Se nenhum for definido, a primeira entrada da lista é o padrão.model: a forma string substitui apenasprimary; a forma objeto{ primary, fallbacks }substitui ambos ([]desabilita fallbacks globais). Jobs Cron que substituem apenasprimaryainda herdam fallbacks padrão, a menos que você definafallbacks: [].params: parâmetros de stream por agente mesclados sobre a entrada de modelo selecionada emagents.defaults.models. Use isso para substituições específicas do agente comocacheRetention,temperatureoumaxTokens, sem duplicar todo o catálogo de modelos.skills: lista de permissões opcional de Skills por agente. Se omitida, o agente herdaagents.defaults.skillsquando definido; uma lista explícita substitui os padrões em vez de mesclar, e[]significa nenhuma Skill.thinkingDefault: nível thinking padrão opcional por agente (off | minimal | low | medium | high | xhigh | adaptive | max). Substituiagents.defaults.thinkingDefaultpara este agente quando nenhuma substituição por mensagem ou sessão estiver definida.reasoningDefault: visibilidade padrão opcional de reasoning por agente (on | off | stream). Aplica-se quando nenhuma substituição de reasoning por mensagem ou sessão estiver definida.fastModeDefault: padrão opcional por agente para modo fast (true | false). Aplica-se quando nenhuma substituição de modo fast por mensagem ou sessão estiver definida.embeddedHarness: substituição opcional por agente da política de harness de baixo nível. Use{ runtime: "codex", fallback: "none" }para tornar um agente somente Codex enquanto outros agentes mantêm o fallback padrão para PI.runtime: descritor opcional de runtime por agente. Usetype: "acp"com padrõesruntime.acp(agent,backend,mode,cwd) quando o agente deve usar por padrão sessões de harness ACP.identity.avatar: caminho relativo ao workspace, URLhttp(s)ou URIdata:.identityderiva padrões:ackReactiona partir deemoji,mentionPatternsa partir dename/emoji.subagents.allowAgents: lista de permissões de IDs de agente parasessions_spawn(["*"]= qualquer; padrão: apenas o mesmo agente).- Guarda de herança de sandbox: se a sessão solicitante estiver em sandbox,
sessions_spawnrejeita alvos que seriam executados sem sandbox. subagents.requireAgentId: quandotrue, bloqueia chamadassessions_spawnque omitemagentId(força seleção explícita de perfil; padrão: false).
Roteamento com vários agentes
Execute vários agentes isolados dentro de um único Gateway. Consulte Vários agentes.Campos de correspondência de binding
type(opcional):routepara roteamento normal (tipo ausente usa route por padrão),acppara bindings persistentes de conversa ACP.match.channel(obrigatório)match.accountId(opcional;*= qualquer conta; omitido = conta padrão)match.peer(opcional;{ kind: direct|group|channel, id })match.guildId/match.teamId(opcional; específicos do canal)acp(opcional; apenas paratype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(exato, sem peer/guild/team)match.accountId: "*"(em todo o canal)- Agente padrão
bindings vence.
Para entradas type: "acp", o OpenClaw resolve pela identidade exata da conversa (match.channel + conta + match.peer.id) e não usa a ordem por níveis de binding de rota acima.
Perfis de acesso por agente
Acesso total (sem sandbox)
Acesso total (sem sandbox)
Tools + workspace somente leitura
Tools + workspace somente leitura
Sem acesso ao sistema de arquivos (somente mensagens)
Sem acesso ao sistema de arquivos (somente mensagens)
Sessão
Detalhes dos campos de sessão
Detalhes dos campos de sessão
scope: estratégia base de agrupamento de sessão para contextos de chat em grupo.per-sender(padrão): cada remetente recebe uma sessão isolada dentro de um contexto de canal.global: todos os participantes em um contexto de canal compartilham uma única sessão (use apenas quando o contexto compartilhado for intencional).
dmScope: como DMs são agrupadas.main: todas as DMs compartilham a sessão principal.per-peer: isola por ID do remetente em todos os canais.per-channel-peer: isola por canal + remetente (recomendado para caixas de entrada com vários usuários).per-account-channel-peer: isola por conta + canal + remetente (recomendado para várias contas).
identityLinks: mapeia IDs canônicos para peers com prefixo de provider para compartilhamento de sessão entre canais.reset: política principal de reset.dailyredefine ematHourno horário local;idleredefine apósidleMinutes. Quando ambos estão configurados, vence o que expirar primeiro.resetByType: substituições por tipo (direct,group,thread). O legadodmé aceito como alias dedirect.parentForkMaxTokens: máximo detotalTokensda sessão pai permitido ao criar uma sessão de thread bifurcada (padrão100000).- Se
totalTokensdo pai estiver acima desse valor, o OpenClaw inicia uma nova sessão de thread em vez de herdar o histórico da transcrição pai. - Defina
0para desabilitar essa proteção e sempre permitir fork do pai.
- Se
mainKey: campo legado. O runtime sempre usa"main"para o bucket principal de chat direto.agentToAgent.maxPingPongTurns: número máximo de turnos de resposta entre agentes durante trocas agent-to-agent (inteiro, intervalo:0–5).0desabilita encadeamento ping-pong.sendPolicy: correspondência porchannel,chatType(direct|group|channel, com alias legadodm),keyPrefixourawKeyPrefix. O primeiro deny vence.maintenance: controles de limpeza + retenção do armazenamento de sessão.mode:warnemite apenas avisos;enforceaplica a limpeza.pruneAfter: limite de idade para entradas obsoletas (padrão30d).maxEntries: número máximo de entradas emsessions.json(padrão500).rotateBytes: rotacionasessions.jsonquando ele excede esse tamanho (padrão10mb).resetArchiveRetention: retenção para arquivos de transcrição*.reset.<timestamp>. Usa por padrãopruneAfter; definafalsepara desabilitar.maxDiskBytes: orçamento opcional de disco para o diretório de sessões. No modowarn, registra avisos; no modoenforce, remove primeiro os artefatos/sessões mais antigos.highWaterBytes: alvo opcional após limpeza por orçamento. Usa por padrão80%demaxDiskBytes.
threadBindings: padrões globais para recursos de sessão vinculados a thread.enabled: chave mestra padrão (providers podem substituir; Discord usachannels.discord.threadBindings.enabled)idleHours: desfoco automático padrão por inatividade em horas (0desabilita; providers podem substituir)maxAgeHours: idade máxima rígida padrão em horas (0desabilita; providers podem substituir)
Mensagens
Prefixo de resposta
Substituições por canal/conta:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Resolução (o mais específico vence): conta → canal → global. "" desabilita e interrompe a cascata. "auto" deriva [{identity.name}].
Variáveis de template:
| Variável | Descrição | Exemplo |
|---|---|---|
{model} | Nome curto do modelo | claude-opus-4-6 |
{modelFull} | Identificador completo do modelo | anthropic/claude-opus-4-6 |
{provider} | Nome do provider | anthropic |
{thinkingLevel} | Nível atual de thinking | high, low, off |
{identity.name} | Nome da identidade do agente | (mesmo que "auto") |
{think} é um alias para {thinkingLevel}.
Reação de confirmação
- Usa por padrão
identity.emojido agente ativo; caso contrário,"👀". Defina""para desabilitar. - Substituições por canal:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Ordem de resolução: conta → canal →
messages.ackReaction→ fallback de identidade. - Escopo:
group-mentions(padrão),group-all,direct,all. removeAckAfterReply: remove a confirmação após a resposta em Slack, Discord e Telegram.messages.statusReactions.enabled: habilita reações de status do ciclo de vida em Slack, Discord e Telegram. Em Slack e Discord, quando não definido, mantém as reações de status habilitadas quando reações de confirmação estão ativas. No Telegram, defina explicitamente comotruepara habilitar reações de status do ciclo de vida.
Debounce de entrada
Agrupa mensagens rápidas somente de texto do mesmo remetente em um único turno do agente. Mídia/anexos fazem flush imediatamente. Comandos de controle ignoram o debounce.TTS (texto para fala)
autocontrola o modo padrão de auto-TTS:off,always,inboundoutagged./tts on|offpode substituir preferências locais, e/tts statusmostra o estado efetivo.summaryModelsubstituiagents.defaults.model.primarypara auto-resumo.modelOverridesé habilitado por padrão;modelOverrides.allowProviderusa por padrãofalse(opt-in).- Chaves de API usam como fallback
ELEVENLABS_API_KEY/XI_API_KEYeOPENAI_API_KEY. openai.baseUrlsubstitui o endpoint TTS da OpenAI. A ordem de resolução é config, depoisOPENAI_TTS_BASE_URL, depoishttps://api.openai.com/v1.- Quando
openai.baseUrlaponta para um endpoint que não é da OpenAI, o OpenClaw o trata como um servidor TTS compatível com OpenAI e relaxa a validação de modelo/voz.
Fala
Padrões para o modo Talk (macOS/iOS/Android).talk.providerdeve corresponder a uma chave emtalk.providersquando vários providers de Talk estiverem configurados.- Chaves legadas planas de Talk (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) são apenas para compatibilidade e são migradas automaticamente paratalk.providers.<provider>. - IDs de voz usam como fallback
ELEVENLABS_VOICE_IDouSAG_VOICE_ID. providers.*.apiKeyaceita strings em texto simples ou objetos SecretRef.- O fallback
ELEVENLABS_API_KEYse aplica apenas quando nenhuma chave de API de Talk está configurada. providers.*.voiceAliasespermite que diretivas de Talk usem nomes amigáveis.silenceTimeoutMscontrola quanto tempo o modo Talk espera após o silêncio do usuário antes de enviar a transcrição. Quando não definido, mantém a janela de pausa padrão da plataforma (700 ms no macOS e Android, 900 ms no iOS).
Relacionado
- Referência de configuração — todas as outras chaves de configuração
- Configuração — tarefas comuns e configuração rápida
- Exemplos de configuração