Developer and self-hosted
IRC
Użyj IRC, gdy chcesz mieć OpenClaw w klasycznych kanałach (#room) i wiadomościach bezpośrednich.
IRC jest dostarczany jako dołączony Plugin, ale konfiguruje się go w głównej konfiguracji pod channels.irc.
Szybki start
- 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"],
},
},
}
Preferuj prywatny serwer IRC do koordynacji botów. Jeśli celowo używasz publicznej sieci IRC, popularne opcje to Libera.Chat, OFTC i Snoonet. Unikaj przewidywalnych kanałów publicznych dla ruchu zaplecza bota lub roju.
- Uruchom/uruchom ponownie bramę:
openclaw gateway run
Domyślne ustawienia bezpieczeństwa
- IRC używa surowych gniazd TCP/TLS poza trasowaniem przez zarządzany przez operatora OpenClaw forward proxy. W wdrożeniach, które wymagają, aby cały ruch wychodzący przechodził przez ten forward proxy, ustaw
channels.irc.enabled=false, chyba że bezpośredni ruch wychodzący IRC został jawnie 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
Istnieją dwie oddzielne „bramki” dla kanałów IRC:
- Dostęp do kanału (
groupPolicy+groups): czy bot w ogóle akceptuje wiadomości z kanału. - Dostęp nadawcy (
groupAllowFrom/groups["#channel"].allowFromdla kanału): kto może uruchamiać bota w tym kanale.
Klucze konfiguracji:
- Lista dozwolonych DM (dostęp nadawcy DM):
channels.irc.allowFrom - Lista dozwolonych nadawców grupowych (dostęp nadawcy w kanale):
channels.irc.groupAllowFrom - Kontrole dla kanału (kanał + nadawca + reguły wzmianek):
channels.irc.groups["#channel"] channels.irc.groupPolicy="open"zezwala na nieskonfigurowane kanały (nadal domyślnie wymagające wzmianki)
Wpisy listy dozwolonych powinny używać stabilnych tożsamości nadawców (nick!user@host).
Dopasowanie samego nicka jest zmienne i włączone tylko wtedy, gdy channels.irc.dangerouslyAllowNameMatching: true.
Częsta pułapka: allowFrom dotyczy DM, a nie 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 stosuje bramkowanie 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 kanału) i nadal odpowiadać bez wzmianek:
{
channels: {
irc: {
groupPolicy: "open",
groups: {
"*": { requireMention: false, allowFrom: ["*"] },
},
},
},
}
Uwaga dotycząca 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 ograniczyć 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:[email protected]dla silniejszego dopasowania. - Starsze klucze bez prefiksu są nadal akceptowane i dopasowywane wyłącznie jako
id:. - Wygrywa pierwsza pasująca polityka nadawcy;
"*"jest rezerwowym symbolem wieloznacznym.
Więcej informacji o dostępie grupowym i bramkowaniu wzmiankami (oraz o tym, jak współdziałają) 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: "[email protected]",
},
},
},
}
Wyłącz register po zarejestrowaniu nicka, aby uniknąć powtarzających się prób REGISTER.
Zmienne środowiskowe
Konto domyślne obsługuje:
IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(rozdzielone przecinkami)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST nie może być ustawione z pliku .env obszaru roboczego; zobacz pliki .env obszaru roboczego.
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 utwardzanie