// dokumentacja openclaw

Architektura OpenClaw — Gateway, klienci i protokół komunikacji

Przegląd architektury

Sercem OpenClaw jest scentralizowany system Gateway, który zarządza wszystkimi platformami komunikacyjnymi — WhatsApp, Telegram, Slack, Discord, Signal, iMessage, WebChat — przez jednego demona. Klienci control-plane i węzły (Nodes) łączą się przez WebSocket na skonfigurowanym hoście (domyślnie 127.0.0.1:18789).

Kluczowe komponenty

Gateway (demon)

Gateway utrzymuje połączenia z providerami kanałów, udostępnia typowane API WebSocket, waliduje ramki względem schematu JSON Schema i emituje zdarzenia: agent, chat, presence, health, heartbeat i sygnały cron.

Klienci

Aplikacje takie jak macOS app, CLI i panel webowy (web admin) utrzymują indywidualne połączenia WebSocket, wysyłając żądania i subskrybując zdarzenia. Każdy klient identyfikuje się urządzeniem podczas połączenia.

Węzły (Nodes)

Urządzenia — macOS, iOS, Android, headless — łączą się z rolą node, dostarczając tożsamość urządzenia i uzyskując dostęp do poleceń typu canvas.*, camera.*, screen.record, location.get.

Protokół połączeń

Protokół przewodowy używa WebSocket z ładunkami JSON. Pierwsza ramka musi być ramką connect. Kolejna komunikacja odbywa się w formacie żądanie-odpowiedź:

// Żądanie
{ "type": "req", "id": "abc123", "method": "agent", "params": {...} }

// Odpowiedź
{ "type": "res", "id": "abc123", "ok": true, "payload": {...} }

Uwierzytelnianie

System wspiera kilka metod uwierzytelniania:

  • Token współdzielony (shared secret)
  • Weryfikacja tożsamości Tailscale
  • Nagłówki zaufanego proxy — zależnie od konfiguracji

Bezpieczeństwo i parowanie urządzeń

Wszystkie klienty dołączają tożsamość urządzenia podczas połączenia. Nowe urządzenia wymagają zatwierdzenia parowania przed otrzymaniem tokenu urządzenia. Połączenia lokalne (loopback) mogą być zatwierdzane automatycznie, podczas gdy połączenia zdalne wymagają jawnego zatwierdzenia. System przypina metadane parowania i wymaga ponownego parowania, jeśli zmieni się platforma lub rodzina urządzenia.

Dostęp zdalny

Preferowane metody dostępu zdalnego to Tailscale lub VPN. Obsługiwane jest również tunelowanie SSH:

ssh -N -L 18789:127.0.0.1:18789 user@host

Uruchamianie i monitoring

Gateway uruchamia się poleceniem openclaw gateway. Monitorowanie stanu odbywa się metodą WebSocket health. Automatyczny restart można skonfigurować przez launchd (macOS) lub systemd (Linux).