OpenClaw lê uma configuração opcional deDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
~/.openclaw/openclaw.json.
O caminho da configuração ativa deve ser um arquivo regular. Layouts de openclaw.json
com symlink não têm suporte para gravações de propriedade do OpenClaw; uma gravação atômica pode substituir
o caminho em vez de preservar o symlink. Se você mantém a configuração fora do
diretório de estado padrão, aponte OPENCLAW_CONFIG_PATH diretamente para o arquivo real.
Se o arquivo estiver ausente, o OpenClaw usa padrões seguros. Motivos comuns para adicionar uma configuração:
- Conectar canais e controlar quem pode enviar mensagens para o bot
- Definir modelos, ferramentas, sandboxing ou automação (cron, hooks)
- Ajustar sessões, mídia, rede ou UI
config.schema.lookup para documentação exata no nível de campo
antes de editar a configuração. Use esta página para orientações orientadas a tarefas e a
Referência de configuração para o mapa de campos mais amplo
e os padrões.
Configuração mínima
Editando a configuração
- Assistente interativo
- CLI (comandos de uma linha)
- UI de controle
- Edição direta
Validação estrita
openclaw config schema imprime o JSON Schema canônico usado pela UI de controle
e pela validação. config.schema.lookup busca um único nó limitado ao caminho, além de
resumos dos filhos para ferramentas de detalhamento. Metadados de documentação de campos title/description
são propagados por objetos aninhados, curingas (*), itens de array ([]) e ramificações
anyOf/oneOf/allOf. Esquemas de plugin e canal em tempo de execução são mesclados quando o
registro de manifestos é carregado.
Quando a validação falha:
- O Gateway não inicializa
- Apenas comandos de diagnóstico funcionam (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Execute
openclaw doctorpara ver os problemas exatos - Execute
openclaw doctor --fix(ou--yes) para aplicar reparos
openclaw.json
falhar na validação (incluindo validação local do plugin), a inicialização do Gateway falha ou
o recarregamento é ignorado, e o runtime atual mantém a última configuração aceita.
Execute openclaw doctor --fix (ou --yes) para reparar configurações prefixadas/clobbered ou
restaurar a última cópia válida conhecida. A promoção para última configuração válida conhecida é ignorada quando uma
candidata contém placeholders de segredos redigidos, como ***.
Tarefas comuns
Configurar um canal (WhatsApp, Telegram, Discord etc.)
Configurar um canal (WhatsApp, Telegram, Discord etc.)
channels.<provider>. Consulte a página dedicada do canal para as etapas de configuração:- WhatsApp -
channels.whatsapp - Telegram -
channels.telegram - Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - Microsoft Teams -
channels.msteams - Slack -
channels.slack - Signal -
channels.signal - iMessage -
channels.imessage - Mattermost -
channels.mattermost
Escolher e configurar modelos
Escolher e configurar modelos
agents.defaults.modelsdefine o catálogo de modelos e atua como allowlist para/model; entradasprovider/*filtram/model,/modelse seletores de modelo para provedores selecionados, ainda usando descoberta dinâmica de modelos.- Use
openclaw config set agents.defaults.models '<json>' --strict-json --mergepara adicionar entradas à allowlist sem remover modelos existentes. Substituições simples que removeriam entradas são rejeitadas, a menos que você passe--replace. - Referências de modelo usam o formato
provider/model(por exemplo,anthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPxcontrola o redimensionamento de imagens de transcrição/ferramentas (padrão1200); valores menores geralmente reduzem o uso de tokens de visão em execuções com muitas capturas de tela.- Consulte CLI de modelos para alternar modelos no chat e Failover de modelo para rotação de autenticação e comportamento de fallback.
- Para provedores personalizados/hospedados pelo próprio usuário, consulte Provedores personalizados na referência.
Controlar quem pode enviar mensagens para o bot
Controlar quem pode enviar mensagens para o bot
dmPolicy:"pairing"(padrão): remetentes desconhecidos recebem um código de pareamento de uso único para aprovação"allowlist": apenas remetentes emallowFrom(ou no armazenamento de permissões pareadas)"open": permite todas as DMs de entrada (requerallowFrom: ["*"])"disabled": ignora todas as DMs
groupPolicy + groupAllowFrom ou allowlists específicas do canal.Consulte a referência completa para detalhes por canal.Configurar controle de menções em chat de grupo
Configurar controle de menções em chat de grupo
- Menções de metadados: @-menções nativas (menção por toque do WhatsApp, @bot do Telegram etc.)
- Padrões de texto: padrões regex seguros em
mentionPatterns - Respostas visíveis:
messages.visibleRepliespode exigir envios por ferramenta de mensagem globalmente;messages.groupChat.visibleRepliessubstitui isso para grupos/canais. - Consulte a referência completa para modos de resposta visível, substituições por canal e modo de autochat.
Restringir skills por agente
Restringir skills por agente
agents.defaults.skills para uma linha de base compartilhada e, em seguida, substitua agentes
específicos com 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. - Consulte Skills, Configuração de Skills e a Referência de configuração.
Ajustar o monitoramento de integridade de canais do gateway
Ajustar o monitoramento de integridade de canais do gateway
- Defina
gateway.channelHealthCheckMinutes: 0para desativar reinicializações por monitoramento de integridade globalmente. channelStaleEventThresholdMinutesdeve ser maior ou igual ao intervalo de verificação.- Use
channels.<provider>.healthMonitor.enabledouchannels.<provider>.accounts.<id>.healthMonitor.enabledpara desativar reinicializações automáticas para um canal ou conta sem desativar o monitor global. - Consulte Verificações de integridade para depuração operacional e a referência completa para todos os campos.
Ajustar o timeout do handshake WebSocket do gateway
Ajustar o timeout do handshake WebSocket do gateway
- O padrão é
15000milissegundos. OPENCLAW_HANDSHAKE_TIMEOUT_MSainda tem precedência para substituições pontuais de serviço ou shell.- Prefira corrigir primeiro travamentos de inicialização/event loop; este controle é para hosts que estão saudáveis, mas lentos durante o aquecimento.
Configurar sessões e redefinições
Configurar sessões e redefinições
dmScope:main(compartilhado) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: padrões globais para roteamento de sessões vinculadas a threads (Discord oferece suporte a/focus,/unfocus,/agents,/session idlee/session max-age).- Consulte Gerenciamento de sessões para escopo, vínculos de identidade e política de envio.
- Consulte a referência completa para todos os campos.
Enable sandboxing
Enable sandboxing
scripts/sandbox-setup.sh; ou, a partir de uma instalação via npm, veja o comando docker build embutido em Sandboxing § Images and setup.Consulte Sandboxing para o guia completo e a referência completa para todas as opções.Enable relay-backed push for official iOS builds
Enable relay-backed push for official iOS builds
openclaw.json.Defina isto na configuração do Gateway:- Permite que o Gateway envie
push.test, toques de despertar e despertares de reconexão pelo relay externo. - Usa uma concessão de envio com escopo de registro encaminhada pelo app iOS pareado. O Gateway não precisa de um token de relay para toda a implantação.
- Vincula cada registro apoiado por relay à identidade do Gateway com a qual o app iOS foi pareado, para que outro Gateway não possa reutilizar o registro armazenado.
- Mantém builds iOS locais/manuais em APNs direto. Envios apoiados por relay se aplicam apenas a builds oficiais distribuídos que se registraram pelo relay.
- Deve corresponder à URL base do relay embutida no build oficial/TestFlight do iOS, para que o tráfego de registro e envio alcance a mesma implantação de relay.
- Instale um build oficial/TestFlight do iOS que foi compilado com a mesma URL base do relay.
- Configure
gateway.push.apns.relay.baseUrlno Gateway. - Pareie o app iOS com o Gateway e permita que tanto as sessões de Node quanto as de operador se conectem.
- O app iOS busca a identidade do Gateway, registra-se no relay usando App Attest mais o recibo do app e então publica a carga
push.apns.registerapoiada por relay no Gateway pareado. - O Gateway armazena o identificador do relay e a concessão de envio, depois os usa para
push.test, toques de despertar e despertares de reconexão.
- Se você alternar o app iOS para um Gateway diferente, reconecte o app para que ele possa publicar um novo registro de relay vinculado a esse Gateway.
- Se você distribuir um novo build iOS que aponta para uma implantação de relay diferente, o app atualiza seu registro de relay em cache em vez de reutilizar a origem de relay antiga.
OPENCLAW_APNS_RELAY_BASE_URLeOPENCLAW_APNS_RELAY_TIMEOUT_MSainda funcionam como substituições temporárias de ambiente.OPENCLAW_APNS_RELAY_ALLOW_HTTP=truecontinua sendo uma saída de desenvolvimento somente para local loopback; não persista URLs de relay HTTP na configuração.
Set up heartbeat (periodic check-ins)
Set up heartbeat (periodic check-ins)
every: string de duração (30m,2h). Defina0mpara desabilitar.target:last|none|<channel-id>(por exemplodiscord,matrix,telegramouwhatsapp)directPolicy:allow(padrão) oublockpara destinos de Heartbeat no estilo DM- Consulte Heartbeat para o guia completo.
Configure cron jobs
Configure cron jobs
sessionRetention: remova sessões de execução isoladas concluídas desessions.json(padrão24h; definafalsepara desabilitar).runLog: removacron/runs/<jobId>.jsonlpor tamanho e linhas retidas.- Consulte tarefas Cron para a visão geral do recurso e exemplos de CLI.
Set up webhooks (hooks)
Set up webhooks (hooks)
- Trate todo conteúdo de carga de hook/Webhook como entrada não confiável.
- Use um
hooks.tokendedicado; não reutilize o token compartilhado do Gateway. - A autenticação de hook é somente por cabeçalho (
Authorization: Bearer ...oux-openclaw-token); tokens em query string são rejeitados. hooks.pathnão pode ser/; mantenha a entrada de Webhook em um subcaminho dedicado, como/hooks.- Mantenha flags de bypass de conteúdo inseguro desabilitadas (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent), exceto para depuração com escopo bem restrito. - Se você habilitar
hooks.allowRequestSessionKey, também definahooks.allowedSessionKeyPrefixespara limitar chaves de sessão selecionadas pelo chamador. - Para agentes acionados por hooks, prefira níveis de modelo modernos e fortes e política de ferramentas estrita (por exemplo, somente mensagens mais sandboxing quando possível).
Configure multi-agent routing
Configure multi-agent routing
Split config into multiple files ($include)
Split config into multiple files ($include)
$include para organizar configurações grandes:- Arquivo único: substitui o objeto que o contém
- Array de arquivos: mesclado profundamente em ordem (o posterior prevalece)
- Chaves irmãs: mescladas após includes (substituem valores incluídos)
- Includes aninhados: compatíveis até 10 níveis de profundidade
- Caminhos relativos: resolvidos em relação ao arquivo que inclui
- Escritas pertencentes ao OpenClaw: quando uma escrita altera apenas uma seção de nível superior
respaldada por um include de arquivo único, como
plugins: { $include: "./plugins.json5" }, o OpenClaw atualiza esse arquivo incluído e deixaopenclaw.jsonintacto - Write-through não compatível: includes raiz, arrays de include e includes com substituições irmãs falham de modo fechado para escritas pertencentes ao OpenClaw em vez de achatar a configuração
- Confinamento: caminhos
$includedevem resolver dentro do diretório que contémopenclaw.json. Para compartilhar uma árvore entre máquinas ou usuários, definaOPENCLAW_INCLUDE_ROOTScomo uma lista de caminhos (:no POSIX,;no Windows) de diretórios adicionais que includes podem referenciar. Symlinks são resolvidos e verificados novamente, então um caminho que lexicalmente fica em um diretório de configuração, mas cujo destino real escapa de toda raiz permitida, ainda é rejeitado. - Tratamento de erros: erros claros para arquivos ausentes, erros de análise e includes circulares
Recarga dinâmica da configuração
O Gateway observa~/.openclaw/openclaw.json e aplica alterações automaticamente; nenhuma reinicialização manual é necessária para a maioria das configurações.
Edições diretas de arquivo são tratadas como não confiáveis até serem validadas. O observador aguarda
a movimentação de gravação temporária/renomeação do editor estabilizar, lê o arquivo final e rejeita
edições externas inválidas sem reescrever openclaw.json. Escritas de configuração pertencentes ao OpenClaw
usam a mesma barreira de esquema antes de gravar; sobrescritas destrutivas, como
remover gateway.mode ou reduzir o arquivo em mais da metade, são rejeitadas e
salvas como .rejected.* para inspeção.
Se você vir config reload skipped (invalid config) ou a inicialização relatar Invalid config, inspecione a configuração, execute openclaw config validate e depois execute openclaw doctor --fix para reparo. Consulte Solução de problemas do Gateway
para a lista de verificação.
Modos de recarga
| Modo | Comportamento |
|---|---|
hybrid (padrão) | Aplica alterações seguras dinamicamente de forma instantânea. Reinicia automaticamente para as críticas. |
hot | Aplica dinamicamente apenas alterações seguras. Registra um aviso quando uma reinicialização é necessária; você cuida disso. |
restart | Reinicia o Gateway em qualquer alteração de configuração, segura ou não. |
off | Desabilita a observação de arquivos. Alterações entram em vigor na próxima reinicialização manual. |
O que se aplica dinamicamente versus o que precisa de reinicialização
A maioria dos campos é aplicada dinamicamente sem indisponibilidade. No modohybrid, alterações que exigem reinicialização são tratadas automaticamente.
| Categoria | Campos | Reinicialização necessária? |
|---|---|---|
| Canais | channels.*, web (WhatsApp) - todos os canais integrados e de Plugin | Não |
| Agente e modelos | agent, agents, models, routing | Não |
| Automação | hooks, cron, agent.heartbeat | Não |
| Sessões e mensagens | session, messages | Não |
| Ferramentas e mídia | tools, browser, skills, mcp, audio, talk | Não |
| UI e diversos | ui, logging, identity, bindings | Não |
| Servidor Gateway | gateway.* (porta, vínculo, autenticação, Tailscale, TLS, HTTP) | Sim |
| Infraestrutura | discovery, plugins | Sim |
gateway.reload e gateway.remote são exceções - alterá-los não aciona uma reinicialização.Planejamento de recarregamento
Quando você edita um arquivo-fonte referenciado por meio de$include, o OpenClaw planeja
o recarregamento a partir do layout criado na origem, não da visualização achatada em memória.
Isso mantém as decisões de hot-reload (aplicar a quente vs reiniciar) previsíveis, mesmo quando uma
única seção de nível superior fica em seu próprio arquivo incluído, como
plugins: { $include: "./plugins.json5" }. O planejamento de recarregamento falha de forma fechada se o
layout de origem for ambíguo.
RPC de configuração (atualizações programáticas)
Para ferramentas que gravam configuração pela API do Gateway, prefira este fluxo:config.schema.lookuppara inspecionar uma subárvore (nó de esquema raso + resumos de filhos)config.getpara buscar o snapshot atual maishashconfig.patchpara atualizações parciais (patch de mesclagem JSON: objetos são mesclados,nullexclui, arrays substituem)config.applysomente quando você pretende substituir toda a configuraçãoupdate.runpara autoatualização explícita mais reinicialização; incluacontinuationMessagequando a sessão pós-reinicialização deve executar um turno de acompanhamentoupdate.statuspara inspecionar o sentinela de reinicialização da atualização mais recente e verificar a versão em execução após uma reinicialização
config.schema.lookup como a primeira parada para documentação e restrições exatas
em nível de campo. Use Referência de configuração
quando precisarem do mapa de configuração mais amplo, padrões ou links para referências dedicadas
de subsistemas.
config.apply, config.patch, update.run) são
limitadas a 3 solicitações por 60 segundos por deviceId+clientIp. Solicitações de reinicialização
são agrupadas e então impõem um cooldown de 30 segundos entre ciclos de reinicialização.
update.status é somente leitura, mas restrito a administradores porque o sentinela de reinicialização pode
incluir resumos de etapas de atualização e finais de saída de comandos.config.apply quanto config.patch aceitam raw, baseHash, sessionKey,
note e restartDelayMs. baseHash é obrigatório para ambos os métodos quando uma
configuração já existe.
Variáveis de ambiente
O OpenClaw lê env vars do processo pai mais:.envdo diretório de trabalho atual (se presente)~/.openclaw/.env(fallback global)
Importação de env do shell (opcional)
Importação de env do shell (opcional)
OPENCLAW_LOAD_SHELL_ENV=1Substituição de env var em valores de configuração
Substituição de env var em valores de configuração
${VAR_NAME}:- Somente nomes em maiúsculas correspondem:
[A-Z_][A-Z0-9_]* - Vars ausentes/vazias geram um erro no carregamento
- Escape com
$${VAR}para saída literal - Funciona dentro de arquivos
$include - Substituição inline:
"${BASE}/v1"→"https://api.example.com/v1"
Refs de segredo (env, file, exec)
Refs de segredo (env, file, exec)
secrets.providers para env/file/exec) estão em Gerenciamento de segredos.
Os caminhos de credenciais compatíveis estão listados em Superfície de credenciais SecretRef.Referência completa
Para a referência completa campo a campo, consulte Referência de configuração.Relacionado: Exemplos de configuração · Referência de configuração · Doctor