Gateway-Überblick
Der Gateway ist das Herz Ihrer OpenClaw-Installation—ein dauerhaft laufender Dienst, der Ihre Messaging-Verbindungen (WhatsApp, Telegram usw.) besitzt und die gesamte Orchestrierung zwischen Chat-Kanälen und Ihren Agenten übernimmt.
Stellen Sie ihn sich als Dirigenten vor: Er hört auf eingehende Nachrichten, leitet sie an die richtige Agenten-Sitzung weiter, streamt Antworten zurück und hält alles verbunden, auch wenn Sie nicht aktiv chatten.
Was er tut
- Unterhält dauerhafte Verbindungen zu Messaging-Plattformen (Baileys für WhatsApp, Bot-API für Telegram usw.)
- Stellt eine WebSocket-Kontrollebene für CLI, Apps und Remote-Nodes bereit
- Bedient HTTP-Endpunkte für OpenAI-kompatible APIs, Webhooks und die Control-UI
- Verwaltet Agenten-Sitzungen, Nachrichten-Warteschlangen und Zustellung
- Unterstützt Hot-Reload der Konfiguration und In-Process-Neustarts (kein Ausfall bei den meisten Änderungen)
Einstiegspunkt: openclaw gateway
Lokal ausführen
Einfacher Start:
openclaw gatewayDas war’s. Der Gateway bindet standardmäßig an 127.0.0.1:18789 und läuft, bis Sie ihn stoppen.
Mit Optionen:
# Anderen Port verwenden
openclaw gateway --port 19000
# Debug-Modus (alle Log-Ereignisse in die Konsole spiegeln)
openclaw gateway --verbose
# Zuerst alles auf dem Port beenden, dann starten
openclaw gateway --force
# Dev-Modus (Auto-Reload bei Code-Änderungen)
pnpm gateway:watchDer Gateway überwacht Ihre Konfigurationsdatei (standardmäßig ~/.clawdbot/openclaw.json) und lädt unkritische Änderungen per Hot-Reload. Kritische Änderungen lösen einen In-Process-Neustart per SIGUSR1 aus.
Hot-Reload mit gateway.reload.mode="off" deaktivieren, wenn Sie manuelle Kontrolle bevorzugen.
Authentifizierung
Standardmäßig verlangt der Gateway Authentifizierung, auch auf localhost. Token oder Passwort setzen:
# Token während des Setups erzeugen
openclaw setup
# Oder manuell setzen
export CLAWDBOT_GATEWAY_TOKEN="your-secret-token"Anschließend Ihre Clients (CLI, Apps, Nodes) so konfigurieren, dass sie auth.token im WebSocket-Handshake mitsenden.
Tailscale-Nutzer: Bei Nutzung von Tailscale Serve mit gateway.auth.allowTailscale: true können Anfragen aus Ihrem Tailnet sich über Tailscale-Identity-Header statt über Token authentifizieren.
Fernzugriff
Empfohlen: Tailscale oder VPN
Halten Sie Ihren Gateway privat. Nutzen Sie Tailscale, um von überall darauf zuzugreifen, ohne Ports ins Internet zu öffnen.
Vollständige Anleitung: Tailscale-Setup.
Alternative: SSH-Tunnel
Wenn Tailscale nicht infrage kommt, per SSH tunneln:
ssh -N -L 18789:127.0.0.1:18789 user@remote-hostDann die CLI mit ws://127.0.0.1:18789 verbinden, als wäre der Gateway lokal.
Mehrere Gateways (meist nicht nötig)
Ein Gateway kann mehrere Messaging-Kanäle und Agenten problemlos bedienen. Mehrere Gateways brauchen Sie nur für:
- Redundanz (ein Rettungs-Bot, der läuft, wenn Ihre Haupt-Installation ausfällt)
- Strenge Isolation (getrennte Produktions- und Entwicklungsumgebungen)
In dem Fall: State-Verzeichnisse, Konfigurationsdateien und Ports isolieren.
Muster und Beispiele: Mehrere Gateways.
Dev-Profil (isoliertes Testen)
Änderungen testen, ohne die Produktions-Installation anzurühren? --dev verwenden:
openclaw --dev setup
openclaw --dev gateway --allow-unconfigured
openclaw --dev statusDas Dev-Profil nutzt isolierte Verzeichnisse und Ports:
- Konfiguration:
~/.clawdbot-dev/openclaw.json - State:
~/.clawdbot-dev/ - Workspace:
~/clawd-dev/ - Port:
19001(vs.18789für main)
Keine Konflikte mit Ihrem Haupt-Gateway.
Dienstverwaltung
Als Systemdienst installieren:
# macOS (launchd)
openclaw gateway install
# Linux (systemd user service)
openclaw gateway install
sudo loginctl enable-linger $USER
# Status prüfen
openclaw gateway statusSteuerung:
openclaw gateway start
openclaw gateway stop
openclaw gateway restart
openclaw logs --followDer Gateway läuft als überwachter Dienst (launchd unter macOS, systemd unter Linux). Bei Absturz startet der Supervisor ihn automatisch neu.
Dienstnamen
Dienste nutzen profilabhängige Namen:
- macOS:
bot.molt.gateway(oderbot.molt.<profile>) - Linux:
openclaw-gateway.service(oderopenclaw-gateway-<profile>.service)
systemd (Linux/WSL2)
Standardmäßig installiert OpenClaw einen User-Service (einfacher für Einzelplatz). Für dauerhaft laufende Server stattdessen einen System-Service verwenden.
User-Service (Standard):
openclaw gateway install
sudo loginctl enable-linger $USER
systemctl --user enable --now openclaw-gateway.serviceSystem-Service (Multi-User/Dauerbetrieb):
/etc/systemd/system/openclaw-gateway.service mit passendem User= und WorkingDirectory= anlegen, dann:
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway.serviceBeispiele für Unit-Dateien: Hintergrundprozess.
Endpunkte und Ports
Der Gateway bündelt alles auf einem Port (Standard 18789):
- WebSocket (
/) — Haupt-Kontrollebene für CLI, Apps und Nodes - HTTP-APIs:
/v1/chat/completions— OpenAI-kompatible Chat-API/v1/responses— OpenResponses-API/tools/invoke— direkte Tool-Aufrufe
- Control-UI (Web-Dashboard, falls aktiviert)
- Canvas-Dateiserver (Standard Port
18793, separater Port) — liefert~/clawd/canvasunter/__openclaw__/canvas/
Browser-Steuerung nutzt abgeleitete Ports:
- Control-Service: Gateway-Port + 2 (z. B.
18791) - Extension-Relay: Gateway-Port + 3 (z. B.
18792) - Browser-Profile vergeben CDP-Ports automatisch im Bereich
18800–18899
Basis-Port mit --port, CLAWDBOT_GATEWAY_PORT oder gateway.port in der Konfiguration ändern.
Protokoll-Grundlagen
Clients verbinden sich per WebSocket und müssen zuerst eine connect-Anfrage senden:
{
"type": "req",
"id": "1",
"method": "connect",
"params": {
"minProtocol": 7,
"maxProtocol": 7,
"client": {
"id": "cli-abc123",
"version": "1.0.0",
"platform": "darwin",
"mode": "operator"
},
"auth": {
"token": "your-gateway-token"
}
}
}Der Gateway antwortet mit einem hello-ok-Payload, der Presence, Health und Konfigurations-Snapshots enthält—alles, was Sie brauchen, um den State ohne weitere Anfragen darzustellen.
Nach dem Handshake:
- Anfragen folgen dem Muster
{type:"req", id, method, params}→{type:"res", id, ok, payload} - Ereignisse werden als
{type:"event", event, payload}gepusht
Häufige Ereignisse: agent (gestreamte Tool-Ausgabe), presence (wer verbunden ist), tick (Keepalive), shutdown (Gateway startet neu).
Vollständige Spezifikation: Gateway-Protokoll.
Wichtige Methoden
health— vollständiger System-Health-Snapshotstatus— kurze Zusammenfassungagent— einen Agenten-Durchlauf ausführen (streamt Ereignisse zurück)send— Nachricht über einen Kanal sendensystem-presence— verbundene Clients auflistennode.*— Remote-Nodes finden, koppeln und steuerncron.*— geplante Jobs verwalten
Konfigurations-Hot-Reload
Der Gateway überwacht openclaw.json auf Änderungen. Beim Speichern:
- Unkritische Änderungen (Allowlists, Schwellen, Feature-Flags) werden sofort angewendet
- Kritische Änderungen (Kanal-Credentials, Bind-Adresse) lösen einen automatischen Neustart aus
Standardmodus ist "hybrid". Mit gateway.reload.mode="off" komplett deaktivieren.
In-Process-Neustart
SIGUSR1 senden für Neustart ohne Stopp:
kill -USR1 $(pgrep -f "openclaw gateway")Oder das gateway-Tool aus einem Agenten nutzen:
{
"tool": "gateway",
"action": "restart",
"delayMs": 2000
}Der Neustart beendet zuerst den aktuellen Agenten-Lauf, sendet ein shutdown-Ereignis, lädt alles neu und ist nach Sekunden wieder da.
Betriebliche Health-Checks
Liveness:
- Können Sie eine WebSocket-Verbindung zum Gateway-Port herstellen?
- Erhält eine
connect-Anfrage einehello-ok-Antwort?
Readiness:
- Gibt
healthok: truezurück? - Ist Ihr Haupt-Messaging-Kanal verknüpft? (in der Health-Payload
linkChannelprüfen)
Monitoring:
- Auf
presence-Ereignisse abonnieren—wenn keine Updates mehr kommen, stimmt etwas nicht - Auf
shutdown-Ereignisse achten (geplante Neustarts vs. Abstürze) statusfür Warteschlangentiefe und Fehlerzahlen prüfen
Sicherheitslage
- Standardmäßig an localhost gebunden (
127.0.0.1:18789)—nur lokale Prozesse können sich verbinden - Auth erforderlich auch auf Loopback—kein Zugriff ohne Authentifizierung
- Tailscale Serve für Fernzugriff nutzen (identitätsbasierte Auth, verschlüsselter Tunnel)
- Keine öffentliche Exposition—nicht an
0.0.0.0binden ohne starke Auth und Firewall
Wenn Sie Fernzugriff brauchen:
- Tailscale Serve/Funnel (bevorzugt)
- SSH-Tunnel (Fallback)
- VPN (WireGuard usw.)
Den Gateway-Port niemals direkt ins Internet exponieren.
Bedrohungsmodelle und Hardening-Checklisten: Sicherheit.
Fehlersuche
Gateway startet nicht:
- Prüfen, ob der Port bereits belegt ist:
lsof -i :18789 openclaw gateway --forcenutzen, um bestehende Listener zu beenden- Logs prüfen:
openclaw logsoder~/.clawdbot/logs/gateway.log
CLI kann sich nicht verbinden:
- Prüfen, ob der Gateway läuft:
openclaw gateway status - Prüfen, ob der Auth-Token übereinstimmt:
echo $CLAWDBOT_GATEWAY_TOKEN - Verbindung mit expliziter URL versuchen:
openclaw --url ws://127.0.0.1:18789 status
Kanal nicht verknüpft:
- WhatsApp:
openclaw setupausführen und QR-Code scannen - Telegram:
channels.telegram.accountsprüfen und Bot-Token verifizieren openclaw doctorfür einen Health-Check ausführen
Vollständiges Runbook: Fehlersuche.
Nächste Schritte
- Setup-Anleitung — Erstkonfiguration
- Konfiguration — alle Konfigurationsoptionen
- Discovery — wie Nodes den Gateway finden (Bonjour, DNS-SD, Tailscale)
- Pairing — Remote-Nodes genehmigen und verwalten
- Sandboxing — Agenten in Docker-Containern ausführen
- Remote-Gateway — auf VPS oder Cloud-Server bereitstellen