Gateway
Gateway-Betriebshandbuch
Verwenden Sie diese Seite für die erstmalige Inbetriebnahme und den laufenden Betrieb des Gateway-Dienstes.
Symptombasierte Diagnose mit genauen Befehlsfolgen und Log-Signaturen.
Aufgabenorientierte Einrichtungsanleitung und vollständige Konfigurationsreferenz.
SecretRef-Vertrag, Verhalten von Laufzeit-Snapshots sowie Migrations- und Neuladevorgänge.
Genaue secrets apply-Ziel-/Pfadregeln und Verhalten von Authentifizierungsprofilen, die ausschließlich Referenzen enthalten.
Lokale Inbetriebnahme in 5 Minuten
Gateway starten
openclaw gateway --port 18789# Debug-/Trace-Ausgaben werden nach stdio gespiegeltopenclaw gateway --port 18789 --verbose# Listener am ausgewählten Port zwangsweise beenden, dann startenopenclaw gateway --forceDienstzustand überprüfen
openclaw gateway statusopenclaw statusopenclaw logs --followGesunder Ausgangszustand: Runtime: running, Connectivity probe: ok und eine Ihren Erwartungen entsprechende Capability-Zeile. Verwenden Sie openclaw gateway status --require-rpc als RPC-Nachweis für den Lesezugriff, nicht nur für die Erreichbarkeit.
Kanalbereitschaft validieren
openclaw channels status --probeBei erreichbarem Gateway führt dies Live-Kanalprüfungen pro Konto und optionale Audits aus. Ist das Gateway nicht erreichbar, greift die CLI auf rein konfigurationsbasierte Kanalzusammenfassungen zurück.
Laufzeitmodell
- Ein dauerhaft aktiver Prozess für Routing, Steuerungsebene und Kanalverbindungen.
- Ein einzelner multiplexter Port für:
- WebSocket-Steuerung/RPC
- HTTP-APIs (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Plugin-HTTP-Routen, beispielsweise das optionale
/api/v1/admin/rpc - Control UI und Hooks
- Standard-Bindungsmodus:
loopback. Innerhalb einer erkannten Container-Umgebung ist der effektive Standardauto(wird für die Portweiterleitung in0.0.0.0aufgelöst), sofern Tailscale Serve/Funnel nicht aktiv ist; dies erzwingt stetsloopback. - Authentifizierung ist standardmäßig erforderlich. Konfigurationen mit gemeinsamem Secret verwenden
gateway.auth.token/gateway.auth.password(oderOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD); Reverse-Proxy-Konfigurationen außerhalb von Loopback könnengateway.auth.mode: "trusted-proxy"verwenden.
OpenAI-kompatible Endpunkte
OpenClaws Kompatibilitätsoberfläche mit der größten Hebelwirkung:
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 Speicher-Pipelines erwarten
/v1/embeddings. - Für Agenten entwickelte Clients bevorzugen zunehmend
/v1/responses.
/v1/models ist auf Agenten ausgerichtet: Es gibt für jeden konfigurierten Agenten openclaw, openclaw/default und openclaw/<agentId> zurück. openclaw/default ist der stabile Alias, der stets dem konfigurierten Standardagenten zugeordnet wird. Senden Sie x-openclaw-model, wenn Sie den Provider oder das Modell im Backend überschreiben möchten; andernfalls bleibt die normale Modell- und Embedding-Konfiguration des ausgewählten Agenten maßgeblich.
Alle diese Endpunkte werden über den Hauptport des Gateways ausgeführt und verwenden dieselbe vertrauenswürdige Authentifizierungsgrenze für Bediener wie die übrige Gateway-HTTP-API.
Admin-HTTP-RPC (POST /api/v1/admin/rpc) ist eine separate, standardmäßig deaktivierte Plugin-Route für Host-Werkzeuge, die WebSocket-RPC nicht verwenden können. Siehe Admin-HTTP-RPC.
Priorität von Port und Bindung
| Einstellung | Auflösungsreihenfolge |
|---|---|
| Gateway-Port | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Bindungsmodus | CLI/Überschreibung → gateway.bind → loopback (oder auto in Containern) |
Installierte Gateway-Dienste speichern das aufgelöste --port in den Supervisor-Metadaten. Führen Sie nach einer Änderung von gateway.port den Befehl openclaw doctor --fix oder openclaw gateway install --force aus, damit launchd/systemd/schtasks den Prozess am neuen Port startet.
Beim Start verwendet das Gateway denselben effektiven Port und dieselbe Bindung, wenn es lokale Ursprünge der Control UI für Bindungen außerhalb von Loopback vorbelegt. Beispielsweise belegt --bind lan --port 3000 vor der Laufzeitvalidierung http://localhost:3000 und http://127.0.0.1:3000 vor. Fügen Sie alle Ursprünge entfernter Browser, etwa HTTPS-Proxy-URLs, ausdrücklich 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 Änderungen mit erforderlichem Neustart neu starten |
hybrid (Standard) |
Wenn sicher, direkt anwenden; bei Bedarf neu starten |
Befehlssatz für Bediener
openclaw gateway statusopenclaw gateway status --deep # ergänzt eine systemweite Dienstsucheopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctorgateway status --deep dient der zusätzlichen Dienstsuche (LaunchDaemons/systemd-System-Units/schtasks), nicht einer tiefergehenden RPC-Zustandsprüfung.
Mehrere Gateways (auf demselben Host)
Die meisten Installationen sollten ein Gateway pro Rechner ausführen. Ein einzelnes Gateway kann mehrere Agenten und Kanäle bereitstellen. Mehrere Gateways sind nur erforderlich, wenn Sie bewusst eine Isolierung oder einen Rettungs-Bot wünschen.
Nützliche Prüfungen:
openclaw gateway status --deepopenclaw gateway probeZu erwartendes Verhalten:
gateway status --deepkannOther gateway-like services detected (best effort)melden und Bereinigungshinweise ausgeben, wenn noch veraltete launchd-/systemd-/schtasks-Installationen vorhanden sind.gateway probekann vormultiple reachable gateway identitieswarnen, wenn unterschiedliche Gateways antworten oder OpenClaw nicht nachweisen kann, dass erreichbare Ziele dasselbe Gateway sind. Ein SSH-Tunnel, eine Proxy-URL oder eine konfigurierte Remote-URL zu demselben Gateway ist ein Gateway mit mehreren Transportwegen, selbst wenn sich die Transportports unterscheiden.- Wenn dies beabsichtigt ist, isolieren Sie Ports, Konfiguration/Zustand und Workspace-Stammverzeichnisse für jedes Gateway.
Checkliste pro Instanz:
- Eindeutiges
gateway.port - Eindeutiges
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 19001OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002Ausführliche Einrichtung: /gateway/multiple-gateways.
Remote-Zugriff
Bevorzugt: Tailscale/VPN. Ausweichlösung: SSH-Tunnel.
ssh -N -L 18789:127.0.0.1:18789 user@gateway-hostVerbinden Sie Clients anschließend lokal mit ws://127.0.0.1:18789.
Siehe: Remote-Gateway, Authentifizierung, Tailscale.
Überwachung und Dienstlebenszyklus
Verwenden Sie überwachte Ausführungen für eine 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 Startsitzung entfernt, ohne eine Deaktivierung dauerhaft zu speichern. Die automatische Wiederherstellung durch KeepAlive funktioniert somit weiterhin nach unerwarteten Abstürzen, und gateway start aktiviert den Dienst wieder ordnungsgemäß. Um den automatischen Neustart über Systemneustarts hinweg dauerhaft zu unterdrücken, übergeben Sie --disable: openclaw gateway stop --disable.
LaunchAgent-Bezeichnungen sind ai.openclaw.gateway (Standard) oder ai.openclaw.<profile> (benanntes Profil). openclaw doctor prüft und behebt Abweichungen der Dienstkonfiguration.
Linux (systemd-Benutzerdienst)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusAktivieren Sie für den dauerhaften Betrieb nach der Abmeldung das Lingering:
sudo loginctl enable-linger $(whoami)Stellen Sie auf einem Headless-Server ohne Desktop-Sitzung außerdem sicher, dass XDG_RUNTIME_DIR festgelegt ist (export XDG_RUNTIME_DIR=/run/user/$(id -u)), bevor Sie die systemctl --user-Befehle erneut ausführen.
Beispiel für eine manuelle Benutzer-Unit, wenn Sie einen benutzerdefinierten Installationspfad benötigen:
[Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.targetStartLimitBurst=5StartLimitIntervalSec=60 [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5RestartPreventExitStatus=78TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.targetWindows (nativ)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopDer verwaltete native Windows-Start verwendet eine geplante Aufgabe namens OpenClaw Gateway (oder OpenClaw Gateway (<profile>) für benannte Profile). Wird das Erstellen der geplanten Aufgabe verweigert, greift OpenClaw auf ein benutzerspezifisches Startprogramm im Autostartordner zurück, das auf gateway.cmd im Zustandsverzeichnis verweist.
Linux (Systemdienst)
Verwenden Sie für Mehrbenutzer-Hosts oder dauerhaft aktive Hosts eine System-Unit.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceVerwenden Sie denselben Dienstinhalt wie für die Benutzer-Unit, installieren Sie ihn jedoch unter /etc/systemd/system/openclaw-gateway[-<profile>].service und passen Sie ExecStart= an, wenn sich Ihre ausführbare Datei openclaw an einem anderen Ort befindet.
Lassen Sie openclaw doctor --fix nicht zusätzlich einen Gateway-Dienst auf Benutzerebene für dasselbe Profil bzw. 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 für den Lebenszyklus zuständig ist.
Fehler aufgrund einer ungültigen Konfiguration beenden den Prozess mit Code 78. Linux-systemd-Units verwenden RestartPreventExitStatus=78, um weitere Starts zu verhindern, bis die Konfiguration korrigiert wurde. launchd und die Windows-Aufgabenplanung besitzen keine entsprechende Regel zum Anhalten bei einem bestimmten Exit-Code. Daher speichert das Gateway zusätzlich den Verlauf schneller unsauberer Starts und unterdrückt nach wiederholten Startfehlern den automatischen Start von Kanal-/Provider-Konten. In diesem abgesicherten Modus startet die Steuerungsebene weiterhin zur Prüfung und Reparatur; Hot-Reloads der Konfiguration und secrets.reload verweigern automatische Kanalneustarts, und eine ausdrückliche channels.start-Anforderung durch den Bediener kann die Unterdrückung außer Kraft setzen.
Schnellstart mit Entwicklungsprofil
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusZu den Standardwerten gehören eine isolierte Zustands-/Konfigurationsumgebung und der Gateway-Basisport 19001.
Protokoll-Kurzreferenz (Bedieneransicht)
- Der erste Client-Frame muss
connectsein. - Der Gateway gibt einen
hello-ok-Frame mit einemsnapshot(presence,health,stateVersion,uptimeMs) sowiepolicy-Grenzwerten (maxPayload,maxBufferedBytes,tickIntervalMs) zurück. hello-ok.features.methods/eventssind eine konservative Ermittlungsliste und keine generierte Auflistung aller aufrufbaren Hilfsrouten.- Anfragen:
req(method, params)→res(ok/payload|error). - Zu den gängigen Ereignissen gehören
connect.challenge,agent,chat,session.message,session.operation,session.tool, das optional aktivierbaresession.approval,sessions.changed,presence,tick,health,heartbeat, Lebenszyklusereignisse für Kopplung/Genehmigung undshutdown.
Agent-Ausführungen erfolgen in zwei Phasen:
- Sofortige Annahmebestätigung (
status:"accepted") - Abschließende Antwort nach Abschluss (
status:"ok"|"error"), dazwischen mit gestreamtenagent-Ereignissen.
Die vollständige Protokolldokumentation finden Sie unter Gateway-Protokoll.
Betriebsprüfungen
Erreichbarkeit
- Öffnen Sie eine WS-Verbindung und senden Sie
connect. - Erwarten Sie eine
hello-ok-Antwort mit einer Momentaufnahme.
Bereitschaft
openclaw gateway statusopenclaw channels status --probeopenclaw healthWiederherstellung nach Lücken
Ereignisse werden nicht erneut wiedergegeben. Aktualisieren Sie bei Sequenzlücken den Zustand (health, system-presence), bevor Sie fortfahren.
Häufige Fehlersignaturen
| Signatur | Wahrscheinliches Problem |
|---|---|
refusing to bind gateway ... without auth |
Bindung außerhalb der Loopback-Schnittstelle ohne gültigen Gateway-Authentifizierungspfad |
another gateway instance is already listening / EADDRINUSE |
Portkonflikt |
Gateway start blocked: set gateway.mode=local |
Konfiguration ist auf den Remote-Modus eingestellt oder gateway.mode fehlt in einer beschädigten Konfiguration |
unauthorized während des Verbindungsaufbaus |
Nicht übereinstimmende Authentifizierung zwischen Client und Gateway |
Vollständige Diagnoseabläufe finden Sie unter Gateway-Fehlerbehebung.
Sicherheitsgarantien
- Gateway-Protokollclients brechen sofort ab, wenn der Gateway nicht verfügbar ist (kein impliziter Fallback auf einen direkten Kanal).
- Ungültige erste Frames beziehungsweise erste Frames, die keine Verbindungsanforderung enthalten, werden abgelehnt und geschlossen.
- Beim ordnungsgemäßen Herunterfahren wird vor dem Schließen des Sockets ein
shutdown-Ereignis ausgegeben.