Gateway
Manuale operativo del Gateway
Usa questa pagina per l'avvio del giorno 1 e le operazioni del giorno 2 del servizio Gateway.
Diagnostica basata sui sintomi con sequenze di comandi esatte e firme dei log.
Guida alla configurazione orientata alle attività + riferimento completo alla configurazione.
Contratto SecretRef, comportamento dello snapshot runtime e operazioni di migrazione/ricaricamento.
Regole esatte di destinazione/percorso di secrets apply e comportamento dei profili di autenticazione solo con riferimenti.
Avvio locale in 5 minuti
Avvia il 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
Verifica lo stato del servizio
openclaw gateway status
openclaw status
openclaw logs --follow
Baseline integro: Runtime: running, Connectivity probe: ok e Capability: ... che corrisponde a ciò che ti aspetti. Usa openclaw gateway status --require-rpc quando ti serve una prova RPC con ambito di lettura, non solo la raggiungibilità.
Convalida la disponibilità dei canali
openclaw channels status --probe
Con un gateway raggiungibile, questo esegue probe live dei canali per account e audit facoltativi. Se il gateway non è raggiungibile, la CLI ripiega invece su riepiloghi dei canali basati solo sulla configurazione anziché sull'output dei probe live.
Modello runtime
- Un processo sempre attivo per routing, piano di controllo e connessioni ai canali.
- Porta singola multiplexed per:
- Controllo/RPC WebSocket
- API HTTP, compatibili con OpenAI (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Control UI e hook
- Modalità di bind predefinita:
loopback. - L'autenticazione è richiesta per impostazione predefinita. Le configurazioni con segreto condiviso usano
gateway.auth.token/gateway.auth.password(oppureOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), e le configurazioni reverse proxy non-loopback possono usaregateway.auth.mode: "trusted-proxy".
Endpoint compatibili con OpenAI
La superficie di compatibilità a maggior valore di OpenClaw ora è:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Perché questo set è importante:
- La maggior parte delle integrazioni Open WebUI, LobeChat e LibreChat verifica prima
/v1/models. - Molte pipeline RAG e di memoria si aspettano
/v1/embeddings. - I client agent-native preferiscono sempre più spesso
/v1/responses.
Nota di pianificazione:
/v1/modelsè progettato prima di tutto per gli agenti: restituisceopenclaw,openclaw/defaulteopenclaw/<agentId>.openclaw/defaultè l'alias stabile che punta sempre all'agente predefinito configurato.- Usa
x-openclaw-modelquando vuoi sovrascrivere provider/modello backend; altrimenti restano in controllo il modello normale e la configurazione degli embedding dell'agente selezionato.
Tutti questi endpoint vengono eseguiti sulla porta principale del Gateway e usano lo stesso confine di autenticazione dell'operatore fidato del resto dell'API HTTP del Gateway.
Precedenza di porta e bind
| Impostazione | Ordine di risoluzione |
|---|---|
| Porta Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Modalità di bind | CLI/override → gateway.bind → loopback |
I servizi gateway installati registrano il valore risolto di --port nei metadati del supervisor. Dopo aver modificato gateway.port, esegui openclaw doctor --fix oppure openclaw gateway install --force affinché launchd/systemd/schtasks avvii il processo sulla nuova porta.
L'avvio del Gateway usa la stessa porta effettiva e lo stesso bind quando inizializza le origini locali della
Control UI per i bind non-loopback. Per esempio, --bind lan --port 3000
inizializza http://localhost:3000 e http://127.0.0.1:3000 prima dell'esecuzione della
convalida runtime. Aggiungi esplicitamente eventuali origini di browser remoti, come URL di proxy HTTPS, a
gateway.controlUi.allowedOrigins.
Modalità di hot reload
gateway.reload.mode |
Comportamento |
|---|---|
off |
Nessun ricaricamento della configurazione |
hot |
Applica solo modifiche sicure a caldo |
restart |
Riavvia in caso di modifiche che richiedono ricaricamento |
hybrid (predefinita) |
Applica a caldo quando sicuro, riavvia quando necessario |
Set di comandi per operatori
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 serve per il rilevamento aggiuntivo dei servizi (LaunchDaemons/unità di sistema systemd/schtasks), non per un probe di salute RPC più approfondito.
Gateway multipli (stesso host)
La maggior parte delle installazioni dovrebbe eseguire un gateway per macchina. Un singolo gateway può ospitare più agenti e canali.
Hai bisogno di più gateway solo quando vuoi intenzionalmente isolamento o un bot di soccorso.
Controlli utili:
openclaw gateway status --deep
openclaw gateway probe
Cosa aspettarsi:
gateway status --deeppuò riportareOther gateway-like services detected (best effort)e stampare suggerimenti di pulizia quando sono ancora presenti installazioni launchd/systemd/schtasks obsolete.gateway probepuò avvisare dimultiple reachable gatewaysquando risponde più di una destinazione.- Se è intenzionale, isola porte, configurazione/stato e radici del workspace per ciascun gateway.
Checklist per istanza:
gateway.portunivocoOPENCLAW_CONFIG_PATHunivocoOPENCLAW_STATE_DIRunivocoagents.defaults.workspaceunivoco
Esempio:
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
Configurazione dettagliata: /gateway/multiple-gateways.
Accesso remoto
Preferito: Tailscale/VPN. Ripiego: tunnel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@host
Quindi connetti i client localmente a ws://127.0.0.1:18789.
Vedi: Gateway remoto, Autenticazione, Tailscale.
Supervisione e ciclo di vita del servizio
Usa esecuzioni supervisionate per un'affidabilità simile alla produzione.
macOS (launchd)
openclaw gateway install
openclaw gateway status
openclaw gateway restart
openclaw gateway stop
Usa openclaw gateway restart per i riavvii. Non concatenare openclaw gateway stop e openclaw gateway start; su macOS, gateway stop disabilita intenzionalmente il LaunchAgent prima di arrestarlo.
Le etichette LaunchAgent sono ai.openclaw.gateway (predefinita) oppure ai.openclaw.<profile> (profilo con nome). openclaw doctor controlla e ripara le derive della configurazione del servizio.
Linux (utente systemd)
openclaw gateway install
systemctl --user enable --now openclaw-gateway[-<profile>].service
openclaw gateway status
Per la persistenza dopo il logout, abilita il lingering:
sudo loginctl enable-linger <user>
Esempio manuale di unità utente quando serve un percorso di installazione personalizzato:
[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
L'avvio gestito nativo su Windows usa una Scheduled Task denominata OpenClaw Gateway
(oppure OpenClaw Gateway (<profile>) per i profili con nome). Se la creazione della Scheduled Task
viene negata, OpenClaw ripiega su un launcher per utente nella cartella Startup
che punta a gateway.cmd dentro la directory di stato.
Linux (servizio di sistema)
Usa un'unità di sistema per host multiutente/sempre attivi.
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway[-<profile>].service
Usa lo stesso corpo del servizio dell'unità utente, ma installalo sotto
/etc/systemd/system/openclaw-gateway[-<profile>].service e modifica
ExecStart= se il binario openclaw si trova altrove.
Non lasciare anche che openclaw doctor --fix installi un servizio gateway a livello utente per lo stesso profilo/porta. Doctor rifiuta quell'installazione automatica quando trova un servizio OpenClaw gateway a livello di sistema; usa OPENCLAW_SERVICE_REPAIR_POLICY=external quando l'unità di sistema possiede il ciclo di vita.
Percorso rapido del profilo dev
openclaw --dev setup
openclaw --dev gateway --allow-unconfigured
openclaw --dev status
I valori predefiniti includono stato/configurazione isolati e porta gateway base 19001.
Riferimento rapido del protocollo (vista operatore)
- Il primo frame del client deve essere
connect. - Il Gateway restituisce lo snapshot
hello-ok(presence,health,stateVersion,uptimeMs, limiti/policy). hello-ok.features.methods/eventssono un elenco di discovery conservativo, non un dump generato di ogni route helper chiamabile.- Richieste:
req(method, params)→res(ok/payload|error). - Gli eventi comuni includono
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, eventi del ciclo di vita di pairing/approvazione eshutdown.
Le esecuzioni dell'agente sono in due fasi:
- Ack accettato immediato (
status:"accepted") - Risposta finale di completamento (
status:"ok"|"error"), con eventiagentin streaming nel mezzo.
Vedi la documentazione completa del protocollo: Protocollo Gateway.
Controlli operativi
Liveness
- Apri WS e invia
connect. - Aspettati una risposta
hello-okcon snapshot.
Readiness
openclaw gateway status
openclaw channels status --probe
openclaw health
Recupero dei gap
Gli eventi non vengono riprodotti. In caso di gap di sequenza, aggiorna lo stato (health, system-presence) prima di continuare.
Firme di errore comuni
| Firma | Problema probabile |
|---|---|
refusing to bind gateway ... without auth |
Bind non-loopback senza un percorso di autenticazione gateway valido |
another gateway instance is already listening / EADDRINUSE |
Conflitto di porta |
Gateway start blocked: set gateway.mode=local |
Configurazione impostata in modalità remota, oppure stamp della modalità locale mancante da una configurazione danneggiata |
unauthorized durante la connessione |
Mancata corrispondenza di autenticazione tra client e gateway |
Per le sequenze diagnostiche complete, usa Risoluzione dei problemi del Gateway.
Garanzie di sicurezza
- I client del protocollo Gateway falliscono rapidamente quando il Gateway non è disponibile (nessun fallback implicito al canale diretto).
- I primi frame non validi/non di connessione vengono rifiutati e chiusi.
- L'arresto graceful emette l'evento
shutdownprima della chiusura del socket.
Correlati: