Gateway

Runbook Gateway

Usa questa pagina per l'avvio del giorno 1 e le operazioni del giorno 2 del servizio Gateway.

Avvio locale in 5 minuti

  • Avvia il Gateway

    bash
    openclaw gateway --port 18789# debug/trace mirrored to stdioopenclaw gateway --port 18789 --verbose# force-kill listener on selected port, then startopenclaw gateway --force
  • Verifica l'integrità del servizio

    bash
    openclaw gateway statusopenclaw statusopenclaw logs --follow

    Baseline integra: 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à del canale

    bash
    openclaw channels status --probe

    Con un gateway raggiungibile, questo esegue probe dei canali live per account e audit facoltativi. Se il gateway non è raggiungibile, la CLI ripiega invece su riepiloghi dei canali basati solo sulla configurazione dell'output dei probe live.

  • Modello di runtime

    • Un processo sempre attivo per routing, piano di controllo e connessioni dei canali.
    • Un'unica porta multiplexata per:
      • Controllo/RPC WebSocket
      • API HTTP (/v1/models, /v1/embeddings, /v1/chat/completions, /v1/responses, /tools/invoke)
      • Route HTTP dei Plugin, come l'opzionale /api/v1/admin/rpc
      • 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 (oppure OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD) e le configurazioni con reverse proxy non loopback possono usare gateway.auth.mode: "trusted-proxy".

    Endpoint compatibili con OpenAI

    La superficie di compatibilità a maggiore leva di OpenClaw ora è:

    • GET /v1/models
    • GET /v1/models/{id}
    • POST /v1/embeddings
    • POST /v1/chat/completions
    • POST /v1/responses

    Perché questo insieme è importante:

    • La maggior parte delle integrazioni Open WebUI, LobeChat e LibreChat controlla prima /v1/models.
    • Molte pipeline RAG e di memoria si aspettano /v1/embeddings.
    • I client agent-native preferiscono sempre più /v1/responses.

    Nota di pianificazione:

    • /v1/models è agent-first: restituisce openclaw, openclaw/default e openclaw/<agentId>.
    • openclaw/default è l'alias stabile che mappa sempre all'agente predefinito configurato.
    • Usa x-openclaw-model quando vuoi un override del 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 perimetro di autenticazione dell'operatore attendibile del resto dell'API HTTP del Gateway.

    RPC HTTP di amministrazione (POST /api/v1/admin/rpc) è una route di Plugin separata, disattivata per impostazione predefinita, per strumenti host che non possono usare RPC WebSocket. Vedi RPC HTTP di amministrazione.

    Precedenza di porta e bind

    Impostazione Ordine di risoluzione
    Porta Gateway --portOPENCLAW_GATEWAY_PORTgateway.port18789
    Modalità di bind CLI/override → gateway.bindloopback

    I servizi gateway installati registrano la --port risolta nei metadati del supervisore. 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 e lo stesso bind effettivi quando inizializza le origini locali della Control UI per 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 di 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 richiesto

    Set di comandi operatore

    bash
    openclaw gateway statusopenclaw gateway status --deep   # adds a system-level service scanopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctor

    gateway status --deep serve per la scoperta aggiuntiva dei servizi (LaunchDaemons/unità systemd di sistema/schtasks), non per un probe RPC più approfondito dell'integrità.

    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:

    bash
    openclaw gateway status --deepopenclaw gateway probe

    Cosa aspettarsi:

    • gateway status --deep può segnalare Other gateway-like services detected (best effort) e stampare suggerimenti di pulizia quando sono ancora presenti installazioni launchd/systemd/schtasks obsolete.
    • gateway probe può avvisare di multiple reachable gateway identities quando rispondono gateway distinti, oppure quando OpenClaw non può provare che le destinazioni raggiungibili siano lo stesso gateway. Un tunnel SSH, un URL proxy o un URL remoto configurato verso lo stesso gateway è un solo gateway con più trasporti, anche quando le porte di trasporto sono diverse.
    • Se è intenzionale, isola porte, configurazione/stato e radici degli spazi di lavoro per gateway.

    Checklist per istanza:

    • gateway.port univoco
    • OPENCLAW_CONFIG_PATH univoco
    • OPENCLAW_STATE_DIR univoco
    • agents.defaults.workspace univoco

    Esempio:

    bash
    OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001OPENCLAW_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.

    bash
    ssh -N -L 18789:127.0.0.1:18789 user@host

    Poi 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 affidabilità simile alla produzione.

    macOS (launchd)

    bash
    openclaw gateway installopenclaw gateway statusopenclaw gateway restartopenclaw gateway stop

    Usa openclaw gateway restart per i riavvii. Non concatenare openclaw gateway stop e openclaw gateway start come sostituto del riavvio.

    Su macOS, gateway stop usa launchctl bootout per impostazione predefinita: questo rimuove il LaunchAgent dalla sessione di avvio corrente senza rendere persistente una disabilitazione, quindi il ripristino automatico KeepAlive continua a funzionare dopo crash imprevisti e gateway start riabilita in modo pulito. Per sopprimere in modo persistente il respawn automatico tra i riavvii, passa --disable: openclaw gateway stop --disable.

    Le etichette LaunchAgent sono ai.openclaw.gateway (predefinita) oppure ai.openclaw.<profile> (profilo con nome). openclaw doctor controlla e ripara la deriva della configurazione del servizio.

    Linux (systemd user)

    bash
    openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway status

    Per la persistenza dopo il logout, abilita lingering:

    bash
    sudo loginctl enable-linger <user>

    Esempio manuale di unità utente quando ti serve un percorso di installazione personalizzato:

    ini
    [Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.target [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.target

    Windows (native)

    powershell
    openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stop

    L'avvio gestito nativo di Windows usa un'attività pianificata chiamata OpenClaw Gateway (oppure OpenClaw Gateway (<profile>) per i profili con nome). Se la creazione dell'attività pianificata viene negata, OpenClaw ripiega su un launcher nella cartella di avvio per utente che punta a gateway.cmd dentro la directory di stato.

    Linux (system service)

    Usa un'unità di sistema per host multiutente/sempre attivi.

    bash
    sudo systemctl daemon-reloadsudo 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 regola ExecStart= se il tuo binario openclaw si trova altrove.

    Non lasciare che anche openclaw doctor --fix installi un servizio gateway a livello utente per lo stesso profilo/porta. Doctor rifiuta quell'installazione automatica quando trova un servizio gateway OpenClaw a livello di sistema; usa OPENCLAW_SERVICE_REPAIR_POLICY=external quando l'unità di sistema possiede il ciclo di vita.

    Percorso rapido per profilo dev

    bash
    openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --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 / events sono un elenco di scoperta conservativo, 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.operation, session.tool, sessions.changed, presence, tick, health, heartbeat, eventi del ciclo di vita pairing/approval, e shutdown.

    Le esecuzioni degli agenti hanno due fasi:

    1. Ack accettato immediato (status:"accepted")
    2. Risposta finale di completamento (status:"ok"|"error"), con eventi agent in streaming nel mezzo.

    Vedi la documentazione completa del protocollo: Protocollo Gateway.

    Controlli operativi

    Vitalità

    • Apri WS e invia connect.
    • Aspettati una risposta hello-ok con snapshot.

    Prontezza

    bash
    openclaw gateway statusopenclaw channels status --probeopenclaw 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 del 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 marcatore della modalità locale mancante da una configurazione danneggiata
    unauthorized durante la connessione Mancata corrispondenza di autenticazione tra client e gateway

    Per procedure 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 shutdown prima della chiusura del socket.

    Correlati:

    Correlati

    Was this useful?
    On this page

    On this page