Substituições de depuração em tempo de execução
/debug define substituições de configuração somente em tempo de execução (na memória, não no disco). Desativado por padrão; ative com commands.debug: true.
/debug reset limpa todas as substituições e retorna à configuração armazenada em disco.
Saída de rastreamento da sessão
/trace mostra linhas de rastreamento/depuração pertencentes ao plugin para uma sessão, sem ativar o modo totalmente detalhado. Use-o para diagnósticos de plugins, como resumos de depuração da Active Memory; use /verbose para a saída normal de status/ferramentas.
Rastreamento do ciclo de vida do Plugin
DefinaOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 para obter uma análise fase a fase de metadados, descoberta, registro, espelho de tempo de execução, mutação de configuração e trabalho de atualização dos plugins. A saída é gravada em stderr, portanto a saída JSON dos comandos permanece analisável.
node dist/entry.js ... após pnpm build; pnpm openclaw ... também mede a sobrecarga do executor do código-fonte.
Inicialização da CLI e criação de perfil de comandos
Benchmarks de inicialização versionados:OPENCLAW_RUN_NODE_CPU_PROF_DIR:
.cpuprofile para o comando. Use isso antes de adicionar instrumentação temporária ao código do comando.
Para travamentos na inicialização que pareçam trabalho síncrono do sistema de arquivos ou do carregador de módulos, adicione o sinalizador de rastreamento de E/S síncrona do Node por meio do executor do código-fonte:
pnpm gateway:watch mantém esse sinalizador desativado por padrão para o processo filho monitorado do Gateway; defina OPENCLAW_TRACE_SYNC_IO=1 quando também quiser a saída de rastreamento de E/S síncrona no modo de monitoramento.
Modo de monitoramento do Gateway
openclaw-gateway-watch-<profile> (por exemplo, openclaw-gateway-watch-main), com um sufixo de porta, como openclaw-gateway-watch-dev-19001, adicionado somente quando OPENCLAW_GATEWAY_PORT difere da porta padrão 18789. A sessão é anexada automaticamente em terminais interativos; shells não interativos, CI e chamadas de execução de agentes permanecem desanexados e exibem instruções de conexão:
--force do monitor libera o listener atual, mas não desativa um serviço supervisionado. Caso contrário, um serviço launchd, systemd ou Scheduled Task pode reiniciar e substituir o Gateway monitorado.
Modo em primeiro plano sem tmux:
--benchmark antes de invocar o Gateway e grava um arquivo V8 .cpuprofile por encerramento de processo filho do Gateway em .artifacts/gateway-watch-profiles/. Interrompa ou reinicie o gateway monitorado para descarregar o perfil atual e depois abra-o com o Chrome DevTools ou o Speedscope:
--benchmark-dir <path>: grava os perfis em outro local.--benchmark-no-force: ignora a limpeza padrão da porta feita por--forcee falha imediatamente se a porta do Gateway já estiver em uso.
OPENCLAW_TRACE_SYNC_IO=1 com --benchmark para obter tanto os perfis de CPU quanto os rastreamentos de pilha de E/S síncrona; no modo de benchmark, esses blocos de rastreamento são gravados em gateway-watch-output.log no diretório do benchmark (filtrados do painel do terminal), enquanto os logs normais do Gateway permanecem visíveis.
O wrapper do tmux transfere seletores comuns e não secretos do tempo de execução para o painel, incluindo OPENCLAW_PROFILE, OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, OPENCLAW_GATEWAY_PORT e OPENCLAW_SKIP_CHANNELS. Coloque as credenciais do provedor no seu perfil/configuração normal ou use o modo bruto em primeiro plano para segredos efêmeros pontuais.
Se o Gateway monitorado encerrar durante a inicialização, o monitor executará openclaw doctor --fix --non-interactive uma vez e reiniciará o processo filho do Gateway. Defina OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0 para ver a falha de inicialização original sem a etapa de reparo exclusiva para desenvolvimento.
Por padrão, o painel tmux gerenciado exibe logs coloridos do Gateway; defina FORCE_COLOR=0 ao iniciar pnpm gateway:watch para desativar a saída ANSI.
O monitor reinicia quando há alterações em arquivos relevantes para a compilação em src/, arquivos-fonte de extensões, metadados package.json e openclaw.plugin.json das extensões, tsconfig.json, package.json e tsdown.config.ts. Alterações nos metadados das extensões reiniciam o gateway sem forçar uma recompilação; alterações no código-fonte e na configuração ainda recompilam dist primeiro.
Adicione sinalizadores da CLI do gateway após gateway:watch, e eles serão repassados a cada reinicialização. Executar novamente o mesmo comando de monitoramento recria o painel tmux nomeado; o monitor bruto mantém um bloqueio de monitor único para que processos-pai de monitoramento duplicados sejam substituídos em vez de se acumularem.
Perfil de desenvolvimento + gateway de desenvolvimento (—dev)
Dois sinalizadores--dev separados:
--devglobal (perfil): isola o estado em~/.openclaw-deve define a porta padrão do gateway como19001(as portas derivadas mudam junto com ela).gateway --dev: instrui o Gateway a criar automaticamente uma configuração e um espaço de trabalho padrão quando estiverem ausentes (e ignorar o bootstrap).
pnpm openclaw ....
O que isso faz:
-
Isolamento do perfil (
--devglobal)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(as portas do navegador/canvas mudam de acordo)
-
Bootstrap de desenvolvimento (
gateway --dev)- Grava uma configuração mínima caso esteja ausente (
gateway.mode=local, vinculação a local loopback). - Define
agents.defaults.workspacecomo o espaço de trabalho de desenvolvimento eagents.defaults.skipBootstrap=true. - Cria os arquivos do espaço de trabalho caso estejam ausentes:
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md. - Identidade padrão: C3-PO (droide de protocolo).
pnpm gateway:devtambém defineOPENCLAW_SKIP_CHANNELS=1para ignorar os provedores de canais.
- Grava uma configuração mínima caso esteja ausente (
--dev é um sinalizador de perfil global e é consumido por alguns executores. Se precisar especificá-lo explicitamente, use a forma com variável de ambiente:--reset apaga a configuração, as credenciais, as sessões e o espaço de trabalho de desenvolvimento (movido para a lixeira, não excluído) e depois recria a configuração de desenvolvimento padrão.
Registro do stream bruto
O OpenClaw pode registrar o stream bruto do assistente antes de qualquer filtragem/formatação. Essa é a melhor maneira de verificar se o raciocínio está chegando como deltas de texto simples (ou como blocos de pensamento separados). Ative-o por meio da CLI:~/.openclaw/logs/raw-stream.jsonl
Observações de segurança
- Os logs do stream bruto podem incluir prompts completos, saída de ferramentas e dados do usuário.
- Mantenha os logs localmente e exclua-os após a depuração.
- Se compartilhar os logs, remova primeiro os segredos e dados de identificação pessoal.
Depuração no VSCode
Mapas de código-fonte são necessários porque a compilação aplica hashes aos nomes dos arquivos gerados. Olaunch.json incluído tem como alvo o serviço do Gateway:
- Rebuild and Debug Gateway - exclui
/diste recompila com a depuração ativada antes de iniciar o Gateway. - Debug Gateway - depura uma compilação existente sem alterar
/dist.
Configuração
- Abra Run and Debug (na Activity Bar ou com
Ctrl+Shift+D). - Selecione Rebuild and Debug Gateway e pressione Start Debugging.
- Ative os mapas de código-fonte em um terminal:
- Linux/macOS:
export OUTPUT_SOURCE_MAPS=1 - Windows (PowerShell):
$env:OUTPUT_SOURCE_MAPS="1" - Windows (CMD):
set OUTPUT_SOURCE_MAPS=1
- Linux/macOS:
- Recompile:
pnpm clean:dist && pnpm build - Selecione Debug Gateway e pressione Start Debugging.
src/; o depurador os mapeia para o JavaScript compilado por meio dos mapas de código-fonte.
Observações
- Rebuild and Debug Gateway exclui
/diste executa umpnpm buildcompleto com mapas de código-fonte em cada inicialização. - Debug Gateway pode ser iniciado/interrompido sem afetar
/dist, mas você gerencia o ciclo de compilação em um terminal separado. - Edite os
argsdelaunch.jsonpara depurar outros subcomandos da CLI. - Para usar a CLI compilada em outras tarefas (por exemplo,
dashboard --no-opencaso sua sessão de depuração gere um novo token de autenticação), execute-a em outro terminal:node ./openclaw.mjsou use um alias comoalias openclaw-build="node $(pwd)/openclaw.mjs".