CLI commands
Diagnóstico
openclaw doctor
Verificações de integridade + correções rápidas para o gateway e os canais.
Relacionado:
- Solução de problemas: Solução de problemas
- Auditoria de segurança: Segurança
Exemplos
openclaw doctor
openclaw doctor --repair
openclaw doctor --deep
openclaw doctor --repair --non-interactive
openclaw doctor --generate-gateway-token
Para permissões específicas de canais, use as sondagens de canal em vez de doctor:
openclaw channels capabilities --channel discord --target channel:<channel-id>
openclaw channels status --probe
A sondagem direcionada de capacidades do Discord informa as permissões efetivas do bot no canal; a sondagem de status audita os canais do Discord configurados e os destinos de entrada automática por voz.
Opções
--no-workspace-suggestions: desativa sugestões de memória/pesquisa do espaço de trabalho--yes: aceita os padrões sem solicitar confirmação--repair: aplica reparos recomendados que não envolvem serviços sem solicitar confirmação; instalações e regravações do serviço de gateway ainda exigem confirmação interativa ou comandos explícitos de gateway--fix: alias para--repair--force: aplica reparos agressivos, incluindo sobrescrever configuração personalizada de serviço quando necessário--non-interactive: executa sem prompts; apenas migrações seguras e reparos que não envolvem serviços--generate-gateway-token: gera e configura um token de gateway--deep: examina serviços do sistema em busca de instalações extras de gateway e relata transferências recentes de reinicialização do supervisor do Gateway
Observações:
- No modo Nix (
OPENCLAW_NIX_MODE=1), as verificações somente leitura do doctor ainda funcionam, masdoctor --fix,doctor --repair,doctor --yesedoctor --generate-gateway-tokenficam desativados porqueopenclaw.jsoné imutável. Edite a fonte Nix desta instalação; para nix-openclaw, use o Guia de início rápido centrado no agente. - Prompts interativos (como correções de keychain/OAuth) só são executados quando stdin é um TTY e
--non-interactivenão está definido. Execuções sem interface (cron, Telegram, sem terminal) ignoram prompts. - Desempenho: execuções não interativas de
doctorpulam o carregamento ansioso de plugin para que verificações de integridade sem interface permaneçam rápidas. Sessões interativas ainda carregam plugins completamente quando uma verificação precisa da contribuição deles. --fix(alias para--repair) grava um backup em~/.openclaw/openclaw.json.bake descarta chaves de configuração desconhecidas, listando cada remoção.doctor --fix --non-interactiverelata definições de serviço de gateway ausentes ou obsoletas, mas não as instala nem regrava fora do modo de reparo de atualização. Executeopenclaw gateway installpara um serviço ausente, ouopenclaw gateway install --forcequando você quiser substituir intencionalmente o inicializador.- As verificações de integridade de estado agora detectam arquivos de transcrição órfãos no diretório de sessões. Arquivá-los como
.deleted.<timestamp>exige confirmação interativa;--fix,--yese execuções sem interface os deixam no lugar. - O doctor também examina
~/.openclaw/cron/jobs.json(oucron.store) em busca de formatos legados de tarefas cron e pode regravá-los no local antes que o agendador precise normalizá-los automaticamente em tempo de execução. - No Linux, o doctor avisa quando o crontab do usuário ainda executa o legado
~/.openclaw/bin/ensure-whatsapp.sh; esse script não é mais mantido e pode registrar falsas indisponibilidades do gateway do WhatsApp quando o cron não tem o ambiente do barramento de usuário do systemd. - Quando o WhatsApp está ativado, o doctor verifica se há um loop de eventos do Gateway degradado com clientes locais
openclaw-tuiainda em execução.doctor --fixinterrompe apenas clientes TUI locais verificados para que as respostas do WhatsApp não fiquem enfileiradas atrás de loops de atualização TUI obsoletos. - O doctor regrava referências legadas de modelo
openai-codex/*para referências canônicasopenai/*em modelos principais, fallbacks, substituições de heartbeat/subagente/compaction, hooks, substituições de modelo de canal e pins obsoletos de rota de sessão.--fixselecionaagentRuntime.id: "codex"apenas quando o plugin Codex está instalado, ativado, contribui com o harnesscodexe tem OAuth utilizável; caso contrário, selecionaagentRuntime.id: "pi"para que a rota permaneça no runner padrão do OpenClaw. - O doctor limpa o estado legado de preparação de dependências de plugin criado por versões antigas do OpenClaw. Ele também repara plugins baixáveis ausentes que são referenciados pela configuração, como
plugins.entries, canais configurados, configurações configuradas de provedor/pesquisa ou runtimes de agente configurados. Durante atualizações de pacote, o doctor pula o reparo de plugin do gerenciador de pacotes até que a substituição do pacote seja concluída; executeopenclaw doctor --fixnovamente depois se um plugin configurado ainda precisar de recuperação. Se o download falhar, o doctor relata o erro de instalação e preserva a entrada de plugin configurada para a próxima tentativa de reparo. - O doctor repara configuração obsoleta de plugin removendo ids de plugin ausentes de
plugins.allow/plugins.entries, além da configuração de canal pendente correspondente, destinos de heartbeat e substituições de modelo de canal quando a descoberta de plugins está saudável. - O doctor coloca em quarentena configuração inválida de plugin desativando a entrada
plugins.entries.<id>afetada e removendo o payloadconfiginválido dela. A inicialização do Gateway já pula apenas esse plugin incorreto para que outros plugins e canais possam continuar em execução. - Defina
OPENCLAW_SERVICE_REPAIR_POLICY=externalquando outro supervisor for responsável pelo ciclo de vida do gateway. O doctor ainda relata a integridade do gateway/serviço e aplica reparos que não envolvem serviços, mas pula instalação/início/reinício/bootstrap de serviço e limpeza de serviço legado. - No Linux, o doctor ignora unidades systemd extras inativas semelhantes a gateway e não regrava metadados de comando/ponto de entrada para um serviço de gateway systemd em execução durante o reparo. Pare o serviço primeiro ou use
openclaw gateway install --forcequando você quiser substituir intencionalmente o inicializador ativo. - O doctor migra automaticamente a configuração Talk plana legada (
talk.voiceId,talk.modelIde afins) paratalk.provider+talk.providers.<provider>. - Execuções repetidas de
doctor --fixnão relatam/aplicam mais normalização do Talk quando a única diferença é a ordem das chaves do objeto. - O doctor inclui uma verificação de prontidão da pesquisa de memória e pode recomendar
openclaw configure --section modelquando credenciais de embedding estão ausentes. - O doctor avisa quando nenhum proprietário de comando está configurado. O proprietário de comando é a conta do operador humano autorizada a executar comandos exclusivos do proprietário e aprovar ações perigosas. O pareamento por DM apenas permite que alguém converse com o bot; se você aprovou um remetente antes de o bootstrap do primeiro proprietário existir, defina
commands.ownerAllowFromexplicitamente. - O doctor avisa quando agentes em modo Codex estão configurados e ativos pessoais da CLI Codex existem no diretório inicial Codex do operador. Inicializações locais do servidor de aplicativo Codex usam diretórios iniciais isolados por agente, então use
openclaw migrate codex --dry-runpara inventariar ativos que devem ser promovidos deliberadamente. - O doctor avisa quando Skills permitidas para o agente padrão estão indisponíveis no ambiente de runtime atual porque bins, vars de ambiente, config ou requisitos de SO estão ausentes.
doctor --fixpode desativar essas Skills indisponíveis comskills.entries.<skill>.enabled=false; em vez disso, instale/configure o requisito ausente quando quiser manter a skill ativa. - Se o modo sandbox estiver ativado, mas o Docker estiver indisponível, o doctor relata um aviso de alto sinal com remediação (
install Dockerouopenclaw config set agents.defaults.sandbox.mode off). - Se arquivos legados de registro de sandbox (
~/.openclaw/sandbox/containers.jsonou~/.openclaw/sandbox/browsers.json) estiverem presentes, o doctor os relata;openclaw doctor --fixmigra entradas válidas para diretórios de registro particionados e coloca arquivos legados inválidos em quarentena. - Se
gateway.auth.token/gateway.auth.passwordforem gerenciados por SecretRef e estiverem indisponíveis no caminho do comando atual, o doctor relata um aviso somente leitura e não grava credenciais fallback em texto simples. - Se a inspeção de SecretRef de canal falhar em um caminho de correção, o doctor continua e relata um aviso em vez de sair antecipadamente.
- Após migrações de diretório de estado, o doctor avisa quando contas padrão ativadas do Telegram ou Discord dependem de fallback por env e
TELEGRAM_BOT_TOKENouDISCORD_BOT_TOKENestá indisponível para o processo do doctor. - A resolução automática de nome de usuário
allowFromdo Telegram (doctor --fix) exige um token do Telegram resolvível no caminho do comando atual. Se a inspeção do token estiver indisponível, o doctor relata um aviso e pula a resolução automática nessa passagem.
macOS: substituições de env do launchctl
Se você executou anteriormente launchctl setenv OPENCLAW_GATEWAY_TOKEN ... (ou ...PASSWORD), esse valor substitui seu arquivo de configuração e pode causar erros persistentes de "não autorizado".
launchctl getenv OPENCLAW_GATEWAY_TOKEN
launchctl getenv OPENCLAW_GATEWAY_PASSWORD
launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD