Gateway
Gateway-Runbook
Verwenden Sie diese Seite für den Start am Tag 1 und den Betrieb am Tag 2 des Gateway-Dienstes.
Symptomorientierte Diagnose mit exakten Befehlsfolgen und Log-Signaturen.
Aufgabenorientierte Einrichtungsanleitung + vollständige Konfigurationsreferenz.
SecretRef-Vertrag, Laufzeit-Snapshot-Verhalten und Migrations-/Neuladevorgänge.
Exakte Ziel-/Pfadregeln für secrets apply und Ref-only-Verhalten von Auth-Profilen.
5-Minuten-Start lokal
Gateway starten
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
Dienstzustand prüfen
openclaw gateway status
openclaw status
openclaw logs --follow
Gesunde Basis: Runtime: running, Connectivity probe: ok und Capability: ..., passend zu Ihren Erwartungen. Verwenden Sie openclaw gateway status --require-rpc, wenn Sie einen RPC-Nachweis für den Lesebereich benötigen, nicht nur Erreichbarkeit.
Kanalbereitschaft validieren
openclaw channels status --probe
Mit einem erreichbaren Gateway führt dies Live-Kanalprüfungen pro Konto und optionale Audits aus. Wenn das Gateway nicht erreichbar ist, fällt die CLI stattdessen auf reine Konfigurationszusammenfassungen der Kanäle zurück anstelle einer Live-Prüfausgabe.
Laufzeitmodell
- Ein ständig laufender Prozess für Routing, Control Plane und Kanalverbindungen.
- Ein einzelner multiplexierter 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-Bindungsmodus:
loopback. - Auth ist standardmäßig erforderlich. Shared-Secret-Setups verwenden
gateway.auth.token/gateway.auth.password(oderOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), und Non-loopback- Reverse-Proxy-Setups könnengateway.auth.mode: "trusted-proxy"verwenden.
OpenAI-kompatible Endpunkte
Die wirkungsvollste Kompatibilitätsoberfläche von OpenClaw 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 ein Backend-Provider-/Modell-Override möchten; andernfalls bleibt die normale Modell- und Embedding-Konfiguration des ausgewählten Agent maßgeblich.
Alle diese Endpunkte laufen auf dem Haupt-Gateway-Port und verwenden dieselbe Auth-Grenze für vertrauenswürdige Operatoren wie der Rest der Gateway-HTTP-API.
Port- und Bindungspriorität
| Einstellung | Auflösungsreihenfolge |
|---|---|
| Gateway-Port | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Bindungsmodus | CLI/Override → gateway.bind → loopback |
Installierte Gateway-Dienste speichern das aufgelöste --port in Supervisor-Metadaten. Führen Sie nach einer Änderung von gateway.port openclaw doctor --fix oder openclaw gateway install --force aus, damit launchd/systemd/schtasks den Prozess am neuen Port startet.
Der Gateway-Start verwendet denselben effektiven Port und dieselbe Bindung, wenn lokale
Control-UI-Ursprünge für Non-loopback-Bindungen gesetzt werden. Zum Beispiel setzt --bind lan --port 3000
http://localhost:3000 und http://127.0.0.1:3000, bevor die Laufzeitvalidierung
ausgeführt wird. Fügen Sie alle Remote-Browser-Ursprünge, etwa HTTPS-Proxy-URLs, explizit zu
gateway.controlUi.allowedOrigins hinzu.
Hot-Reload-Modi
gateway.reload.mode |
Verhalten |
|---|---|
off |
Kein Neuladen der Konfiguration |
hot |
Nur Hot-safe-Änderungen anwenden |
restart |
Bei reload-pflichtigen Änderungen neu starten |
hybrid (Standard) |
Hot-apply, wenn sicher, Neustart wenn erforderlich |
Operator-Befehlssatz
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 ist für zusätzliche Diensterkennung (LaunchDaemons/systemd-System-
Units/schtasks) gedacht, nicht für eine tiefere RPC-Zustandsprüfung.
Mehrere Gateways (gleicher Host)
Die meisten Installationen sollten ein Gateway pro Maschine ausführen. Ein einzelnes Gateway kann mehrere Agenten und Kanäle hosten.
Sie benötigen nur dann mehrere Gateways, wenn Sie bewusst Isolation oder einen Rettungs-Bot möchten.
Nützliche Prüfungen:
openclaw gateway status --deep
openclaw gateway probe
Was Sie erwarten können:
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 dies beabsichtigt ist, isolieren Sie Ports, Konfiguration/Status und Workspace-Roots pro Gateway.
Checkliste pro Instanz:
- Eindeutiges
gateway.port - Eindeutiger
OPENCLAW_CONFIG_PATH - Eindeutiges
OPENCLAW_STATE_DIR - Eindeutiges
agents.defaults.workspace
Beispiel:
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
Detaillierte Einrichtung: /gateway/multiple-gateways.
Remote-Zugriff
Bevorzugt: Tailscale/VPN. Fallback: SSH-Tunnel.
ssh -N -L 18789:127.0.0.1:18789 user@host
Verbinden Sie Clients dann lokal mit ws://127.0.0.1:18789.
Siehe: Remote Gateway, Authentifizierung, Tailscale.
Überwachung und Dienstlebenszyklus
Verwenden Sie überwachte Ausführungen für produktionsähnliche Zuverlässigkeit.
macOS (launchd)
openclaw gateway install
openclaw gateway status
openclaw gateway restart
openclaw gateway stop
Verwenden Sie openclaw gateway restart für Neustarts. Verketten Sie nicht openclaw gateway stop und openclaw gateway start; unter macOS deaktiviert gateway stop den LaunchAgent absichtlich, bevor er ihn stoppt.
LaunchAgent-Labels sind ai.openclaw.gateway (Standard) oder ai.openclaw.<profile> (benanntes Profil). openclaw doctor auditiert und repariert Drift in der Dienstkonfiguration.
Linux (systemd user)
openclaw gateway install
systemctl --user enable --now openclaw-gateway[-<profile>].service
openclaw gateway status
Aktivieren Sie Lingering für Persistenz nach dem Abmelden:
sudo loginctl enable-linger <user>
Beispiel für eine manuelle User-Unit, wenn Sie einen benutzerdefinierten Installationspfad benötigen:
[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 (native)
openclaw gateway install
openclaw gateway status --json
openclaw gateway restart
openclaw gateway stop
Der native verwaltete Windows-Start verwendet eine geplante Aufgabe namens OpenClaw Gateway
(oder OpenClaw Gateway (<profile>) für benannte Profile). Wenn das Erstellen der geplanten Aufgabe
verweigert wird, fällt OpenClaw auf einen benutzerspezifischen Startup-Ordner-Launcher zurück,
der auf gateway.cmd im Statusverzeichnis verweist.
Linux (Systemdienst)
Verwenden Sie eine System-Unit für Multi-User-/Always-on-Hosts.
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway[-<profile>].service
Verwenden Sie denselben Dienstkörper wie bei der User-Unit, installieren Sie ihn jedoch unter
/etc/systemd/system/openclaw-gateway[-<profile>].service und passen Sie
ExecStart= an, falls 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 ein OpenClaw-Gateway-Dienst auf Systemebene gefunden wird; verwenden Sie OPENCLAW_SERVICE_REPAIR_POLICY=external, wenn die System-Unit den Lebenszyklus besitzt.
Schneller Pfad für das Dev-Profil
openclaw --dev setup
openclaw --dev gateway --allow-unconfigured
openclaw --dev status
Defaults umfassen isolierte Status-/Konfigurationsdaten 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 Hilfsroute.- Anfragen:
req(method, params)→res(ok/payload|error). - Häufige Ereignisse umfassen
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, Pairing-/Approval-Lebenszyklusereignisse undshutdown.
Agent-Läufe sind zweistufig:
- Sofortige akzeptierte Bestätigung (
status:"accepted") - Abschließende Abschlussantwort (
status:"ok"|"error"), mit gestreamtenagent-Ereignissen dazwischen.
Siehe vollständige Protokolldokumentation: Gateway-Protokoll.
Betriebsprüfungen
Liveness
- WS öffnen und
connectsenden. hello-ok-Antwort mit Snapshot erwarten.
Readiness
openclaw gateway status
openclaw channels status --probe
openclaw health
Gap-Recovery
Ereignisse 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 |
Non-loopback-Bindung ohne gültigen Gateway-Auth-Pfad |
another gateway instance is already listening / EADDRINUSE |
Portkonflikt |
Gateway start blocked: set gateway.mode=local |
Konfiguration ist auf Remote-Modus gesetzt, oder der Local-Mode-Stamp fehlt in einer beschädigten Konfiguration |
unauthorized während connect |
Auth-Abweichung zwischen Client und Gateway |
Für vollständige Diagnosefolgen verwenden Sie Gateway-Fehlerbehebung.
Sicherheitsgarantien
- Gateway-Protokollclients schlagen schnell fehl, wenn Gateway nicht verfügbar ist (kein impliziter Fallback auf direkte Kanäle).
- Ungültige erste Frames oder erste Frames ohne Verbindungsaufbau werden abgelehnt und geschlossen.
- Ein ordnungsgemäßes Herunterfahren gibt das Ereignis
shutdownaus, bevor der Socket geschlossen wird.
Verwandt: