Runbook del gateway
Usa questa pagina per l’avvio del servizio Gateway il primo giorno e per le operazioni dal secondo giorno in poi.Risoluzione avanzata dei problemi
Diagnostica orientata ai sintomi con sequenze di comandi esatte e firme nei log.
Configurazione
Guida di configurazione orientata alle attività + riferimento completo della configurazione.
Gestione dei segreti
Contratto SecretRef, comportamento degli snapshot a runtime e operazioni di migrazione/ricarica.
Contratto del piano dei segreti
Regole esatte per target/path di
secrets apply e comportamento dei profili di autenticazione solo-ref.Avvio locale in 5 minuti
La ricarica della configurazione del Gateway osserva il percorso del file di configurazione attivo (risolto dai valori predefiniti del profilo/dello stato, oppure da
OPENCLAW_CONFIG_PATH se impostato).
La modalità predefinita è gateway.reload.mode="hybrid".
Dopo il primo caricamento riuscito, il processo in esecuzione serve lo snapshot di configurazione attivo in memoria; una ricarica riuscita sostituisce atomicamente quello snapshot.Modello di runtime
- Un unico processo sempre attivo per routing, control plane e connessioni dei canali.
- Una singola porta multiplexata per:
- control/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 con reverse proxy non-loopback possono usaregateway.auth.mode: "trusted-proxy".
Endpoint compatibili con OpenAI
La superficie di compatibilità a più alto impatto di OpenClaw ora è:GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
- La maggior parte delle integrazioni con Open WebUI, LobeChat e LibreChat esegue prima probe su
/v1/models. - Molte pipeline RAG e di memoria si aspettano
/v1/embeddings. - I client nativi per agenti preferiscono sempre più spesso
/v1/responses.
/v1/modelsè agent-first: restituisceopenclaw,openclaw/defaulteopenclaw/<agentId>.openclaw/defaultè l’alias stabile che mappa sempre all’agente predefinito configurato.- Usa
x-openclaw-modelquando vuoi un override del provider/modello di backend; altrimenti il normale modello e la configurazione degli embedding dell’agente selezionato restano in controllo.
Precedenza di porta e bind
| Impostazione | Ordine di risoluzione |
|---|---|
| Porta del Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Modalità bind | CLI/override → gateway.bind → loopback |
Modalità di hot reload
gateway.reload.mode | Comportamento |
|---|---|
off | Nessuna ricarica della configurazione |
hot | Applica solo modifiche sicure a caldo |
restart | Riavvia quando le modifiche richiedono reload |
hybrid (predefinita) | Applica a caldo quando sicuro, riavvia quando richiesto |
Set di comandi per operatori
gateway status --deep serve per discovery aggiuntiva dei servizi (unità di sistema LaunchDaemons/systemd/schtasks), non per un probe RPC di stato più approfondito.
Più gateway (stesso host)
La maggior parte delle installazioni dovrebbe eseguire un gateway per macchina. Un singolo gateway può ospitare più agenti e canali. Ti servono più gateway solo quando vuoi intenzionalmente isolamento oppure un bot di emergenza. Controlli utili:gateway status --deeppuò segnalareOther gateway-like services detected (best effort)e stampare suggerimenti di pulizia quando sono ancora presenti installazioni stale di launchd/systemd/schtasks.gateway probepuò avvisare conmultiple reachable gatewaysquando risponde più di una destinazione.- Se ciò è intenzionale, isola porte, config/stato e root del workspace per ciascun gateway.
Accesso remoto
Preferito: Tailscale/VPN. Alternativa: tunnel SSH.ws://127.0.0.1:18789.
Vedi: Gateway remoto, Autenticazione, Tailscale.
Supervisione e ciclo di vita del servizio
Usa esecuzioni supervisionate per un’affidabilità di tipo produzione.- macOS (launchd)
- Linux (systemd utente)
- Windows (nativo)
- Linux (servizio di sistema)
ai.openclaw.gateway (predefinita) oppure ai.openclaw.<profile> (profilo con nome). openclaw doctor verifica e ripara la deriva della configurazione del servizio.Più gateway su un host
La maggior parte delle configurazioni dovrebbe eseguire un solo Gateway. Usane più di uno solo per isolamento/ridondanza rigorosi (ad esempio un profilo di emergenza). Checklist per istanza:gateway.portunivocoOPENCLAW_CONFIG_PATHunivocoOPENCLAW_STATE_DIRunivocoagents.defaults.workspaceunivoco
Percorso rapido del profilo dev
19001.
Riferimento rapido del protocollo (vista operatore)
- Il primo frame del client deve essere
connect. - Il Gateway restituisce uno snapshot
hello-ok(presence,health,stateVersion,uptimeMs, limiti/policy). hello-ok.features.methods/eventssono un elenco di discovery prudente, non un dump generato di ogni route helper richiamabile.- 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 pairing/approval eshutdown.
- Ack di accettazione immediata (
status:"accepted") - Risposta finale di completamento (
status:"ok"|"error"), con eventiagentin streaming nel mezzo.
Controlli operativi
Liveness
- Apri WS e invia
connect. - Attendi una risposta
hello-okcon snapshot.
Readiness
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 del gateway valido |
another gateway instance is already listening / EADDRINUSE | Conflitto di porta |
Gateway start blocked: set gateway.mode=local | Config impostata in modalità remota, oppure stamp di modalità locale mancante in una config danneggiata |
unauthorized during connect | Mancata corrispondenza dell’autenticazione tra client e gateway |
Garanzie di sicurezza
- I client del protocollo Gateway falliscono rapidamente quando il Gateway non è disponibile (nessun fallback implicito diretto al canale).
- I first frame non validi/non-connect vengono rifiutati e la connessione viene chiusa.
- Lo shutdown ordinato emette l’evento
shutdownprima della chiusura del socket.
Correlati: