Gateway-Runbook
Verwenden Sie diese Seite für den Start am ersten Tag und den Betrieb des Gateway-Dienstes im laufenden Einsatz.Tiefgehende Fehlerbehebung
Symptomorientierte Diagnose mit exakten Befehlsabfolgen und Log-Signaturen.
Konfiguration
Aufgabenorientierte Einrichtungsanleitung + vollständige Konfigurationsreferenz.
Secrets-Management
SecretRef-Vertrag, Laufzeit-Snapshot-Verhalten und Vorgänge zum Migrieren/Neuladen.
Secrets-Plan-Vertrag
Exakte Regeln für Ziele/Pfade von
secrets apply und rein referenzbasiertes Auth-Profil-Verhalten.Lokaler Start in 5 Minuten
Bereitschaft der Channels prüfen
Das Neuladen der Gateway-Konfiguration überwacht den Pfad der aktiven Konfigurationsdatei (aufgelöst aus Profil-/Status-Standards oder
OPENCLAW_CONFIG_PATH, wenn gesetzt).
Der Standardmodus ist gateway.reload.mode="hybrid".
Nach dem ersten erfolgreichen Laden bedient der laufende Prozess den aktiven In-Memory-Konfigurations-Snapshot; ein erfolgreiches Neuladen tauscht diesen Snapshot atomar aus.Laufzeitmodell
- Ein dauerhaft laufender Prozess für Routing, Steuerungsebene und Channel-Verbindungen.
- Ein einzelner multiplexter Port für:
- WebSocket-Steuerung/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. Setups mit gemeinsamem Secret verwenden
gateway.auth.token/gateway.auth.password(oderOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), und Nicht-Loopback- Reverse-Proxy-Setups könnengateway.auth.mode: "trusted-proxy"verwenden.
OpenAI-kompatible Endpunkte
Die OpenAI-kompatible Oberfläche mit dem höchsten Nutzen in OpenClaw ist jetzt:GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
- 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.
/v1/modelsist agentenorientiert: Es gibtopenclaw,openclaw/defaultundopenclaw/<agentId>zurück.openclaw/defaultist der stabile Alias, der immer auf den konfigurierten Standard-Agenten verweist.- Verwenden Sie
x-openclaw-model, wenn Sie eine Überschreibung für Backend-Provider/-Modell möchten; andernfalls bleiben das normale Modell und die Embedding-Konfiguration des ausgewählten Agenten maßgeblich.
Port- und Bind-Priorität
| Einstellung | Auflösungsreihenfolge |
|---|---|
| Gateway-Port | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Bind-Modus | CLI/Überschreibung → gateway.bind → loopback |
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) | Wenn sicher hot anwenden, sonst neu starten |
Operator-Befehlssatz
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 Channels hosten. Sie benötigen mehrere Gateways nur dann, wenn Sie bewusst Isolation oder einen Rescue-Bot möchten. Nützliche Prüfungen:gateway status --deepkannOther gateway-like services detected (best effort)melden und Hinweise zur Bereinigung ausgeben, wenn noch veraltete launchd-/systemd-/schtasks-Installationen vorhanden sind.gateway probekann vormultiple reachable gatewayswarnen, wenn mehr als ein Ziel antwortet.- Falls dies beabsichtigt ist, isolieren Sie Ports, Konfiguration/Status und Workspace-Wurzeln pro Gateway.
Remote-Zugriff
Bevorzugt: Tailscale/VPN. Fallback: SSH-Tunnel.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)
- Linux (systemd user)
- Windows (nativ)
- Linux (Systemdienst)
ai.openclaw.gateway (Standard) oder ai.openclaw.<profile> (benanntes Profil). openclaw doctor prüft und repariert Konfigurationsabweichungen des Dienstes.Mehrere Gateways auf einem Host
Die meisten Setups sollten ein Gateway ausführen. Verwenden Sie mehrere nur für strikte Isolation/Redundanz (zum Beispiel ein Rescue-Profil). Checkliste pro Instanz:- Eindeutiges
gateway.port - Eindeutiger
OPENCLAW_CONFIG_PATH - Eindeutiges
OPENCLAW_STATE_DIR - Eindeutiges
agents.defaults.workspace
Schnellpfad für Dev-Profil
19001.
Schnelle Protokollreferenz (Operator-Sicht)
- Der erste Client-Frame muss
connectsein. - Das Gateway gibt den Snapshot
hello-okzurück (presence,health,stateVersion,uptimeMs, Limits/Richtlinie). 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 sind unter anderem
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, Pairing-/Genehmigungs-Lebenszyklus-Events undshutdown.
- Sofortige Bestätigungsannahme (
status:"accepted") - Finale Abschlussantwort (
status:"ok"|"error"), mit gestreamtenagent-Events dazwischen.
Betriebsprüfungen
Liveness
- WebSocket öffnen und
connectsenden. hello-ok-Antwort mit Snapshot erwarten.
Readiness
Gap-Recovery
Events werden nicht erneut abgespielt. Bei Sequenzlücken den Status aktualisieren (health, system-presence), bevor Sie fortfahren.
Häufige Fehlersignaturen
| Signatur | Wahrscheinliches Problem |
|---|---|
refusing to bind gateway ... without auth | Nicht-Loopback-Bind ohne gültigen Gateway-Auth-Pfad |
another gateway instance is already listening / EADDRINUSE | Portkonflikt |
Gateway start blocked: set gateway.mode=local | Konfiguration auf Remote-Modus gesetzt oder Local-Mode-Stempel fehlt in beschädigter Konfiguration |
unauthorized during connect | Auth-Abweichung zwischen Client und Gateway |
Sicherheitsgarantien
- Gateway-Protokoll-Clients schlagen schnell fehl, wenn Gateway nicht verfügbar ist (kein impliziter direkter Channel-Fallback).
- Ungültige/keine-
connect-ersten Frames werden abgelehnt und geschlossen. - Beim kontrollierten Herunterfahren wird vor dem Schließen des Sockets ein
shutdown-Event gesendet.
Verwandt: