Gateway
Verificações de integridade
Guia curto para verificar a conectividade dos canais sem fazer suposições.
Verificações rápidas
openclaw status- resumo local: acessibilidade/modo do Gateway, aviso de atualização, tempo desde a autenticação do canal vinculado, sessões + atividade recente.openclaw status --all- diagnóstico local completo (somente leitura, com cores, seguro para colar ao depurar).openclaw status --deep- solicita ao Gateway em execução uma sondagem em tempo real (healthcomprobe:true), incluindo sondagens de canal por conta quando compatíveis.openclaw status --usage- exibe instantâneos de uso/cota do provedor de modelos.openclaw health- solicita ao Gateway em execução seu instantâneo de integridade (somente WS; sem sockets diretos dos canais pela CLI).openclaw health --verbose(alias--debug) - força uma sondagem de integridade em tempo real e imprime detalhes da conexão com o Gateway.openclaw health --json- saída do instantâneo de integridade em formato legível por máquina.- Envie
/statuscomo um comando de chat independente em qualquer canal para receber uma resposta de status sem invocar o agente. - Logs: acompanhe
/tmp/openclaw/openclaw-*.loge filtre porweb-heartbeat,web-reconnect,web-auto-reply,web-inbound.
Para o Discord e outros provedores de chat, as linhas de sessão não indicam se o socket está ativo.
openclaw sessions, sessions.list do Gateway e a ferramenta sessions_list do agente
leem o estado armazenado das conversas. Um provedor pode se reconectar e exibir um status
de canal íntegro antes que qualquer nova linha de sessão seja materializada. Use os comandos
de status do canal e de integridade acima para verificar a conectividade em tempo real.
Diagnóstico aprofundado
- Credenciais no disco:
ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json(a data de modificação deve ser recente). - Armazenamento de sessões:
ls -l ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. A contagem e os destinatários recentes são exibidos porstatus. - Fluxo de revinculação:
openclaw channels logout && openclaw channels login --verbosequando os códigos de status 409-515 ouloggedOutaparecem nos logs. O fluxo de login por QR é reiniciado automaticamente uma vez para o status 515 após o pareamento. - O diagnóstico é ativado por padrão (
diagnostics.enabled: falseo desativa). Os eventos de memória registram contagens de bytes de RSS/heap e pressão por limite/crescimento; a pressão crítica de memória é registrada pelo logger do Gateway e, quandodiagnostics.memoryPressureSnapshot: trueestá definido, também grava um pacote de estabilidade anterior ao OOM (estatísticas do heap V8, contadores de cgroup do Linux quando disponíveis, contagens de recursos ativos e os maiores arquivos de sessão/transcrição por caminho relativo anonimizado). Os avisos de atividade registram atraso/utilização do loop de eventos, proporção de núcleos de CPU e contagens de sessões ativas/em espera/na fila quando o processo está em execução, mas saturado. Os eventos de payload excessivo registram o que foi rejeitado/truncado/dividido, além dos tamanhos e limites, mas nunca o texto das mensagens, conteúdo dos anexos, corpos de Webhooks, corpos brutos de solicitações/respostas, tokens, cookies ou valores secretos. - O mesmo Heartbeat aciona o registrador de estabilidade limitado:
openclaw gateway stability(ou a RPCdiagnostics.stabilitydo Gateway). Encerramentos fatais do Gateway, tempos limite de desligamento, falhas de inicialização após reinício e (quandodiagnostics.memoryPressureSnapshot: true) pressão crítica de memória mantêm o instantâneo mais recente em~/.openclaw/logs/stability/. Inspecione o pacote mais recente comopenclaw gateway stability --bundle latest. - Para relatar bugs, execute
openclaw gateway diagnostics exporte anexe o arquivo zip gerado: um resumo em Markdown, o pacote de estabilidade mais recente, metadados de log sanitizados, instantâneos sanitizados de status/integridade do Gateway e o formato da configuração. Textos de chat, corpos de Webhooks, saídas de ferramentas, credenciais, cookies, identificadores de contas/mensagens e valores secretos são omitidos ou anonimizados. Consulte Exportação de diagnóstico.
Configuração do monitor de integridade
gateway.channelHealthCheckMinutes: frequência com que o Gateway verifica a integridade dos canais. Padrão:5. Defina como0para desativar globalmente as reinicializações do monitor de integridade.gateway.channelStaleEventThresholdMinutes: por quanto tempo um canal conectado pode permanecer ocioso antes que o monitor de integridade o considere obsoleto e o reinicie. Padrão:30. Mantenha esse valor maior ou igual agateway.channelHealthCheckMinutes.gateway.channelMaxRestartsPerHour: limite móvel de uma hora para reinicializações do monitor de integridade por canal/conta. Padrão:10.channels.<provider>.healthMonitor.enabled: desativa as reinicializações do monitor de integridade para um canal específico, mantendo o monitoramento global ativado.channels.<provider>.accounts.<accountId>.healthMonitor.enabled: substituição para múltiplas contas que prevalece sobre a configuração no nível do canal.- Atualmente, essas substituições por canal se aplicam aos canais integrados que as disponibilizam: Discord, Google Chat, iMessage, IRC, Microsoft Teams, Signal, Slack, Telegram e WhatsApp.
Monitoramento de disponibilidade
Serviços externos de monitoramento de disponibilidade devem usar o endpoint dedicado /health, não /v1/chat/completions.
- USE:
GET /health- resposta instantânea, nenhuma sessão criada, nenhuma chamada ao LLM, retorna{"ok":true,"status":"live"} - NÃO USE:
/v1/chat/completionspara verificações de integridade - cada solicitação cria uma sessão completa do agente com instantâneo de Skills, montagem de contexto e chamadas ao LLM
Quando nenhum cabeçalho x-openclaw-session-key nem campo user é fornecido, /v1/chat/completions gera uma nova sessão aleatória para cada solicitação. Serviços de monitoramento que consultam a cada 15 minutos criam aproximadamente 96 sessões/dia, cada uma consumindo 4-22KB. Com o tempo, isso causa inchaço no armazenamento de sessões e pode levar ao estouro da janela de contexto.
Exemplos de configuração de serviços de monitoramento
- BetterStack: Defina a URL da verificação de integridade como
https://<your-gateway-host>:<port>/health - UptimeRobot: Adicione um novo monitor HTTP com a URL
https://<your-gateway-host>:<port>/health - Genérico: Qualquer solicitação HTTP GET para
/healthretorna 200 com{"ok":true}quando o Gateway está íntegro
Quando algo falha
logged outou status 409-515 -> revincule comopenclaw channels logoute depoisopenclaw channels login.- Gateway inacessível -> inicie-o:
openclaw gateway --port 18789(use--forcese a porta estiver ocupada). - Nenhuma mensagem recebida -> confirme se o telefone vinculado está on-line e se o remetente é permitido (
channels.whatsapp.allowFrom); para chats em grupo, verifique se a lista de permissões + as regras de menção correspondem (channels.whatsapp.groups,agents.list[].groupChat.mentionPatterns).
Comando dedicado de "integridade"
openclaw health solicita ao Gateway em execução seu instantâneo de integridade (sem sockets
diretos dos canais pela CLI). Por padrão, retorna um instantâneo recente do Gateway armazenado
em cache, que é atualizado pelo Gateway em segundo plano; --verbose força uma sondagem em
tempo real. O comando informa o tempo desde a vinculação das credenciais/autenticação quando
disponível, resumos de sondagem por canal, resumo do armazenamento de sessões e duração da
sondagem. Ele encerra com código diferente de zero se o Gateway estiver inacessível ou se a
sondagem falhar/esgotar o tempo limite.
Opções:
--json: saída JSON legível por máquina--timeout <ms>: substitui o tempo limite padrão de 10s da sondagem--verbose: força uma sondagem em tempo real e imprime detalhes da conexão com o Gateway--debug: alias de--verbose
O instantâneo de integridade inclui: ok (booleano), ts (carimbo de data/hora), durationMs (tempo da sondagem), status por canal, disponibilidade do agente e resumo do armazenamento de sessões.