Pular para o conteúdo principal

Runbook do gateway

Use esta página para a inicialização no primeiro dia e as operações do segundo dia do serviço Gateway.

Solução de problemas avançada

Diagnósticos orientados por sintomas com sequências exatas de comandos e assinaturas de logs.

Configuração

Guia de configuração orientado a tarefas + referência completa de configuração.

Gerenciamento de segredos

Contrato de SecretRef, comportamento de snapshot em runtime e operações de migração/recarga.

Contrato do plano de segredos

Regras exatas de alvo/caminho para secrets apply e comportamento de perfil de autenticação somente com referência.

Inicialização local em 5 minutos

1

Inicie o Gateway

openclaw gateway --port 18789
# depuração/rastreamento espelhado para stdio
openclaw gateway --port 18789 --verbose
# força o encerramento do listener na porta selecionada e depois inicia
openclaw gateway --force
2

Verifique a integridade do serviço

openclaw gateway status
openclaw status
openclaw logs --follow
Linha de base saudável: Runtime: running e RPC probe: ok.
3

Valide a prontidão dos canais

openclaw channels status --probe
Com um gateway acessível, isso executa sondagens ao vivo por conta nos canais e auditorias opcionais. Se o gateway estiver inacessível, a CLI recorre a resumos de canais baseados apenas em configuração em vez da saída de sondagem ao vivo.
A recarga de configuração do Gateway observa o caminho do arquivo de configuração ativo (resolvido a partir dos padrões de perfil/estado, ou OPENCLAW_CONFIG_PATH quando definido). O modo padrão é gateway.reload.mode="hybrid". Após o primeiro carregamento bem-sucedido, o processo em execução serve o snapshot de configuração ativo em memória; uma recarga bem-sucedida troca esse snapshot de forma atômica.

Modelo de runtime

  • Um processo sempre ativo para roteamento, plano de controle e conexões de canais.
  • Uma única porta multiplexada para:
    • Controle/RPC por WebSocket
    • APIs HTTP, compatíveis com OpenAI (/v1/models, /v1/embeddings, /v1/chat/completions, /v1/responses, /tools/invoke)
    • UI de controle e hooks
  • Modo de bind padrão: loopback.
  • A autenticação é obrigatória por padrão. Configurações com segredo compartilhado usam gateway.auth.token / gateway.auth.password (ou OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD), e configurações com proxy reverso fora de loopback podem usar gateway.auth.mode: "trusted-proxy".

Endpoints compatíveis com OpenAI

A superfície de compatibilidade de maior impacto do OpenClaw agora é:
  • GET /v1/models
  • GET /v1/models/{id}
  • POST /v1/embeddings
  • POST /v1/chat/completions
  • POST /v1/responses
Por que esse conjunto importa:
  • A maioria das integrações com Open WebUI, LobeChat e LibreChat sonda /v1/models primeiro.
  • Muitos pipelines de RAG e memória esperam /v1/embeddings.
  • Clientes nativos de agentes cada vez mais preferem /v1/responses.
Nota de planejamento:
  • /v1/models é voltado a agentes: ele retorna openclaw, openclaw/default e openclaw/<agentId>.
  • openclaw/default é o alias estável que sempre aponta para o agente padrão configurado.
  • Use x-openclaw-model quando quiser uma substituição de provedor/modelo no backend; caso contrário, a configuração normal de modelo e embeddings do agente selecionado permanece no controle.
Todos esses endpoints executam na porta principal do Gateway e usam o mesmo limite de autenticação de operador confiável que o restante da API HTTP do Gateway.

Precedência de porta e bind

SettingResolution order
Porta do Gateway--portOPENCLAW_GATEWAY_PORTgateway.port18789
Modo de bindCLI/override → gateway.bindloopback

Modos de recarga a quente

gateway.reload.modeComportamento
offSem recarga de configuração
hotAplicar apenas alterações seguras a quente
restartReiniciar em alterações que exigem recarga
hybrid (padrão)Aplicar a quente quando seguro, reiniciar quando necessário

Conjunto de comandos do operador

openclaw gateway status
openclaw gateway status --deep   # adiciona uma varredura de serviço em nível de sistema
openclaw gateway status --json
openclaw gateway install
openclaw gateway restart
openclaw gateway stop
openclaw secrets reload
openclaw logs --follow
openclaw doctor
gateway status --deep serve para descoberta extra de serviços (LaunchDaemons/unidades systemd do sistema /schtasks), não para uma sondagem de integridade RPC mais profunda.

Vários gateways (mesmo host)

A maioria das instalações deve executar um gateway por máquina. Um único gateway pode hospedar vários agentes e canais. Você só precisa de vários gateways quando quiser intencionalmente isolamento ou um bot de resgate. Verificações úteis:
openclaw gateway status --deep
openclaw gateway probe
O que esperar:
  • gateway status --deep pode relatar Other gateway-like services detected (best effort) e imprimir dicas de limpeza quando ainda houver instalações obsoletas de launchd/systemd/schtasks.
  • gateway probe pode avisar sobre multiple reachable gateways quando mais de um alvo responder.
  • Se isso for intencional, isole portas, configuração/estado e raízes de workspace por gateway.
Configuração detalhada: /gateway/multiple-gateways.

Acesso remoto

Preferencial: Tailscale/VPN. Alternativa: túnel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@host
Em seguida, conecte os clientes localmente a ws://127.0.0.1:18789.
Túneis SSH não ignoram a autenticação do gateway. Para autenticação com segredo compartilhado, os clientes ainda precisam enviar token/password mesmo pelo túnel. Para modos com identidade, a requisição ainda precisa satisfazer esse caminho de autenticação.
Veja: Gateway remoto, Autenticação, Tailscale.

Supervisão e ciclo de vida do serviço

Use execuções supervisionadas para uma confiabilidade semelhante à de produção.
openclaw gateway install
openclaw gateway status
openclaw gateway restart
openclaw gateway stop
Os rótulos do LaunchAgent são ai.openclaw.gateway (padrão) ou ai.openclaw.<profile> (perfil nomeado). openclaw doctor audita e corrige desvios na configuração do serviço.

Vários gateways em um host

A maioria das configurações deve executar um Gateway. Use vários somente para isolamento/redundância estritos (por exemplo, um perfil de resgate). Checklist por instância:
  • gateway.port exclusivo
  • OPENCLAW_CONFIG_PATH exclusivo
  • OPENCLAW_STATE_DIR exclusivo
  • agents.defaults.workspace exclusivo
Exemplo:
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001
OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
Veja: Vários gateways.

Caminho rápido do perfil de desenvolvimento

openclaw --dev setup
openclaw --dev gateway --allow-unconfigured
openclaw --dev status
Os padrões incluem estado/configuração isolados e a porta base do gateway 19001.

Referência rápida do protocolo (visão do operador)

  • O primeiro frame do cliente deve ser connect.
  • O Gateway retorna um snapshot hello-ok (presence, health, stateVersion, uptimeMs, limites/política).
  • hello-ok.features.methods / events são uma lista conservadora de descoberta, não um dump gerado de todas as rotas auxiliares chamáveis.
  • Requisições: req(method, params)res(ok/payload|error).
  • Eventos comuns incluem connect.challenge, agent, chat, session.message, session.tool, sessions.changed, presence, tick, health, heartbeat, eventos de ciclo de vida de pareamento/aprovação e shutdown.
Execuções de agente têm duas etapas:
  1. Ack imediato de aceitação (status:"accepted")
  2. Resposta final de conclusão (status:"ok"|"error"), com eventos agent transmitidos entre uma e outra.
Veja a documentação completa do protocolo: Protocolo do Gateway.

Verificações operacionais

Atividade

  • Abra o WS e envie connect.
  • Espere uma resposta hello-ok com snapshot.

Prontidão

openclaw gateway status
openclaw channels status --probe
openclaw health

Recuperação de lacunas

Eventos não são reproduzidos novamente. Em lacunas de sequência, atualize o estado (health, system-presence) antes de continuar.

Assinaturas comuns de falha

SignatureProblema provável
refusing to bind gateway ... without authBind fora de loopback sem um caminho de autenticação válido do gateway
another gateway instance is already listening / EADDRINUSEConflito de porta
Gateway start blocked: set gateway.mode=localConfiguração em modo remoto, ou o marcador de modo local está ausente em uma configuração danificada
unauthorized during connectIncompatibilidade de autenticação entre cliente e gateway
Para sequências completas de diagnóstico, use Solução de problemas do Gateway.

Garantias de segurança

  • Clientes do protocolo Gateway falham rapidamente quando o Gateway está indisponível (sem fallback implícito para canal direto).
  • Primeiros frames inválidos/não connect são rejeitados e a conexão é encerrada.
  • O encerramento gracioso emite o evento shutdown antes do fechamento do socket.

Relacionado: