Skip to main content
Используйте IRC, если хотите добавить OpenClaw в классические каналы (#room) и личные сообщения. Установите официальный плагин IRC, затем настройте его в разделе channels.irc.

Быстрый старт

  1. Установите плагин:
  1. Укажите как минимум хост, псевдоним и каналы для подключения в ~/.openclaw/openclaw.json:
  1. Запустите или перезапустите Gateway:
Для координации ботов рекомендуется использовать частный IRC-сервер. Если вы намеренно используете публичную IRC-сеть, распространённые варианты включают Libera.Chat, OFTC и Snoonet. Не используйте предсказуемые публичные каналы для служебного обмена данными между ботами или роем.

Настройки подключения

Настройки безопасности по умолчанию

  • 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 существуют два отдельных «барьера»:
  1. Доступ к каналу (groupPolicy + groups): принимает ли бот сообщения из канала вообще.
  2. Доступ отправителя (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:alice!~alice@203.0.113.7 для более надёжного сопоставления.
  • Устаревшие ключи без префиксов по-прежнему принимаются, сопоставляются только как id: и вызывают предупреждение об устаревании.
  • Применяется первая соответствующая политика отправителя; "*" служит универсальным резервным вариантом.
Дополнительные сведения о различиях между групповым доступом и требованием упоминания, а также об их взаимодействии см. в разделе /channels/groups.

NickServ

Чтобы пройти идентификацию в NickServ после подключения:
По умолчанию идентификация NickServ выполняется при каждом подключении, если задан пароль (enabled нужно установить в false только для отказа от неё). По умолчанию service имеет значение NickServ; passwordFile можно использовать вместо встроенного password. Необязательная однократная регистрация при подключении (register: true требует registerEmail):
После регистрации псевдонима отключите register, чтобы избежать повторных попыток REGISTER.

Переменные среды

Учётная запись по умолчанию поддерживает:
  • IRC_HOST
  • IRC_PORT
  • IRC_TLS
  • IRC_NICK
  • IRC_USERNAME
  • IRC_REALNAME
  • IRC_PASSWORD
  • IRC_CHANNELS (через запятую)
  • IRC_NICKSERV_PASSWORD
  • IRC_NICKSERV_REGISTER_EMAIL
IRC_HOST нельзя задать из файла .env рабочей области; см. Файлы .env рабочей области.

Устранение неполадок

  • Если бот подключается, но не отвечает в каналах, проверьте channels.irc.groups и не отбрасываются ли сообщения из-за требования упоминания (missing-mention). Если бот должен отвечать без упоминаний, задайте requireMention:false для канала.
  • Если вход завершается с ошибкой, проверьте доступность псевдонима и пароль сервера.
  • Если на пользовательской сети не удаётся установить TLS-соединение, проверьте хост, порт и настройку сертификата.

Связанные разделы