#room) і приватних повідомленнях.
Установіть офіційний Plugin IRC, а потім налаштуйте його в channels.irc.
Швидкий початок
- Установіть Plugin:
- Укажіть у
~/.openclaw/openclaw.jsonщонайменше хост, нік і канали, до яких потрібно приєднатися:
- Запустіть або перезапустіть Gateway:
Налаштування з’єднання
Типові налаштування безпеки
- IRC використовує необроблені сокети TCP/TLS поза маршрутизацією через керований оператором OpenClaw прямий проксі-сервер. У розгортаннях, де весь вихідний трафік має проходити через цей прямий проксі-сервер, установіть
channels.irc.enabled=false, якщо прямий вихідний трафік IRC явно не схвалено. - Типове значення
channels.irc.dmPolicy—"pairing": невідомі відправники приватних повідомлень отримують код сполучення, який ви схвалюєте командоюopenclaw pairing approve irc <code>. - Типове значення
channels.irc.groupPolicy—"allowlist". - Якщо задано
groupPolicy="allowlist", налаштуйтеchannels.irc.groups, щоб визначити дозволені канали. - Використовуйте TLS (
channels.irc.tls=true), якщо ви свідомо не погоджуєтеся на передавання даних без шифрування.
Керування доступом
Для каналів IRC є два окремі «шлюзи»:- Доступ до каналу (
groupPolicy+groups): чи приймає бот узагалі повідомлення з каналу. - Доступ відправника (
groupAllowFrom/groups["#channel"].allowFromдля окремого каналу): хто може активувати бота в цьому каналі.
- Список дозволених для приватних повідомлень (доступ відправників приватних повідомлень):
channels.irc.allowFrom - Список дозволених відправників у групах (доступ відправників каналу):
channels.irc.groupAllowFrom - Налаштування окремого каналу (правила каналу, відправників і згадок):
channels.irc.groups["#channel"]ізrequireMention,allowFrom,enabled,tools,toolsBySender,skillsіsystemPrompt channels.irc.groupPolicy="open"дозволяє неналаштовані канали (але типово все одно вимагає згадки)
nick!user@host).
Зіставлення лише за ніком ненадійне й вмикається тільки за умови channels.irc.dangerouslyAllowNameMatching: true.
Поширена помилка: allowFrom призначено для приватних повідомлень, а не каналів
Якщо в журналах з’являються записи на кшталт:
irc: drop group sender alice!ident@host (policy=allowlist)
- установити
channels.irc.groupAllowFrom(глобально для всіх каналів) або - налаштувати списки дозволених відправників для окремих каналів:
channels.irc.groups["#channel"].allowFrom
#openclaw спілкуватися з ботом):
Умови відповіді (згадки)
Навіть якщо канал дозволено (черезgroupPolicy + groups) і відправник має доступ, OpenClaw типово вимагає згадки в групових контекстах. Бот вважається згаданим, якщо повідомлення містить нік підключеного бота або відповідає налаштованим вами шаблонам згадки.
Тому в журналах можуть з’являтися записи на кшталт drop channel … (missing-mention), якщо повідомлення не містить шаблону згадки, що відповідає боту.
Щоб бот відповідав у каналі IRC без потреби в згадці, вимкніть вимогу згадки для цього каналу:
Примітка щодо безпеки (рекомендовано для загальнодоступних каналів)
Якщо в загальнодоступному каналі дозволитиallowFrom: ["*"], будь-хто зможе надсилати боту запити.
Щоб зменшити ризик, обмежте інструменти для цього каналу.
Однакові інструменти для всіх учасників каналу
Різні інструменти для різних відправників (власник має більше повноважень)
ВикористовуйтеtoolsBySender, щоб застосувати суворішу політику до "*" і м’якшу — до свого ніка:
- Ключі
toolsBySenderмають використовувати явні префікси (channel:,id:,e164:,username:,name:). Для IRC використовуйтеid:зі значенням ідентифікатора відправника:id:aliceабоid:alice!~alice@203.0.113.7для точнішого зіставлення. - Застарілі ключі без префіксів усе ще приймаються, зіставляються лише як
id:і спричиняють попередження про припинення підтримки. - Застосовується перша політика відправника, що збігається;
"*"є універсальним резервним варіантом.
NickServ
Щоб ідентифікуватися в NickServ після підключення:enabled потрібно встановити в false лише для відмови від неї). Типове значення service — NickServ; passwordFile є альтернативою вбудованому значенню password.
Необов’язкова одноразова реєстрація під час підключення (register: true потребує registerEmail):
register, щоб уникнути повторних спроб REGISTER.
Змінні середовища
Типовий обліковий запис підтримує:IRC_HOSTIRC_PORTIRC_TLSIRC_NICKIRC_USERNAMEIRC_REALNAMEIRC_PASSWORDIRC_CHANNELS(значення, розділені комами)IRC_NICKSERV_PASSWORDIRC_NICKSERV_REGISTER_EMAIL
IRC_HOST не можна задавати у файлі .env робочого простору; див. Файли .env робочого простору.
Усунення несправностей
- Якщо бот підключається, але ніколи не відповідає в каналах, перевірте
channels.irc.groupsі чи не відхиляються повідомлення через вимогу згадки (missing-mention). Якщо бот має відповідати без згадок, установіть для каналуrequireMention:false. - Якщо вхід не вдається, перевірте доступність ніка й пароль сервера.
- Якщо TLS не працює у власній мережі, перевірте хост, порт і налаштування сертифіката.
Пов’язані матеріали
- Огляд каналів — усі підтримувані канали
- Сполучення — автентифікація приватних повідомлень і процес сполучення
- Групи — поведінка групових чатів і вимога згадки
- Маршрутизація каналів — маршрутизація сеансів для повідомлень
- Безпека — модель доступу та посилення захисту