Gateway
Gateway-Runbook
Verwenden Sie diese Seite für die Inbetriebnahme am ersten Tag und den Betrieb ab Tag 2 des Gateway-Dienstes.
Symptomorientierte Diagnose mit exakten Befehlsabfolgen und Log-Signaturen.
Aufgabenorientierte Einrichtungsanleitung und vollständige Konfigurationsreferenz.
SecretRef-Vertrag, Verhalten von Runtime-Snapshots und Migrations-/Reload-Vorgänge.
Exakte Ziel-/Pfadregeln für secrets apply und ref-only-Verhalten von auth-Profilen.
5-Minuten-Start lokal
Start the Gateway
openclaw gateway --port 18789# debug/trace mirrored to stdioopenclaw gateway --port 18789 --verbose# force-kill listener on selected port, then startopenclaw gateway --forceVerify service health
openclaw gateway statusopenclaw statusopenclaw logs --followGesunde Ausgangslage: Runtime: running, Connectivity probe: ok und Capability: ..., passend zu Ihrer Erwartung. Verwenden Sie openclaw gateway status --require-rpc, wenn Sie einen RPC-Nachweis mit Lesebereich benötigen, nicht nur Erreichbarkeit.
Validate channel readiness
openclaw channels status --probeBei einem erreichbaren Gateway führt dies Live-Prüfungen pro Account-Channel und optionale Audits aus. Wenn das Gateway nicht erreichbar ist, fällt die CLI auf reine Konfigurationszusammenfassungen der Channels zurück, statt Live-Prüfungsausgaben zu liefern.
Runtime-Modell
- Ein dauerhaft laufender Prozess für Routing, Control Plane und Channel-Verbindungen.
- Einzelner multiplexter Port für:
- WebSocket-Control/RPC
- HTTP-APIs, OpenAI-kompatibel (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Control-UI und Hooks
- Standard-Bind-Modus:
loopback. - Auth ist standardmäßig erforderlich. Shared-Secret-Setups verwenden
gateway.auth.token/gateway.auth.password(oderOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), und Reverse-Proxy-Setups außerhalb von loopback könnengateway.auth.mode: "trusted-proxy"verwenden.
OpenAI-kompatible Endpunkte
OpenClaws wichtigste Kompatibilitätsoberfläche ist jetzt:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Warum diese Auswahl wichtig ist:
- Die meisten Integrationen mit Open WebUI, LobeChat und LibreChat prüfen zuerst
/v1/models. - Viele RAG- und Memory-Pipelines erwarten
/v1/embeddings. - Agent-native Clients bevorzugen zunehmend
/v1/responses.
Planungshinweis:
/v1/modelsist agent-first: Es gibtopenclaw,openclaw/defaultundopenclaw/<agentId>zurück.openclaw/defaultist der stabile Alias, der immer dem konfigurierten Standard-Agent zugeordnet ist.- Verwenden Sie
x-openclaw-model, wenn Sie einen Backend-Provider-/Modell-Override wünschen; andernfalls bleibt das normale Modell- und Embedding-Setup des ausgewählten Agent maßgeblich.
Alle diese Endpunkte laufen auf dem Hauptport des Gateway und verwenden dieselbe vertrauenswürdige Operator-Auth-Grenze wie die übrige Gateway-HTTP-API.
Port- und Bind-Priorität
| Einstellung | Auflösungsreihenfolge |
|---|---|
| Gateway-Port | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Bind-Modus | CLI/Override → gateway.bind → loopback |
Installierte Gateway-Dienste speichern den aufgelösten --port in Supervisor-Metadaten. Nachdem Sie gateway.port geändert haben, führen Sie openclaw doctor --fix oder openclaw gateway install --force aus, damit launchd/systemd/schtasks den Prozess auf dem neuen Port startet.
Der Gateway-Start verwendet denselben effektiven Port und Bind, wenn er lokale
Control-UI-Origins für Nicht-loopback-Binds initialisiert. Beispielsweise initialisiert
--bind lan --port 3000
http://localhost:3000 und http://127.0.0.1:3000, bevor die Runtime-Validierung
ausgeführt wird. Fügen Sie Remote-Browser-Origins, etwa HTTPS-Proxy-URLs, explizit zu
gateway.controlUi.allowedOrigins hinzu.
Hot-Reload-Modi
gateway.reload.mode |
Verhalten |
|---|---|
off |
Kein Konfigurations-Reload |
hot |
Nur hot-safe Änderungen anwenden |
restart |
Bei reloadpflichtigen Änderungen neu starten |
hybrid (Standard) |
Hot-Apply, wenn sicher, Neustart, wenn erforderlich |
Operator-Befehlssatz
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 doctorgateway status --deep dient zusätzlicher Diensterkennung (LaunchDaemons/systemd-System-
Units/schtasks), nicht einer tieferen RPC-Health-Prüfung.
Mehrere Gateways (derselbe Host)
Die meisten Installationen sollten ein Gateway pro Maschine ausführen. Ein einzelnes Gateway kann mehrere Agents und Channels hosten.
Sie benötigen mehrere Gateways nur, wenn Sie bewusst Isolation oder einen Rescue-Bot wünschen.
Nützliche Prüfungen:
openclaw gateway status --deepopenclaw gateway probeZu erwarten:
gateway status --deepkannOther gateway-like services detected (best effort)melden und Bereinigungshinweise ausgeben, wenn veraltete launchd/systemd/schtasks-Installationen noch vorhanden sind.gateway probekann vormultiple reachable gatewayswarnen, wenn mehr als ein Ziel antwortet.- Wenn das beabsichtigt ist, isolieren Sie Ports, Konfiguration/Status und Workspace-Roots pro Gateway.
Checkliste pro Instanz:
- Eindeutiger
gateway.port - Eindeutiger
OPENCLAW_CONFIG_PATH - Eindeutiger
OPENCLAW_STATE_DIR - Eindeutiger
agents.defaults.workspace
Beispiel:
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 19002Detaillierte Einrichtung: /gateway/multiple-gateways.
Remotezugriff
Bevorzugt: Tailscale/VPN. Fallback: SSH-Tunnel.
ssh -N -L 18789:127.0.0.1:18789 user@hostVerbinden Sie Clients anschließend lokal mit ws://127.0.0.1:18789.
Siehe: Remote Gateway, Authentifizierung, Tailscale.
Supervision und Dienstlebenszyklus
Verwenden Sie überwachte Ausführungen für produktionsähnliche Zuverlässigkeit.
macOS (launchd)
openclaw gateway installopenclaw gateway statusopenclaw gateway restartopenclaw gateway stopVerwenden Sie openclaw gateway restart für Neustarts. Verketten Sie openclaw gateway stop und openclaw gateway start nicht als Ersatz für einen Neustart.
Unter macOS verwendet gateway stop standardmäßig launchctl bootout — dadurch wird der LaunchAgent aus der aktuellen Boot-Sitzung entfernt, ohne eine Deaktivierung dauerhaft zu speichern, sodass die KeepAlive-Auto-Wiederherstellung nach unerwarteten Abstürzen weiterhin funktioniert und gateway start sauber wieder aktiviert. Um Auto-Respawn über Neustarts hinweg dauerhaft zu unterdrücken, übergeben Sie --disable: openclaw gateway stop --disable.
LaunchAgent-Labels sind ai.openclaw.gateway (Standard) oder ai.openclaw.<profile> (benanntes Profil). openclaw doctor auditiert und repariert Abweichungen in der Dienstkonfiguration.
Linux (systemd user)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusFür Persistenz nach dem Abmelden aktivieren Sie Lingering:
sudo loginctl enable-linger <user>Beispiel für eine manuelle User-Unit, wenn Sie einen benutzerdefinierten Installationspfad benötigen:
[Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.target [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143KillMode=control-group [Install]WantedBy=default.targetWindows (native)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopDer native verwaltete Windows-Start verwendet eine geplante Aufgabe namens OpenClaw Gateway
(oder OpenClaw Gateway (<profile>) für benannte Profile). Wenn die Erstellung der geplanten Aufgabe
verweigert wird, fällt OpenClaw auf einen per-user Startup-Ordner-Launcher zurück,
der auf gateway.cmd im Statusverzeichnis verweist.
Linux (system service)
Verwenden Sie eine System-Unit für Multi-User-/Always-on-Hosts.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceVerwenden Sie denselben Dienstkörper wie bei der User-Unit, installieren Sie ihn aber unter
/etc/systemd/system/openclaw-gateway[-<profile>].service und passen Sie
ExecStart= an, wenn Ihre openclaw-Binärdatei an anderer Stelle liegt.
Lassen Sie nicht zusätzlich openclaw doctor --fix einen Gateway-Dienst auf Benutzerebene für dasselbe Profil/denselben Port installieren. Doctor verweigert diese automatische Installation, wenn es einen OpenClaw-Gateway-Dienst auf Systemebene findet; verwenden Sie OPENCLAW_SERVICE_REPAIR_POLICY=external, wenn die System-Unit den Lebenszyklus besitzt.
Schneller Pfad für das Dev-Profil
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusDefaults umfassen isolierten Status/isolierte Konfiguration und den Basis-Gateway-Port 19001.
Protokoll-Kurzreferenz (Operator-Sicht)
- Der erste Client-Frame muss
connectsein. - Gateway gibt einen
hello-ok-Snapshot zurück (presence,health,stateVersion,uptimeMs, Limits/Policy). hello-ok.features.methods/eventssind eine konservative Discovery-Liste, kein generierter Dump jeder aufrufbaren Helper-Route.- Anfragen:
req(method, params)→res(ok/payload|error). - Häufige Events umfassen
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, Lebenszyklus-Events für Pairing/Approval undshutdown.
Agent-Ausführungen sind zweistufig:
- Sofortige Accepted-Bestätigung (
status:"accepted") - Finale Completion-Antwort (
status:"ok"|"error"), mit gestreamtenagent-Events dazwischen.
Siehe vollständige Protokolldokumentation: Gateway-Protokoll.
Betriebsprüfungen
Liveness
- WS öffnen und
connectsenden. hello-ok-Antwort mit Snapshot erwarten.
Readiness
openclaw gateway statusopenclaw channels status --probeopenclaw healthGap Recovery
Events werden nicht erneut abgespielt. Aktualisieren Sie bei Sequenzlücken den Status (health, system-presence), bevor Sie fortfahren.
Häufige Fehlersignaturen
| Signatur | Wahrscheinliches Problem |
|---|---|
refusing to bind gateway ... without auth |
Nicht-Loopback-Bindung ohne gültigen Gateway-Auth-Pfad |
another gateway instance is already listening / EADDRINUSE |
Portkonflikt |
Gateway start blocked: set gateway.mode=local |
Config ist auf Remote-Modus gesetzt, oder der Local-Mode-Stempel fehlt in einer beschädigten Config |
unauthorized during connect |
Auth-Abweichung zwischen Client und Gateway |
Für vollständige Diagnoseleitern verwenden Sie Gateway-Fehlerbehebung.
Sicherheitsgarantien
- Gateway-Protokoll-Clients schlagen schnell fehl, wenn Gateway nicht verfügbar ist (kein impliziter Fallback auf einen direkten Kanal).
- Ungültige/nicht verbindende erste Frames werden abgewiesen und geschlossen.
- Ordnungsgemäßes Herunterfahren gibt vor dem Schließen des Sockets ein
shutdown-Ereignis aus.
Verwandt: