На этой странице
На этой странице
Developer and self-hosted
IRC
Используйте IRC, если хотите добавить OpenClaw в классические каналы (#room) и личные сообщения.
Установите официальный плагин IRC, затем настройте его в разделе channels.irc.
Быстрый старт
- Установите плагин:
- Укажите как минимум хост, псевдоним и каналы для подключения в
~/.openclaw/openclaw.json:
- Запустите или перезапустите Gateway:
Для координации ботов рекомендуется использовать частный IRC-сервер. Если вы намеренно используете публичную IRC-сеть, распространённые варианты включают Libera.Chat, OFTC и Snoonet. Не используйте предсказуемые публичные каналы для служебного обмена данными между ботами или роем.
Настройки подключения
| Ключ | По умолчанию | Примечания |
|---|---|---|
host |
нет (обязательно) | Имя хоста IRC-сервера |
port |
6697 с TLS, 6667 без шифрования |
1-65535 |
tls |
true |
Устанавливайте false только при намеренном использовании незашифрованного соединения |
nick |
нет (обязательно) | Псевдоним бота |
username |
псевдоним, иначе openclaw |
Имя пользователя IRC |
realname |
OpenClaw |
Поле настоящего имени/GECOS |
password / passwordFile |
нет | Пароль сервера; файл должен быть обычным файлом |
channels |
нет | Каналы для подключения (["#openclaw"]) |
accounts / defaultAccount |
нет | Настройка нескольких учётных записей; переменные среды заполняют только учётную запись по умолчанию |
Настройки безопасности по умолчанию
- 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 без обязательного упоминания, отключите требование упоминания для этого канала:
Либо, чтобы разрешить все каналы IRC (без списка разрешённых для отдельных каналов) и при этом отвечать без упоминаний:
Примечание о безопасности (рекомендуется для публичных каналов)
Если разрешить allowFrom: ["*"] в публичном канале, любой пользователь сможет отправлять боту запросы.
Чтобы снизить риск, ограничьте инструменты для этого канала.
Одинаковые инструменты для всех пользователей канала
Разные инструменты для разных отправителей (владелец получает больше полномочий)
Используйте toolsBySender, чтобы применить более строгую политику к "*" и менее строгую — к своему псевдониму:
Примечания:
- В ключах
toolsBySenderследует использовать явные префиксы (channel:,id:,e164:,username:,name:). Для IRC используйтеid:со значением идентификатора отправителя:id:aliceилиid:[email protected]для более надёжного сопоставления. - Устаревшие ключи без префиксов по-прежнему принимаются, сопоставляются только как
id:и вызывают предупреждение об устаревании. - Применяется первая соответствующая политика отправителя;
"*"служит универсальным резервным вариантом.
Дополнительные сведения о различиях между групповым доступом и требованием упоминания, а также об их взаимодействии см. в разделе /channels/groups.
NickServ
Чтобы пройти идентификацию в 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-соединение, проверьте хост, порт и настройку сертификата.
Связанные разделы
- Обзор каналов — все поддерживаемые каналы
- Сопряжение — аутентификация в личных сообщениях и процесс сопряжения
- Группы — поведение групповых чатов и требование упоминания
- Маршрутизация каналов — маршрутизация сеансов для сообщений
- Безопасность — модель доступа и усиление защиты