Skip to main content
Użyj IRC, gdy chcesz korzystać z OpenClaw w klasycznych kanałach (#room) i wiadomościach bezpośrednich. Zainstaluj oficjalny plugin IRC, a następnie skonfiguruj go w sekcji channels.irc.

Szybki start

  1. Zainstaluj plugin:
  1. Ustaw co najmniej host, pseudonim oraz kanały, do których bot ma dołączyć, w pliku ~/.openclaw/openclaw.json:
  1. Uruchom lub ponownie uruchom Gateway:
Do koordynacji botów preferuj prywatny serwer IRC. Jeśli świadomie korzystasz z publicznej sieci IRC, popularne opcje to Libera.Chat, OFTC i Snoonet. Unikaj przewidywalnych kanałów publicznych do komunikacji zaplecza botów lub roju.

Ustawienia połączenia

Domyślne ustawienia zabezpieczeń

  • IRC używa bezpośrednich gniazd TCP/TLS poza routingiem wychodzącego serwera proxy zarządzanym przez operatora OpenClaw. We wdrożeniach wymagających kierowania całego ruchu wychodzącego przez ten serwer proxy ustaw channels.irc.enabled=false, chyba że bezpośredni ruch wychodzący IRC został wyraźnie zatwierdzony.
  • Domyślną wartością channels.irc.dmPolicy jest "pairing": nieznani nadawcy wiadomości bezpośrednich otrzymują kod parowania, który zatwierdzasz poleceniem openclaw pairing approve irc <code>.
  • Domyślną wartością channels.irc.groupPolicy jest "allowlist".
  • Gdy groupPolicy="allowlist", ustaw channels.irc.groups, aby zdefiniować dozwolone kanały.
  • Używaj TLS (channels.irc.tls=true), chyba że świadomie akceptujesz przesyłanie tekstem jawnym.

Kontrola dostępu

Dla kanałów IRC istnieją dwie oddzielne „bramki”:
  1. Dostęp do kanału (groupPolicy + groups): określa, czy bot w ogóle przyjmuje wiadomości z danego kanału.
  2. Dostęp nadawcy (groupAllowFrom / groups["#channel"].allowFrom dla poszczególnych kanałów): określa, kto może uruchamiać bota na danym kanale.
Klucze konfiguracji:
  • Lista dozwolonych nadawców wiadomości bezpośrednich (dostęp nadawcy): channels.irc.allowFrom
  • Lista dozwolonych nadawców grupowych (dostęp nadawcy na kanale): channels.irc.groupAllowFrom
  • Ustawienia poszczególnych kanałów (reguły kanału, nadawcy i wzmianek): channels.irc.groups["#channel"] z kluczami requireMention, allowFrom, enabled, tools, toolsBySender, skills i systemPrompt
  • channels.irc.groupPolicy="open" zezwala na nieskonfigurowane kanały (domyślnie nadal wymaga wzmianki)
Wpisy na liście dozwolonych powinny używać stabilnych tożsamości nadawców (nick!user@host). Dopasowywanie wyłącznie pseudonimu jest podatne na zmiany i zostaje włączone tylko wtedy, gdy ustawiono channels.irc.dangerouslyAllowNameMatching: true.

Częsta pułapka: allowFrom dotyczy wiadomości bezpośrednich, a nie kanałów

Jeśli widzisz wpisy dziennika takie jak:
  • irc: drop group sender alice!ident@host (policy=allowlist)
…oznacza to, że nadawca nie był dozwolony dla wiadomości grupowych/kanałowych. Napraw to, wykonując jedną z następujących czynności:
  • ustaw channels.irc.groupAllowFrom (globalnie dla wszystkich kanałów) albo
  • ustaw listy dozwolonych nadawców dla poszczególnych kanałów: channels.irc.groups["#channel"].allowFrom
Przykład (zezwolenie wszystkim osobom na kanale #openclaw na komunikację z botem):

Wyzwalanie odpowiedzi (wzmianki)

Nawet jeśli kanał jest dozwolony (za pomocą groupPolicy + groups) i nadawca jest dozwolony, OpenClaw domyślnie wymaga wzmianki w kontekstach grupowych. Bot uznaje, że został wspomniany, gdy wiadomość zawiera pseudonim połączonego bota lub pasuje do skonfigurowanych wzorców wzmianek. Oznacza to, że możesz zobaczyć wpisy dziennika takie jak drop channel … (missing-mention), jeśli wiadomość nie zawiera wzorca wzmianki pasującego do bota. Aby bot odpowiadał na kanale IRC bez konieczności używania wzmianki, wyłącz wymóg wzmianki dla tego kanału:
Aby zezwolić na wszystkie kanały IRC (bez listy dozwolonych kanałów) i nadal odpowiadać bez wzmianek:

Uwaga dotycząca bezpieczeństwa (zalecenie dla kanałów publicznych)

Jeśli zezwolisz na allowFrom: ["*"] na kanale publicznym, każdy będzie mógł wysyłać polecenia do bota. Aby ograniczyć ryzyko, ogranicz narzędzia dla tego kanału.

Te same narzędzia dla wszystkich osób na kanale

Różne narzędzia dla poszczególnych nadawców (właściciel ma większe uprawnienia)

Użyj toolsBySender, aby zastosować bardziej restrykcyjne zasady do "*", a mniej restrykcyjne do swojego pseudonimu:
Uwagi:
  • Klucze toolsBySender powinny używać jawnych prefiksów (channel:, id:, e164:, username:, name:). W przypadku IRC użyj id: z wartością tożsamości nadawcy: id:alice lub id:alice!~alice@203.0.113.7, aby uzyskać dokładniejsze dopasowanie.
  • Starsze klucze bez prefiksu są nadal akceptowane, dopasowywane wyłącznie jako id: i powodują wyświetlenie ostrzeżenia o wycofaniu.
  • Obowiązują pierwsze pasujące zasady nadawcy; "*" jest rezerwowym symbolem wieloznacznym.
Więcej informacji o dostępie grupowym, wymaganiu wzmianki i ich wzajemnym oddziaływaniu znajdziesz tutaj: /channels/groups.

NickServ

Aby uwierzytelnić się w NickServ po nawiązaniu połączenia:
Uwierzytelnianie w NickServ jest domyślnie wykonywane zawsze, gdy ustawiono hasło (enabled trzeba ustawić na false tylko w celu rezygnacji). Domyślną wartością service jest NickServ; passwordFile stanowi alternatywę dla hasła password umieszczonego bezpośrednio w konfiguracji. Opcjonalna jednorazowa rejestracja podczas łączenia (register: true wymaga registerEmail):
Po zarejestrowaniu pseudonimu wyłącz register, aby uniknąć wielokrotnych prób wykonania polecenia REGISTER.

Zmienne środowiskowe

Konto domyślne obsługuje:
  • IRC_HOST
  • IRC_PORT
  • IRC_TLS
  • IRC_NICK
  • IRC_USERNAME
  • IRC_REALNAME
  • IRC_PASSWORD
  • IRC_CHANNELS (wartości rozdzielone przecinkami)
  • IRC_NICKSERV_PASSWORD
  • IRC_NICKSERV_REGISTER_EMAIL
Nie można ustawić IRC_HOST za pomocą pliku .env obszaru roboczego; zobacz Pliki .env obszaru roboczego.

Rozwiązywanie problemów

  • Jeśli bot łączy się, ale nigdy nie odpowiada na kanałach, sprawdź channels.irc.groups oraz czy wymóg wzmianki nie powoduje odrzucania wiadomości (missing-mention). Jeśli chcesz, aby odpowiadał bez oznaczania go, ustaw requireMention:false dla danego kanału.
  • Jeśli logowanie się nie powiedzie, sprawdź dostępność pseudonimu i hasło serwera.
  • Jeśli TLS nie działa w niestandardowej sieci, sprawdź host, port i konfigurację certyfikatu.

Powiązane materiały