Gateway
Manual de operações do Gateway
Use esta página para a inicialização no dia 1 e as operações no dia 2 do serviço Gateway.
Diagnósticos orientados por sintomas com sequências exatas de comandos e assinaturas de logs.
Guia de configuração orientado por tarefas + referência completa de configuração.
Contrato SecretRef, comportamento de snapshot em runtime e operações de migração/recarga.
Regras exatas de destino/caminho de secrets apply e comportamento de perfil de autenticação somente por referência.
Inicialização local em 5 minutos
Inicie o Gateway
openclaw gateway --port 18789
# debug/trace mirrored to stdio
openclaw gateway --port 18789 --verbose
# force-kill listener on selected port, then start
openclaw gateway --force
Verifique a integridade do serviço
openclaw gateway status
openclaw status
openclaw logs --follow
Linha de base saudável: Runtime: running, Connectivity probe: ok e Capability: ... que corresponda ao que você espera. Use openclaw gateway status --require-rpc quando precisar de prova de RPC com escopo de leitura, não apenas alcançabilidade.
Valide a prontidão do canal
openclaw channels status --probe
Com um gateway alcançável, isso executa sondagens de canal ao vivo por conta e auditorias opcionais. Se o gateway estiver inalcançável, a CLI volta para resumos de canal somente por configuração em vez da saída de sondagem ao vivo.
Modelo de runtime
- Um processo sempre ativo para roteamento, plano de controle e conexões de canal.
- Porta única 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. - Autenticação é exigida por padrão. Configurações com segredo compartilhado usam
gateway.auth.token/gateway.auth.password(ouOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), e configurações de proxy reverso fora de loopback podem usargateway.auth.mode: "trusted-proxy".
Endpoints compatíveis com OpenAI
A superfície de compatibilidade de maior alavancagem do OpenClaw agora é:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Por que este conjunto importa:
- A maioria das integrações Open WebUI, LobeChat e LibreChat consulta
/v1/modelsprimeiro. - Muitos pipelines de RAG e memória esperam
/v1/embeddings. - Clientes nativos de agente preferem cada vez mais
/v1/responses.
Nota de planejamento:
/v1/modelsé agent-first: retornaopenclaw,openclaw/defaulteopenclaw/<agentId>.openclaw/defaulté o alias estável que sempre mapeia para o agente padrão configurado.- Use
x-openclaw-modelquando quiser uma substituição de provedor/modelo de backend; caso contrário, a configuração normal de modelo e embeddings do agente selecionado permanece no controle.
Todos eles rodam 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
| Configuração | Ordem de resolução |
|---|---|
| Porta do Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Modo de bind | CLI/substituição → gateway.bind → loopback |
Serviços de gateway instalados registram o --port resolvido nos metadados do supervisor. Após alterar gateway.port, execute openclaw doctor --fix ou openclaw gateway install --force para que launchd/systemd/schtasks inicie o processo na nova porta.
A inicialização do Gateway usa a mesma porta e bind efetivos ao semear origens locais da
UI de controle para binds fora de loopback. Por exemplo, --bind lan --port 3000
semeia http://localhost:3000 e http://127.0.0.1:3000 antes que a validação
de runtime execute. Adicione explicitamente quaisquer origens de navegador remoto, como URLs de proxy HTTPS, a
gateway.controlUi.allowedOrigins.
Modos de recarga a quente
gateway.reload.mode |
Comportamento |
|---|---|
off |
Sem recarga de configuração |
hot |
Aplica apenas alterações seguras a quente |
restart |
Reinicia em alterações que exigem recarga |
hybrid (padrão) |
Aplica a quente quando seguro, reinicia quando necessário |
Conjunto de comandos do operador
openclaw gateway status
openclaw gateway status --deep # adds a system-level service scan
openclaw gateway status --json
openclaw gateway install
openclaw gateway restart
openclaw gateway stop
openclaw secrets reload
openclaw logs --follow
openclaw doctor
gateway status --deep é para descoberta extra de serviços (LaunchDaemons/unidades systemd de sistema/schtasks), não uma sondagem RPC de integridade 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 isolamento intencionalmente ou um bot de resgate.
Verificações úteis:
openclaw gateway status --deep
openclaw gateway probe
O que esperar:
gateway status --deeppode informarOther gateway-like services detected (best effort)e imprimir dicas de limpeza quando instalações obsoletas de launchd/systemd/schtasks ainda existirem.gateway probepode avisar sobremultiple reachable gatewaysquando mais de um destino responder.- Se isso for intencional, isole portas, configuração/estado e raízes de workspace por gateway.
Checklist por instância:
gateway.portexclusivoOPENCLAW_CONFIG_PATHexclusivoOPENCLAW_STATE_DIRexclusivoagents.defaults.workspaceexclusivo
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
Configuração detalhada: /gateway/multiple-gateways.
Acesso remoto
Preferido: Tailscale/VPN. Alternativa: túnel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@host
Então conecte clientes localmente a ws://127.0.0.1:18789.
Veja: Gateway remoto, Autenticação, Tailscale.
Supervisão e ciclo de vida do serviço
Use execuções supervisionadas para confiabilidade semelhante à produção.
macOS (launchd)
openclaw gateway install
openclaw gateway status
openclaw gateway restart
openclaw gateway stop
Use openclaw gateway restart para reinicializações. Não encadeie openclaw gateway stop e openclaw gateway start; no macOS, gateway stop desabilita intencionalmente o LaunchAgent antes de pará-lo.
Os rótulos do LaunchAgent são ai.openclaw.gateway (padrão) ou ai.openclaw.<profile> (perfil nomeado). openclaw doctor audita e repara desvios de configuração do serviço.
Linux (systemd user)
openclaw gateway install
systemctl --user enable --now openclaw-gateway[-<profile>].service
openclaw gateway status
Para persistência após logout, habilite lingering:
sudo loginctl enable-linger <user>
Exemplo manual de unidade de usuário quando você precisa de um caminho de instalação personalizado:
[Unit]
Description=OpenClaw Gateway
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/openclaw gateway --port 18789
Restart=always
RestartSec=5
TimeoutStopSec=30
TimeoutStartSec=30
SuccessExitStatus=0 143
KillMode=control-group
[Install]
WantedBy=default.target
Windows (nativo)
openclaw gateway install
openclaw gateway status --json
openclaw gateway restart
openclaw gateway stop
A inicialização gerenciada nativa do Windows usa uma Tarefa Agendada chamada OpenClaw Gateway
(ou OpenClaw Gateway (<profile>) para perfis nomeados). Se a criação da Tarefa Agendada
for negada, o OpenClaw volta para um inicializador por usuário na pasta de Inicialização
que aponta para gateway.cmd dentro do diretório de estado.
Linux (serviço de sistema)
Use uma unidade de sistema para hosts multiusuário/sempre ativos.
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway[-<profile>].service
Use o mesmo corpo de serviço da unidade de usuário, mas instale-o em
/etc/systemd/system/openclaw-gateway[-<profile>].service e ajuste
ExecStart= se o binário openclaw estiver em outro lugar.
Não permita também que openclaw doctor --fix instale um serviço de gateway em nível de usuário para o mesmo perfil/porta. O Doctor recusa essa instalação automática quando encontra um serviço de gateway OpenClaw em nível de sistema; use OPENCLAW_SERVICE_REPAIR_POLICY=external quando a unidade de sistema for dona do ciclo de vida.
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 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 o snapshot
hello-ok(presence,health,stateVersion,uptimeMs, limites/política). hello-ok.features.methods/eventssão uma lista conservadora de descoberta, não um dump gerado de cada rota auxiliar chamável.- Solicitaçõ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 eshutdown.
Execuções de agente têm duas etapas:
- Confirmação aceita imediata (
status:"accepted") - Resposta final de conclusão (
status:"ok"|"error"), com eventosagenttransmitidos entre elas.
Veja a documentação completa do protocolo: Protocolo do Gateway.
Verificações operacionais
Atividade
- Abra WS e envie
connect. - Espere uma resposta
hello-okcom snapshot.
Prontidão
openclaw gateway status
openclaw channels status --probe
openclaw health
Recuperação de lacunas
Eventos não são reproduzidos. Em lacunas de sequência, atualize o estado (health, system-presence) antes de continuar.
Assinaturas comuns de falha
| Assinatura | Problema provável |
|---|---|
refusing to bind gateway ... without auth |
Bind fora de loopback sem um caminho válido de autenticação do gateway |
another gateway instance is already listening / EADDRINUSE |
Conflito de porta |
Gateway start blocked: set gateway.mode=local |
Configuração definida para modo remoto, ou carimbo de modo local ausente em uma configuração danificada |
unauthorized durante connect |
Incompatibilidade 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/que não são de conexão são rejeitados e fechados.
- O encerramento ordenado emite o evento
shutdownantes do fechamento do socket.
Relacionado: