Gateway
Kontrole stanu
Krótki przewodnik po sprawdzaniu łączności kanałów bez zgadywania.
Szybkie kontrole
openclaw status— lokalne podsumowanie: osiągalność/tryb Gateway, wskazówka dotycząca aktualizacji, wiek uwierzytelnienia połączonego kanału, sesje i ostatnia aktywność.openclaw status --all— pełna lokalna diagnostyka (tylko do odczytu, z kolorami, bezpieczna do wklejenia podczas debugowania).openclaw status --deep— wysyła do działającego Gateway żądanie aktywnej sondy (healthzprobe:true), w tym sond kanałów dla poszczególnych kont, jeśli są obsługiwane.openclaw status --usage— wyświetla migawki wykorzystania/limitów dostawcy modelu.openclaw health— wysyła do działającego Gateway żądanie migawki stanu (tylko WS; bez bezpośrednich połączeń z gniazdami kanałów z CLI).openclaw health --verbose(alias--debug) — wymusza aktywną sondę stanu i wyświetla szczegóły połączenia z Gateway.openclaw health --json— dane wyjściowe migawki stanu w formacie przeznaczonym do przetwarzania maszynowego.- Wyślij
/statusjako samodzielne polecenie czatu w dowolnym kanale, aby otrzymać odpowiedź o stanie bez wywoływania agenta. - Logi: obserwuj
/tmp/openclaw/openclaw-*.logi filtruj wedługweb-heartbeat,web-reconnect,web-auto-reply,web-inbound.
W przypadku Discord i innych dostawców czatu wiersze sesji nie wskazują, czy gniazdo jest aktywne.
openclaw sessions, Gateway sessions.list i narzędzie agenta sessions_list
odczytują zapisany stan konwersacji. Dostawca może ponownie nawiązać połączenie i wyświetlać prawidłowy stan kanału,
zanim zostanie utworzony nowy wiersz sesji. Do aktywnego sprawdzania łączności używaj podanych wyżej
poleceń stanu kanału i kontroli kondycji.
Szczegółowa diagnostyka
- Dane uwierzytelniające na dysku:
ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json(czas modyfikacji powinien być niedawny). - Magazyn sesji:
ls -l ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. Liczba i ostatni odbiorcy są wyświetlani przezstatus. - Procedura ponownego łączenia: użyj
openclaw channels logout && openclaw channels login --verbose, gdy w logach pojawią się kody stanu 409-515 lubloggedOut. Procedura logowania za pomocą kodu QR automatycznie uruchamia się ponownie jeden raz w przypadku stanu 515 po sparowaniu. - Diagnostyka jest domyślnie włączona (
diagnostics.enabled: falseją wyłącza). Zdarzenia pamięci rejestrują liczbę bajtów RSS/sterty oraz presję progową/wzrostu; krytyczna presja pamięci jest rejestrowana przez logger Gateway, a gdy ustawionodiagnostics.memoryPressureSnapshot: true, zapisywany jest również pakiet stabilności sprzed wystąpienia OOM (statystyki sterty V8, liczniki cgroup systemu Linux, jeśli są dostępne, liczby aktywnych zasobów oraz największe pliki sesji/transkrypcji wskazane przez zanonimizowaną ścieżkę względną). Ostrzeżenia o aktywności rejestrują opóźnienie/wykorzystanie pętli zdarzeń, współczynnik użycia rdzeni procesora oraz liczbę aktywnych/oczekujących/kolejkowanych sesji, gdy proces działa, ale jest przeciążony. Zdarzenia zbyt dużych ładunków rejestrują, co zostało odrzucone/skrócone/podzielone na fragmenty, a także rozmiary i limity, ale nigdy tekst wiadomości, zawartość załączników, treści webhooków, nieprzetworzone treści żądań/odpowiedzi, tokeny, pliki cookie ani wartości sekretów. - Ten sam Heartbeat steruje rejestratorem stabilności o ograniczonym rozmiarze:
openclaw gateway stability(lub RPC Gatewaydiagnostics.stability). Krytyczne zakończenia Gateway, przekroczenia limitu czasu zamykania, niepowodzenia uruchamiania po restarcie oraz (gdydiagnostics.memoryPressureSnapshot: true) krytyczna presja pamięci zapisują najnowszą migawkę w~/.openclaw/logs/stability/. Najnowszy pakiet można sprawdzić za pomocąopenclaw gateway stability --bundle latest. - W przypadku zgłoszeń błędów uruchom
openclaw gateway diagnostics exporti załącz wygenerowany plik ZIP: podsumowanie Markdown, najnowszy pakiet stabilności, oczyszczone metadane logów, oczyszczone migawki stanu/kondycji Gateway oraz strukturę konfiguracji. Tekst czatu, treści webhooków, dane wyjściowe narzędzi, dane uwierzytelniające, pliki cookie, identyfikatory kont/wiadomości i wartości sekretów są pomijane lub anonimizowane. Zobacz Eksport diagnostyki.
Konfiguracja monitora kondycji
gateway.channelHealthCheckMinutes: częstotliwość sprawdzania kondycji kanałów przez Gateway. Wartość domyślna:5. Ustaw0, aby globalnie wyłączyć ponowne uruchamianie przez monitor kondycji.gateway.channelStaleEventThresholdMinutes: czas, przez jaki połączony kanał może pozostawać bezczynny, zanim monitor kondycji uzna go za nieaktualny i uruchomi ponownie. Wartość domyślna:30. Ta wartość musi być większa lub równagateway.channelHealthCheckMinutes.gateway.channelMaxRestartsPerHour: kroczący godzinny limit ponownych uruchomień przez monitor kondycji na kanał/konto. Wartość domyślna:10.channels.<provider>.healthMonitor.enabled: wyłącza ponowne uruchamianie przez monitor kondycji dla określonego kanału, pozostawiając włączone monitorowanie globalne.channels.<provider>.accounts.<accountId>.healthMonitor.enabled: ustawienie zastępujące dla wielu kont, które ma pierwszeństwo przed ustawieniem na poziomie kanału.- Te ustawienia zastępujące dla poszczególnych kanałów dotyczą wbudowanych kanałów, które obecnie je udostępniają: Discord, Google Chat, iMessage, IRC, Microsoft Teams, Signal, Slack, Telegram i WhatsApp.
Monitorowanie czasu działania
Zewnętrzne usługi monitorowania czasu działania powinny używać dedykowanego punktu końcowego /health, a nie /v1/chat/completions.
- UŻYWAJ:
GET /health— natychmiastowa odpowiedź, bez tworzenia sesji i wywoływania LLM; zwraca{"ok":true,"status":"live"} - NIE UŻYWAJ:
/v1/chat/completionsdo kontroli kondycji — każde żądanie tworzy pełną sesję agenta z migawką Skills, składaniem kontekstu i wywołaniami LLM
Jeśli nie podano nagłówka x-openclaw-session-key ani pola user, /v1/chat/completions generuje nową losową sesję dla każdego żądania. Usługi monitorujące, które wysyłają żądanie co 15 minut, tworzą około 96 sesji dziennie, z których każda zajmuje 4-22KB. Z czasem powoduje to rozrost magazynu sesji i może doprowadzić do przepełnienia okna kontekstu.
Przykłady konfiguracji usług monitorujących
- BetterStack: Ustaw adres URL kontroli kondycji na
https://<your-gateway-host>:<port>/health - UptimeRobot: Dodaj nowy monitor HTTP z adresem URL
https://<your-gateway-host>:<port>/health - Ogólne: Dowolne żądanie HTTP GET do
/healthzwraca kod 200 z{"ok":true}, gdy Gateway działa prawidłowo
Gdy wystąpi błąd
logged outlub stan 409-515 → ponownie połącz za pomocąopenclaw channels logout, a następnieopenclaw channels login.- Gateway jest nieosiągalny → uruchom go:
openclaw gateway --port 18789(użyj--force, jeśli port jest zajęty). - Brak wiadomości przychodzących → upewnij się, że połączony telefon jest online, a nadawca jest dozwolony (
channels.whatsapp.allowFrom); w przypadku czatów grupowych upewnij się, że lista dozwolonych oraz reguły wzmianek są zgodne (channels.whatsapp.groups,agents.list[].groupChat.mentionPatterns).
Dedykowane polecenie „health”
openclaw health wysyła do działającego Gateway żądanie migawki jego kondycji (bez bezpośrednich połączeń
z gniazdami kanałów z CLI). Domyślnie zwraca świeżą migawkę Gateway z pamięci podręcznej,
którą Gateway odświeża w tle; --verbose zamiast tego wymusza aktywną sondę.
Polecenie raportuje wiek połączonych danych uwierzytelniających/uwierzytelnienia, gdy jest dostępny, podsumowania sond poszczególnych kanałów,
podsumowanie magazynu sesji oraz czas trwania sondy. Kończy działanie z kodem różnym od zera, jeśli Gateway jest
nieosiągalny albo sonda zakończy się niepowodzeniem lub przekroczy limit czasu.
Opcje:
--json: dane wyjściowe JSON przeznaczone do przetwarzania maszynowego--timeout <ms>: zastępuje domyślny limit czasu sondy wynoszący 10s--verbose: wymusza aktywną sondę i wyświetla szczegóły połączenia z Gateway--debug: alias dla--verbose
Migawka kondycji zawiera: ok (wartość logiczna), ts (znacznik czasu), durationMs (czas sondy), stan poszczególnych kanałów, dostępność agenta i podsumowanie magazynu sesji.