Developer and self-hosted
IRC
Używaj 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 channels.irc.
Szybki start
- Zainstaluj Plugin:
openclaw plugins install @openclaw/irc- Włącz konfigurację IRC w
~/.openclaw/openclaw.json. - Ustaw co najmniej:
{ channels: { irc: { enabled: true, host: "irc.example.com", port: 6697, tls: true, nick: "openclaw-bot", channels: ["#openclaw"], }, },}Do koordynacji botów preferuj prywatny serwer IRC. Jeśli celowo używasz publicznej sieci IRC, częste wybory to Libera.Chat, OFTC i Snoonet. Unikaj przewidywalnych publicznych kanałów dla ruchu zaplecza botów lub rojów.
- Uruchom/uruchom ponownie Gateway:
openclaw gateway runDomyślne ustawienia bezpieczeństwa
- IRC używa surowych gniazd TCP/TLS poza routingiem przez przekazujący serwer proxy zarządzany przez operatora OpenClaw. We wdrożeniach, które wymagają całego ruchu wychodzącego przez ten przekazujący serwer proxy, ustaw
channels.irc.enabled=false, chyba że bezpośredni ruch wychodzący IRC jest wyraźnie zatwierdzony. channels.irc.dmPolicydomyślnie ma wartość"pairing".channels.irc.groupPolicydomyślnie ma wartość"allowlist".- Przy
groupPolicy="allowlist"ustawchannels.irc.groups, aby zdefiniować dozwolone kanały. - Używaj TLS (
channels.irc.tls=true), chyba że celowo akceptujesz transport tekstem jawnym.
Kontrola dostępu
Dla kanałów IRC istnieją dwie osobne „bramki”:
- Dostęp do kanału (
groupPolicy+groups): czy bot w ogóle przyjmuje wiadomości z kanału. - Dostęp nadawcy (
groupAllowFrom/groups["#channel"].allowFromdla kanału): kto może wyzwalać bota w tym kanale.
Klucze konfiguracji:
- Lista dozwolonych DM (dostęp nadawcy DM):
channels.irc.allowFrom - Lista dozwolonych nadawców grupy (dostęp nadawcy w kanale):
channels.irc.groupAllowFrom - Kontrole dla kanału (reguły kanału, nadawcy i wzmianek):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"zezwala na nieskonfigurowane kanały (nadal domyślnie wymagają wzmianki)
Wpisy listy dozwolonych powinny używać stabilnych tożsamości nadawców (nick!user@host).
Dopasowywanie samego nicka jest zmienne i włączone tylko wtedy, gdy channels.irc.dangerouslyAllowNameMatching: true.
Częsta pułapka: allowFrom jest dla DM, nie dla kanałów
Jeśli widzisz logi 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 przez:
- ustawienie
channels.irc.groupAllowFrom(globalnie dla wszystkich kanałów) albo - ustawienie list dozwolonych nadawców dla kanału:
channels.irc.groups["#channel"].allowFrom
Przykład (zezwól każdemu w #tuirc-dev na rozmowę z botem):
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#tuirc-dev": { allowFrom: ["*"] }, }, }, },}Wyzwalanie odpowiedzi (wzmianki)
Nawet jeśli kanał jest dozwolony (przez groupPolicy + groups) i nadawca jest dozwolony, OpenClaw domyślnie wymaga bramkowania wzmiankami w kontekstach grupowych.
Oznacza to, że możesz zobaczyć logi takie jak drop channel … (missing-mention), chyba że wiadomość zawiera wzorzec wzmianki pasujący do bota.
Aby bot odpowiadał w kanale IRC bez potrzeby wzmianki, wyłącz bramkowanie wzmiankami dla tego kanału:
{ channels: { irc: { groupPolicy: "allowlist", groups: { "#tuirc-dev": { requireMention: false, allowFrom: ["*"], }, }, }, },}Albo aby zezwolić na wszystkie kanały IRC (bez listy dozwolonych dla poszczególnych kanałów) i nadal odpowiadać bez wzmianek:
{ channels: { irc: { groupPolicy: "open", groups: { "*": { requireMention: false, allowFrom: ["*"] }, }, }, },}Uwaga bezpieczeństwa (zalecane dla kanałów publicznych)
Jeśli zezwolisz na allowFrom: ["*"] w kanale publicznym, każdy może wysłać prompt do bota.
Aby zmniejszyć ryzyko, ogranicz narzędzia dla tego kanału.
Te same narzędzia dla wszystkich w kanale
{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], tools: { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, }, }, }, },}Różne narzędzia dla poszczególnych nadawców (właściciel ma większe uprawnienia)
Użyj toolsBySender, aby zastosować surowszą politykę do "*" i luźniejszą do swojego nicka:
{ channels: { irc: { groups: { "#tuirc-dev": { allowFrom: ["*"], toolsBySender: { "*": { deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"], }, "id:eigen": { deny: ["gateway", "nodes", "cron"], }, }, }, }, }, },}Uwagi:
- Klucze
toolsBySenderpowinny używaćid:dla wartości tożsamości nadawcy IRC:id:eigenalboid:eigen!~eigen@174.127.248.171dla silniejszego dopasowania. - Starsze klucze bez prefiksu są nadal akceptowane i dopasowywane wyłącznie jako
id:. - Wygrywa pierwsza pasująca polityka nadawcy;
"*"jest awaryjnym symbolem wieloznacznym.
Więcej informacji o dostępie grupowym i bramkowaniu wzmiankami (oraz o ich współdziałaniu) znajdziesz tutaj: /channels/groups.
NickServ
Aby zidentyfikować się w NickServ po połączeniu:
{ channels: { irc: { nickserv: { enabled: true, service: "NickServ", password: "your-nickserv-password", }, }, },}Opcjonalna jednorazowa rejestracja przy połączeniu:
{ channels: { irc: { nickserv: { register: true, registerEmail: "bot@example.com", }, }, },}Wyłącz register po zarejestrowaniu nicka, aby uniknąć powtarzanych prób REGISTER.
Zmienne środowiskowe
Konto domyślne obsługuje:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(oddzielone przecinkami)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST nie może być ustawione z pliku .env w workspace; zobacz pliki .env workspace.
Rozwiązywanie problemów
- Jeśli bot łączy się, ale nigdy nie odpowiada w kanałach, sprawdź
channels.irc.groupsoraz czy bramkowanie wzmiankami odrzuca wiadomości (missing-mention). Jeśli chcesz, aby odpowiadał bez pingów, ustawrequireMention:falsedla kanału. - Jeśli logowanie się nie powiedzie, sprawdź dostępność nicka i hasło serwera.
- Jeśli TLS nie działa w niestandardowej sieci, sprawdź host/port i konfigurację certyfikatu.
Powiązane
- Przegląd kanałów — wszystkie obsługiwane kanały
- Parowanie — uwierzytelnianie DM i przepływ parowania
- Grupy — zachowanie czatu grupowego i bramkowanie wzmiankami
- Routing kanałów — routing sesji dla wiadomości
- Bezpieczeństwo — model dostępu i wzmacnianie zabezpieczeń