Runbook usługi Gateway
Użyj tej strony do uruchomienia w dniu 1 oraz operacji w dniu 2 usługi Gateway.Deep troubleshooting
Diagnostyka zaczynająca się od objawów z dokładnymi sekwencjami poleceń i sygnaturami logów.
Configuration
Przewodnik konfiguracji zorientowany na zadania + pełna referencja konfiguracji.
5-minutowe uruchomienie lokalne
Przeładowanie konfiguracji Gateway obserwuje aktywną ścieżkę pliku konfiguracyjnego (rozwiązaną na podstawie domyślnych ustawień profilu/stanu lub
OPENCLAW_CONFIG_PATH, gdy ustawione).
Tryb domyślny: gateway.reload.mode="hybrid" (bezpieczne zmiany stosowane „na gorąco”, restart przy krytycznych).Model runtime
- Jeden zawsze działający proces do routingu, control plane i połączeń kanałów.
- Multipleks jednego portu.
- WebSocket control/RPC
- OpenResponses (HTTP):
/v1/responses. - Control UI i hooki
- Domyślny tryb bindowania:
loopback. - Uwierzytelnianie Gateway jest domyślnie wymagane: ustaw
gateway.auth.token(lubOPENCLAW_GATEWAY_TOKEN) albogateway.auth.password.
Port i priorytet bindowania
| Ustawienie | Kolejność rozwiązywania |
|---|---|
| Porty pochodne (reguły kciuka): | Priorytet portów: --port > OPENCLAW_GATEWAY_PORT > gateway.port > domyślny 18789. |
| Tryb bindowania | CLI/override → gateway.bind → loopback |
Tryby hot reload
Wyłącz za pomocą gateway.reload.mode="off". | Zachowanie |
|---|---|
off | Brak przeładowania konfiguracji |
hot | Zastosuj tylko zmiany bezpieczne dla trybu hot |
restart | Uruchom ponownie przy zmianach wymagających restartu |
hybrid (domyślnie) | Zastosuj w trybie hot, gdy bezpieczne, w przeciwnym razie uruchom ponownie |
Zestaw poleceń operatora
Zdalny dostęp
Preferowane Tailscale/VPN; w przeciwnym razie tunel SSH: Zapasowo: tunel SSH.ws://127.0.0.1:18789 przez tunel.
Zobacz: Remote Gateway, Authentication, Tailscale.
Nadzór i cykl życia usługi
Używaj uruchomień nadzorowanych dla niezawodności na poziomie produkcyjnym.- macOS (launchd)
- Linux (systemd user)
- Linux (system service)
ai.openclaw.gateway (domyślnie) lub ai.openclaw.<profile>, gdy uruchamiasz nazwany profil. openclaw doctor sprawdza i naprawia rozbieżności w konfiguracji usługi.Wiele gatewayów (ten sam host)
W większości konfiguracji należy uruchomić jedną bramę Gateway. Używaj wielu Gatewayów tylko dla redundancji lub ścisłej izolacji (np. bot ratunkowy). Lista kontrolna per instancję:- unikatowy
gateway.port - unikatowy
OPENCLAW_CONFIG_PATH - unikatowy
OPENCLAW_STATE_DIR - unikatowy
agents.defaults.workspace
Szybka ścieżka dla profilu deweloperskiego
19001.
Protokół (widok operatora)
- Pierwsza ramka klienta musi mieć typ
connect. - Gateway zwraca migawkę
hello-ok(presence,health,stateVersion,uptimeMs, limits/policy). - Żądania:
{type:"req", id, method, params}→{type:"res", id, ok, payload|error} - Typowe zdarzenia:
connect.challenge,agent,chat,presence,tick,health,heartbeat,shutdown.
- Natychmiastowe potwierdzenie przyjęcia (
status:"accepted") - Odpowiedzi
agentsą dwuetapowe: najpierw potwierdzenieres{runId,status:"accepted"}, a następnie końcoweres{runId,status:"ok"|"error",summary}po zakończeniu wykonania; strumieniowane wyjście dociera jakoevent:"agent".
Kontrole operacyjne
Żywotność
- Otwórz połączenie WS i wyślij
connect. - Oczekuj odpowiedzi
hello-okz migawką.
Gotowość
Odzyskiwanie po przerwie
Zdarzenia nie są odtwarzane. W przypadku luk w sekwencji odśwież stan (health, system-presence) przed kontynuowaniem.
Typowe sygnatury błędów
| Sygnatura | Prawdopodobny problem |
|---|---|
refusing to bind gateway ... without auth` | Powiązanie z adresem innym niż loopback bez tokena/hasła |
another gateway instance is already listening / EADDRINUSE | Konflikt portów |
Gateway start blocked: set gateway.mode=local | Konfiguracja ustawiona na tryb zdalny |
unauthorized podczas łączenia | Niezgodność uwierzytelniania między klientem a Gateway |
Gwarancje bezpieczeństwa
- Klienci protokołu Gateway szybko przerywają działanie, gdy Gateway jest niedostępny (brak domyślnego przełączenia na kanał bezpośredni).
- Ramki inne niż pierwsza ramka połączenia lub niepoprawny JSON są odrzucane, a gniazdo jest zamykane.
- Łagodne zamknięcie: emituj zdarzenie
shutdownprzed zamknięciem; klienci muszą obsłużyć zamknięcie + ponowne połączenie.
Powiązane: