Gateway
Instrukcja operacyjna Gateway
Użyj tej strony do uruchomienia usługi Gateway w dniu 1 oraz operacji w dniu 2.
Diagnostyka według objawów z dokładnymi sekwencjami poleceń i sygnaturami logów.
Zadaniowy przewodnik konfiguracji + pełne odniesienie konfiguracji.
Kontrakt SecretRef, zachowanie migawki środowiska uruchomieniowego oraz operacje migracji/przeładowania.
Dokładne reguły celu/ścieżki secrets apply oraz zachowanie profilu auth tylko z referencjami.
5-minutowe lokalne uruchomienie
Uruchom Gateway
openclaw gateway --port 18789# debug/trace mirrored to stdioopenclaw gateway --port 18789 --verbose# force-kill listener on selected port, then startopenclaw gateway --forceZweryfikuj kondycję usługi
openclaw gateway statusopenclaw statusopenclaw logs --followZdrowa baza: Runtime: running, Connectivity probe: ok oraz Capability: ... zgodne z oczekiwaniami. Użyj openclaw gateway status --require-rpc, gdy potrzebujesz dowodu RPC z zakresem odczytu, a nie tylko osiągalności.
Sprawdź gotowość kanałów
openclaw channels status --probePrzy osiągalnym Gateway uruchamia to aktywne sondy kanałów dla każdego konta oraz opcjonalne audyty. Jeśli Gateway jest nieosiągalny, CLI przełącza się na podsumowania kanałów wyłącznie z konfiguracji zamiast wyniku aktywnej sondy.
Model środowiska uruchomieniowego
- Jeden stale działający proces do routingu, płaszczyzny sterowania i połączeń kanałów.
- Pojedynczy multipleksowany port dla:
- Sterowania/RPC przez WebSocket
- API HTTP (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Tras HTTP Plugin, takich jak opcjonalne
/api/v1/admin/rpc - Control UI i hooków
- Domyślny tryb wiązania:
loopback. - Uwierzytelnianie jest domyślnie wymagane. Konfiguracje ze współdzielonym sekretem używają
gateway.auth.token/gateway.auth.password(lubOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), a konfiguracje reverse proxy poza local loopback mogą używaćgateway.auth.mode: "trusted-proxy".
Punkty końcowe zgodne z OpenAI
Najważniejsza powierzchnia zgodności OpenClaw to teraz:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Dlaczego ten zestaw ma znaczenie:
- Większość integracji Open WebUI, LobeChat i LibreChat najpierw sonduje
/v1/models. - Wiele potoków RAG i pamięci oczekuje
/v1/embeddings. - Klienci natywni dla agentów coraz częściej preferują
/v1/responses.
Uwaga planistyczna:
/v1/modelsjest ukierunkowany na agentów: zwracaopenclaw,openclaw/defaultiopenclaw/<agentId>.openclaw/defaultto stabilny alias, który zawsze mapuje się na skonfigurowanego agenta domyślnego.- Użyj
x-openclaw-model, gdy chcesz nadpisać dostawcę/model backendu; w przeciwnym razie kontrolę zachowuje normalna konfiguracja modelu i embeddingów wybranego agenta.
Wszystkie te punkty działają na głównym porcie Gateway i używają tej samej granicy uwierzytelniania zaufanego operatora co pozostała część API HTTP Gateway.
Administracyjne RPC HTTP (POST /api/v1/admin/rpc) to osobna, domyślnie wyłączona trasa Plugin dla narzędzi hosta, które nie mogą używać RPC przez WebSocket. Zobacz Administracyjne RPC HTTP.
Priorytet portu i wiązania
| Ustawienie | Kolejność rozwiązywania |
|---|---|
| Port Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Tryb wiązania | CLI/override → gateway.bind → loopback |
Zainstalowane usługi gateway zapisują rozwiązane --port w metadanych nadzorcy. Po zmianie gateway.port uruchom openclaw doctor --fix lub openclaw gateway install --force, aby launchd/systemd/schtasks uruchamiał proces na nowym porcie.
Uruchamianie Gateway używa tego samego efektywnego portu i wiązania, gdy zasila lokalne
źródła Control UI dla wiązań poza local loopback. Na przykład --bind lan --port 3000
zasila http://localhost:3000 i http://127.0.0.1:3000, zanim uruchomi się walidacja
środowiska uruchomieniowego. Dodaj jawnie wszelkie źródła zdalnych przeglądarek, takie jak adresy URL proxy HTTPS, do
gateway.controlUi.allowedOrigins.
Tryby hot reload
gateway.reload.mode |
Zachowanie |
|---|---|
off |
Brak przeładowania konfiguracji |
hot |
Stosuje tylko zmiany bezpieczne dla hot reload |
restart |
Restartuje przy zmianach wymagających przeładowania |
hybrid (domyślnie) |
Stosuje hot-apply, gdy jest bezpiecznie; restartuje, gdy jest to wymagane |
Zestaw poleceń operatora
openclaw gateway statusopenclaw gateway status --deep # adds a system-level service scanopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctorgateway status --deep służy do dodatkowego wykrywania usług (LaunchDaemons/jednostki systemowe systemd/schtasks), a nie do głębszej sondy kondycji RPC.
Wiele gatewayów (ten sam host)
Większość instalacji powinna uruchamiać jeden gateway na maszynę. Pojedynczy gateway może obsługiwać wielu agentów i wiele kanałów.
Potrzebujesz wielu gatewayów tylko wtedy, gdy celowo chcesz izolacji lub bota ratunkowego.
Przydatne kontrole:
openclaw gateway status --deepopenclaw gateway probeCzego się spodziewać:
gateway status --deepmoże zgłosićOther gateway-like services detected (best effort)i wypisać wskazówki czyszczenia, gdy nadal istnieją przestarzałe instalacje launchd/systemd/schtasks.gateway probemoże ostrzec omultiple reachable gateway identities, gdy odpowiadają różne gatewaye albo gdy OpenClaw nie może udowodnić, że osiągalne cele są tym samym Gateway. Tunel SSH, URL proxy lub skonfigurowany zdalny URL do tego samego Gateway to jeden gateway z wieloma transportami, nawet gdy porty transportu się różnią.- Jeśli jest to zamierzone, odizoluj porty, konfigurację/stan oraz katalogi główne przestrzeni roboczych dla każdego Gateway.
Lista kontrolna dla każdej instancji:
- Unikalny
gateway.port - Unikalny
OPENCLAW_CONFIG_PATH - Unikalny
OPENCLAW_STATE_DIR - Unikalny
agents.defaults.workspace
Przykład:
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 19002Szczegółowa konfiguracja: /gateway/multiple-gateways.
Dostęp zdalny
Preferowane: Tailscale/VPN. Rozwiązanie awaryjne: tunel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@hostNastępnie podłączaj klientów lokalnie do ws://127.0.0.1:18789.
Zobacz: Zdalny Gateway, Uwierzytelnianie, Tailscale.
Nadzór i cykl życia usługi
Używaj nadzorowanych uruchomień, aby uzyskać niezawodność podobną do produkcyjnej.
macOS (launchd)
openclaw gateway installopenclaw gateway statusopenclaw gateway restartopenclaw gateway stopUżywaj openclaw gateway restart do ponownych uruchomień. Nie łącz openclaw gateway stop i openclaw gateway start jako zamiennika ponownego uruchomienia.
W macOS gateway stop domyślnie używa launchctl bootout — usuwa to LaunchAgent z bieżącej sesji rozruchowej bez trwałego wyłączania, więc automatyczne odzyskiwanie KeepAlive nadal działa po nieoczekiwanych awariach, a gateway start ponownie włącza usługę w czysty sposób. Aby trwale zablokować automatyczne ponowne uruchamianie między restartami systemu, przekaż --disable: openclaw gateway stop --disable.
Etykiety LaunchAgent to ai.openclaw.gateway (domyślna) lub ai.openclaw.<profile> (nazwany profil). openclaw doctor audytuje i naprawia rozjazdy konfiguracji usługi.
Linux (systemd użytkownika)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusAby zachować działanie po wylogowaniu, włącz lingering:
sudo loginctl enable-linger <user>Przykład ręcznej jednostki użytkownika, gdy potrzebujesz niestandardowej ścieżki instalacji:
[Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.target [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.targetWindows (natywnie)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopNatywne zarządzane uruchamianie w Windows używa zaplanowanego zadania o nazwie OpenClaw Gateway
(lub OpenClaw Gateway (<profile>) dla nazwanych profili). Jeśli utworzenie zaplanowanego zadania
zostanie odrzucone, OpenClaw przechodzi awaryjnie na launcher w folderze Autostart dla danego użytkownika,
który wskazuje na gateway.cmd w katalogu stanu.
Linux (usługa systemowa)
Użyj jednostki systemowej dla hostów wieloużytkownikowych lub stale włączonych.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceUżyj tej samej treści usługi co w jednostce użytkownika, ale zainstaluj ją w
/etc/systemd/system/openclaw-gateway[-<profile>].service i dostosuj
ExecStart=, jeśli plik binarny openclaw znajduje się gdzie indziej.
Nie pozwalaj także, aby openclaw doctor --fix instalował usługę Gateway na poziomie użytkownika dla tego samego profilu/portu. Doctor odmawia takiej automatycznej instalacji, gdy znajdzie usługę Gateway OpenClaw na poziomie systemowym; użyj OPENCLAW_SERVICE_REPAIR_POLICY=external, gdy jednostka systemowa odpowiada za cykl życia.
Szybka ścieżka profilu deweloperskiego
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusWartości domyślne obejmują odizolowany stan/konfigurację oraz bazowy port Gateway 19001.
Skrócona dokumentacja protokołu (widok operatora)
- Pierwszą ramką klienta musi być
connect. - Gateway zwraca migawkę
hello-ok(presence,health,stateVersion,uptimeMs, limity/polityka). hello-ok.features.methods/eventsto zachowawcza lista wykrywania, a nie wygenerowany zrzut każdej wywoływalnej trasy pomocniczej.- Żądania:
req(method, params)→res(ok/payload|error). - Typowe zdarzenia obejmują
connect.challenge,agent,chat,session.message,session.operation,session.tool,sessions.changed,presence,tick,health,heartbeat, zdarzenia cyklu życia parowania/zatwierdzania orazshutdown.
Uruchomienia agenta są dwuetapowe:
- Natychmiastowe potwierdzenie przyjęcia (
status:"accepted") - Końcowa odpowiedź zakończenia (
status:"ok"|"error"), z przesyłanymi strumieniowo zdarzeniamiagentpomiędzy.
Zobacz pełną dokumentację protokołu: Protokół Gateway.
Kontrole operacyjne
Aktywność
- Otwórz WS i wyślij
connect. - Oczekuj odpowiedzi
hello-okz migawką.
Gotowość
openclaw gateway statusopenclaw channels status --probeopenclaw healthOdzyskiwanie po lukach
Zdarzenia nie są odtwarzane. W przypadku luk w sekwencji odśwież stan (health, system-presence) przed kontynuacją.
Typowe sygnatury awarii
| Sygnatura | Prawdopodobny problem |
|---|---|
refusing to bind gateway ... without auth |
Wiązanie inne niż loopback bez prawidłowej ścieżki uwierzytelniania Gateway |
another gateway instance is already listening / EADDRINUSE |
Konflikt portu |
Gateway start blocked: set gateway.mode=local |
Konfiguracja ustawiona na tryb zdalny albo w uszkodzonej konfiguracji brakuje znacznika trybu lokalnego |
unauthorized podczas łączenia |
Niezgodność uwierzytelniania między klientem a Gateway |
Pełne ścieżki diagnostyczne znajdziesz w sekcji Rozwiązywanie problemów z Gateway.
Gwarancje bezpieczeństwa
- Klienci protokołu Gateway szybko kończą działanie, gdy Gateway jest niedostępny (bez niejawnego powrotu do kanału bezpośredniego).
- Nieprawidłowe pierwsze ramki lub pierwsze ramki bez połączenia są odrzucane i zamykane.
- Płynne zamknięcie emituje zdarzenie
shutdownprzed zamknięciem gniazda.
Powiązane: