#room) и личные сообщения.
Установите официальный плагин IRC, затем настройте его в разделе channels.irc.
Быстрый старт
- Установите плагин:
- Укажите как минимум хост, псевдоним и каналы для подключения в
~/.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-соединение, проверьте хост, порт и настройку сертификата.
Связанные разделы
- Обзор каналов — все поддерживаемые каналы
- Сопряжение — аутентификация в личных сообщениях и процесс сопряжения
- Группы — поведение групповых чатов и требование упоминания
- Маршрутизация каналов — маршрутизация сеансов для сообщений
- Безопасность — модель доступа и усиление защиты