1. Jak dziala integracja WhatsApp?
OpenClaw łączy się z WhatsApp za pomoca biblioteki Baileys — open-source'owej implementacji protokolu WhatsApp Web napisanej w TypeScript. To ta sama technologia, która uzywa WhatsApp Web w przegladarce, ale zamiast wyswietlac interfejs graficzny, OpenClaw przetwarza wiadomosci programistycznie.
W praktyce oznacza to, ze OpenClaw dziala jak dodatkowe "powiazane urządzenie" (Linked Device) na Twoim koncie WhatsApp — dokladnie tak samo jak WhatsApp Desktop czy WhatsApp Web. Twój telefon pozostaje glownym urzadzeniem, a OpenClaw łączy się jako urządzenie pomocnicze.
Architektura połączenia
Telefon (WhatsApp główny) → serwery WhatsApp → WebSocket → OpenClaw Gateway (Baileys) → przetwarzanie AI → odpowiedź przez WebSocket → serwery WhatsApp → odbiorca
Gateway w OpenClaw kontroluje połączenie WebSocket i obsluguje automatyczne ponowne łączenie w przypadku zerwania połączenia. Wszystkie wiadomosci przechodzace przez gateway sa przetwarzane przez skonfigurowane agenty AI i skills.
Ważne zastrzezenie
WhatsApp oficjalnie nie wspiera nieoficjalnych klientow. Uzycie Baileys jest niezgodne z regulaminem WhatsApp i niesie ryzyko zablokowania konta. OpenClaw nie jest produktem ani partnerem Meta/WhatsApp. Więcej o tym w sekcji Bezpieczeństwo.
2. Wymagania wstepne
Zanim zaczniesz konfigurowac kanal WhatsApp, upewnij się, ze masz przygotowane następujące rzeczy:
- ✓ OpenClaw zainstalowany i dzialajacy — jeśli jeszcze nie masz, zobacz poradnik instalacji
- ✓ Node.js 20 lub nowszy — Bun nie jest wspierany dla kanalu WhatsApp (stabilnosc WebSocket)
- ✓ Telefon z aktywnym WhatsApp — najlepiej z dedykowanym numerem (nie Twój główny numer osobisty)
- ✓ Skonfigurowany model AI — np. Claude, GPT-4, Gemini lub model lokalny
- ✓ Stabilne połączenie internetowe — gateway musi byc włączony 24/7 dla ciaglej komunikacji
Rekomendacja: dedykowany numer
OpenClaw zdecydowanie zaleca uzywanie osobnego numeru telefonu dla integracji WhatsApp. Jeśli Twój główny numer zostanie zablokowany, stracisz dostep do wszystkich rozmow. Prepaidowa karta SIM za 5-10 PLN to tania polisa ubezpieczeniowa.
3. Instalacja pluginu WhatsApp
WhatsApp jest dostarczany jako oficjalny plugin OpenClaw. Instalacja to jedna komenda:
$ openclaw plugins install @openclaw/whatsapp
Możesz też zainstalowac plugin automatycznie przy pierwszym wyborze kanalu WhatsApp:
$ openclaw channels add --channel whatsapp
Po instalacji sprawdz, czy plugin zostal poprawnie zaladowany:
$ openclaw channels status
Powinienes zobaczyc kanal whatsapp na liscie z informacja "not linked" — to normalne, bo jeszcze nie polaczyles konta.
4. Logowanie przez QR kod
Połączenie z WhatsApp odbywa się identycznie jak łączenie WhatsApp Web — skanujesz kod QR telefonem. Oto dokladne kroki:
Uruchom komende logowania
$ openclaw channels login --channel whatsapp
W terminalu pojawi się kod QR w postaci ASCII art.
Otworz WhatsApp na telefonie
Przejdz do: Ustawienia > Powiazane urządzenia > Powiaz urządzenie
Zeskanuj QR kod
Wyceluj aparatem telefonu w kod QR wyswietlony w terminalu. Połączenie nastapi w ciagu kilku sekund.
Zweryfikuj połączenie
$ openclaw channels status
# whatsapp: linked (default account) Status powinien pokazac "linked". Jeśli nie — sprobuj ponownie.
Jeśli uzywasz wielu kont (np. prywatne i sluzbowe), możesz zalogowac się na konkretne konto:
$ openclaw channels login --channel whatsapp --account work
Dane uwierzytelniajace sa przechowywane w ~/.openclaw/credentials/whatsapp/<accountId>/creds.json. Traktuj ten plik jak haslo — nie udostepniaj go nikomu i nie wrzucaj do repozytorium Git.
5. Konfiguracja polityk dostepu
Po polaczeniu musisz zdecydowac, kto może rozmawiac z Twoim asystentem AI. OpenClaw oferuje cztery tryby dostepu dla wiadomosci prywatnych (DM):
| Tryb (dmPolicy) | Opis | Kiedy uzywac |
|---|---|---|
| pairing | Nowi nadawcy dostaja kod parowania, który musisz zatwierdzic | Domyslny — dobry balans bezpieczeństwa i wygody |
| allowlist | Tylko numery z listy allowFrom moga pisac | Najwyzsze bezpieczeństwo — dla dedykowanych numerow |
| open | Kazdy może pisac bez ograniczen | Tylko dla testow — nigdy na produkcji! |
| disabled | Wiadomosci prywatne całkowicie wylaczone | Gdy uzywasz tylko czatow grupowych |
Przykład: konfiguracja z allowlista
Dla dedykowanego numeru, gdzie chcesz dopuscic tylko swoj osobisty telefon:
// openclaw.config.json5 { channels: { whatsapp: { dmPolicy: "allowlist", allowFrom: ["+48501234567"], }, }, }
Przykład: tryb parowania
W trybie parowania, gdy ktos nowy napisze do bota, dostanie kod, który musisz zatwierdzic:
// openclaw.config.json5 { channels: { whatsapp: { dmPolicy: "pairing", allowFrom: ["+48501234567"], }, }, }
Zatwierdzanie oczekujących parowan:
# Lista oczekujących parowan $ openclaw pairing list whatsapp # Zatwierdzenie konkretnego kodu $ openclaw pairing approve whatsapp ABC123
Ograniczenia trybu parowania
Kody parowania wygasaja po 1 godzinie. Jednoczesnie może oczekiwac maksymalnie 3 prosb o parowanie na kanal. Zatwierdzone parowania sa zapisywane trwale w allow-store kanalu.
6. Integracja z czatami grupowymi
OpenClaw może dzialac w czatach grupowych WhatsApp, odpowiadajac na wiadomosci oznaczajace bota lub na wszystkie wiadomosci w grupie. Konfiguracja grupowa jest niezalezna od polityki DM.
Ustawienia grupowe
// openclaw.config.json5 { channels: { whatsapp: { dmPolicy: "pairing", allowFrom: ["+48501234567"], groupPolicy: "allowlist", groupAllowFrom: ["+48501234567", "+48509876543"], }, }, }
Pole groupPolicy przyjmuje wartości:
- open — kazdy w grupie może wyzwalac odpowiedzi bota
- allowlist — tylko numery z groupAllowFrom moga aktywowac bota
- disabled — bot ignoruje wszystkie wiadomosci grupowe
Wyzwalanie bota w grupie
Bot w grupie reaguje na wzmianki (mentions). Wzmianke można wywolac na trzy sposoby:
- ✓ Natywna wzmianka WhatsApp (oznaczenie @)
- ✓ Skonfigurowane wzorce regex (mention patterns)
- ✓ Odpowiedź (reply) na wiadomosc bota
Możesz też przelaczac tryb aktywacji w trakcie sesji komendami:
# Bot reaguje na wszystkie wiadomosci w grupie /activation always # Bot reaguje tylko na wzmianki (domyslne) /activation mention
7. Multi-device i limity polaczen
WhatsApp pozwala na połączenie maksymalnie 4 powiazanych urządzeń jednoczesnie (nie liczac głównego telefonu). OpenClaw zajmuje jeden slot, wiec zostaja Ci 3 wolne miejsca na:
- • WhatsApp Web (przegladarka)
- • WhatsApp Desktop (Windows/macOS)
- • Inne powiazane urządzenie
OpenClaw obsluguje też wiele kont WhatsApp jednoczesnie. Kazde konto to osobne połączenie z wlasnym tokenem sesji:
// Konfiguracja wielu kont { channels: { whatsapp: { accounts: { personal: { sendReadReceipts: true, }, work: { sendReadReceipts: false, mediaMaxMb: 100, }, }, }, }, }
8. Bezpieczeństwo i ryzyko bana
Ostrzezenie: ryzyko zablokowania konta
WhatsApp aktywnie wykrywa i blokuje nieoficjalnych klientow. Uzycie OpenClaw (Baileys) jest niezgodne z regulaminem WhatsApp i może skutkowac:
- ✗ Tymczasowa blokada konta (ban na 24h-72h)
- ✗ Permanentna blokada numeru telefonu
- ✗ Utrata calej historii rozmow i kontaktow
Dlatego nigdy nie uzywaj swojego głównego numeru osobistego. Zawsze korzystaj z dedykowanego numeru, którego ewentualna utrata nie będzie bolesna.
Ochrona danych sesji
Plik creds.json w katalogu ~/.openclaw/credentials/whatsapp/ zawiera klucze sesji WhatsApp. Traktuj go jak haslo:
- ✓ Dodaj
.openclaw/do.gitignore - ✓ Ustaw odpowiednie uprawnienia:
chmod 600 creds.json - ✓ Nie udostepniaj tego pliku przez internet
- ✓ OpenClaw tworzy automatyczny backup jako
creds.json.bak
Ochrona przed self-chat
Jeśli Twój wlasny numer jest na liscie allowFrom, OpenClaw automatycznie wlacza zabezpieczenia dla wiadomosci do samego siebie:
- • Potwierdzenia odczytu (read receipts) sa pomijane
- • Automatyczne wyzwalanie przez wzmianka JID jest wylaczone
- • Odpowiedzi sa oznaczone prefiksem
[openclaw]lub nazwa agenta
9. Best practices — jak unikac bana
Na podstawie doświadczeń spolecznosci OpenClaw i wiedzy o systemach anti-automation WhatsApp, oto sprawdzone praktyki minimalizujace ryzyko blokady:
Rób
- ✓ Uzywaj dedykowanego numeru (nie głównego)
- ✓ Ustaw dmPolicy: "allowlist" z konkretna lista numerow
- ✓ Ogranicz liczbę wiadomosci wychodzacych na minute
- ✓ Odpowiadaj w naturalnym tempie (nie natychmiastowo)
- ✓ Uzywaj
debounceMsaby opoznic przetwarzanie - ✓ Monitoruj logi na biezaco:
openclaw logs --follow
Nie rób
- ✗ Nie wysylaj masowych wiadomosci (spam)
- ✗ Nie podlaczaj się do zbyt wielu grup jednoczesnie
- ✗ Nie ustawiaj
dmPolicy: "open"na produkcji - ✗ Nie uzywaj Bun — tylko Node.js (stabilnosc WebSocket)
- ✗ Nie ignoruj błędów reconnect — moga sygnalizowac ban
- ✗ Nie loguj się z wielu lokalizacji IP jednoczesnie
Wskazowka: potwierdzenia odczytu
Rozwaz wyłączenie potwierdzen odczytu, aby bot zachowywal się bardziej "ludzko". Ustawiasz to w konfiguracji:
sendReadReceipts: false
10. Obsługa mediow
OpenClaw obsluguje przesylanie i odbieranie różnych typow mediow przez WhatsApp:
Obslugiwane formaty
- Obrazy (JPEG, PNG, WebP)
- Wideo (MP4, AVI)
- Audio / wiadomosci glosowe (OGG Opus)
- Dokumenty (PDF, DOCX, itp.)
- GIFy animowane
- Naklejki (stickery)
Limity i optymalizacja
- Domyslny limit: 50 MB na plik
- Konfigurowalny przez
mediaMaxMb - Automatyczna optymalizacja rozmiaru obrazow
- Audio OGG przeformatowane do formatu opus
- Fallback na tekst w razie błędu
W wiadomosciach przychodzacych, media sa reprezentowane jako placeholdery, które agent AI może interpretowac:
<media:image> <media:video> <media:audio> <media:document> <media:sticker>
Kontekst odpowiedzi (reply) jest automatycznie dolaczany w formacie: [Replying to <sender> id:<stanzaId>]. Lokalizacja i kontakty sa normalizowane do tekstu.
11. Troubleshooting — najczestsze problemy
Poniżej znajdziesz rozwiązania najczesciej spotykanych problemow z kanalem WhatsApp w OpenClaw.
Problem: "Not linked" po restarcie
Sesja wygasla lub plik creds.json zostal uszkodzony.
Rozwiązanie:
$ openclaw channels login --channel whatsapp
# Zeskanuj QR kod ponownie Problem: Bot ignoruje wiadomosci grupowe
Najczesciej związane z niepoprawna konfiguracja grupowa.
Checklist rozwiazywania:
- 1. Sprawdz
groupPolicy— czy nie jest "disabled"? - 2. Sprawdz
groupAllowFrom— czy numer nadawcy jest na liscie? - 3. Sprawdz mention gating — czy bot wymaga wzmianki?
- 4. Sprawdz
groupsallowlist — czy grupa jest na liscie? - 5. Szukaj duplikatow kluczy w pliku JSON5 (czesty błąd!)
Problem: Połączenie zrywa się co kilka godzin
Może byc związane z siecia, IPv6 lub runtime.
Rozwiązanie:
# Diagnostyka $ openclaw doctor $ openclaw logs --follow # Sprawdz, czy uzywasz Node.js (nie Bun) $ node --version
Problem: Wiadomosci nie dochodza
Może oznaczac brak aktywnego listenera lub problemy z gateway.
Rozwiązanie:
# Sprawdz status połączenia $ openclaw channels status # Upewnij się, ze gateway jest uruchomiony $ openclaw gateway
Problem: Ogólna diagnostyka
Jeśli nie wiesz, co jest nie tak — zacznij od tych komend:
$ openclaw doctor # Pełna diagnostyka $ openclaw channels status # Status kanalow $ openclaw logs --follow # Logi na zywo
12. Podsumowanie i następne kroki
Gratulacje! Jeśli wykonales wszystkie kroki, Twój asystent AI OpenClaw powinien byc teraz dostepny przez WhatsApp. Oto szybkie podsumowanie tego, co skonfigurowalas:
- ✓ Plugin WhatsApp zainstalowany i polaczony przez QR
- ✓ Polityki dostepu (DM i grupy) skonfigurowane
- ✓ Bezpieczeństwo zweryfikowane (dedykowany numer, creds.json chroniony)
- ✓ Gateway uruchomiony i nasluchujacy