#room) i wiadomościach bezpośrednich.
Zainstaluj oficjalny plugin IRC, a następnie skonfiguruj go w sekcji channels.irc.
Szybki start
- Zainstaluj plugin:
- Ustaw co najmniej host, pseudonim oraz kanały, do których bot ma dołączyć, w pliku
~/.openclaw/openclaw.json:
- Uruchom lub ponownie uruchom Gateway:
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.dmPolicyjest"pairing": nieznani nadawcy wiadomości bezpośrednich otrzymują kod parowania, który zatwierdzasz poleceniemopenclaw pairing approve irc <code>. - Domyślną wartością
channels.irc.groupPolicyjest"allowlist". - Gdy
groupPolicy="allowlist", ustawchannels.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”:- Dostęp do kanału (
groupPolicy+groups): określa, czy bot w ogóle przyjmuje wiadomości z danego kanału. - Dostęp nadawcy (
groupAllowFrom/groups["#channel"].allowFromdla poszczególnych kanałów): określa, kto może uruchamiać bota na danym kanale.
- 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 kluczamirequireMention,allowFrom,enabled,tools,toolsBySender,skillsisystemPrompt channels.irc.groupPolicy="open"zezwala na nieskonfigurowane kanały (domyślnie nadal wymaga wzmianki)
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)
- 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
#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:
Uwaga dotycząca bezpieczeństwa (zalecenie dla kanałów publicznych)
Jeśli zezwolisz naallowFrom: ["*"] 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żyjtoolsBySender, aby zastosować bardziej restrykcyjne zasady do "*", a mniej restrykcyjne do swojego pseudonimu:
- Klucze
toolsBySenderpowinny używać jawnych prefiksów (channel:,id:,e164:,username:,name:). W przypadku IRC użyjid:z wartością tożsamości nadawcy:id:alicelubid: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.
NickServ
Aby uwierzytelnić się w NickServ po nawiązaniu połączenia: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):
register, aby uniknąć wielokrotnych prób wykonania polecenia REGISTER.
Zmienne środowiskowe
Konto domyślne obsługuje:IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(wartości rozdzielone przecinkami)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
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.groupsoraz czy wymóg wzmianki nie powoduje odrzucania wiadomości (missing-mention). Jeśli chcesz, aby odpowiadał bez oznaczania go, ustawrequireMention:falsedla 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
- Przegląd kanałów — wszystkie obsługiwane kanały
- Parowanie — uwierzytelnianie wiadomości bezpośrednich i proces parowania
- Grupy — zachowanie czatu grupowego i wymóg wzmianki
- Routing kanałów — routing sesji dla wiadomości
- Bezpieczeństwo — model dostępu i wzmacnianie zabezpieczeń