> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# IRC

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

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

1. Установите Plugin:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw plugins install @openclaw/irc
```

2. Включите конфигурацию IRC в `~/.openclaw/openclaw.json`.
3. Задайте как минимум:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      enabled: true,
      host: "irc.example.com",
      port: 6697,
      tls: true,
      nick: "openclaw-bot",
      channels: ["#openclaw"],
    },
  },
}
```

Для координации ботов предпочитайте частный IRC-сервер. Если вы намеренно используете публичную IRC-сеть, распространенные варианты включают Libera.Chat, OFTC и Snoonet. Избегайте предсказуемых публичных каналов для обратного канала ботов или роя.

4. Запустите или перезапустите Gateway:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw gateway run
```

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

* IRC использует необработанные TCP/TLS-сокеты вне маршрутизации через forward proxy, управляемый оператором OpenClaw. В развертываниях, где весь исходящий трафик должен проходить через этот forward proxy, задайте `channels.irc.enabled=false`, если прямой исходящий IRC-трафик явно не одобрен.
* `channels.irc.dmPolicy` по умолчанию имеет значение `"pairing"`.
* `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"]`
* `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`

Пример (разрешить всем в `#tuirc-dev` общаться с ботом):

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#tuirc-dev": { allowFrom: ["*"] },
      },
    },
  },
}
```

## Запуск ответов (упоминания)

Даже если канал разрешен (через `groupPolicy` + `groups`) и отправитель разрешен, OpenClaw по умолчанию использует **ограничение по упоминанию** в групповых контекстах.

Это означает, что вы можете видеть журналы вроде `drop channel … (missing-mention)`, если сообщение не содержит шаблон упоминания, совпадающий с ботом.

Чтобы бот отвечал в IRC-канале **без необходимости упоминания**, отключите ограничение по упоминанию для этого канала:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      groupPolicy: "allowlist",
      groups: {
        "#tuirc-dev": {
          requireMention: false,
          allowFrom: ["*"],
        },
      },
    },
  },
}
```

Или, чтобы разрешить **все** IRC-каналы (без поканального списка разрешенных) и все равно отвечать без упоминаний:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      groupPolicy: "open",
      groups: {
        "*": { requireMention: false, allowFrom: ["*"] },
      },
    },
  },
}
```

## Примечание по безопасности (рекомендуется для публичных каналов)

Если вы разрешаете `allowFrom: ["*"]` в публичном канале, любой сможет отправлять запросы боту.
Чтобы снизить риск, ограничьте инструменты для этого канала.

### Одинаковые инструменты для всех в канале

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      groups: {
        "#tuirc-dev": {
          allowFrom: ["*"],
          tools: {
            deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
          },
        },
      },
    },
  },
}
```

### Разные инструменты для каждого отправителя (владелец получает больше полномочий)

Используйте `toolsBySender`, чтобы применить более строгую политику к `"*"` и более мягкую к вашему нику:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      groups: {
        "#tuirc-dev": {
          allowFrom: ["*"],
          toolsBySender: {
            "*": {
              deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
            },
            "id:eigen": {
              deny: ["gateway", "nodes", "cron"],
            },
          },
        },
      },
    },
  },
}
```

Примечания:

* Ключи `toolsBySender` должны использовать `id:` для значений идентификаторов отправителей IRC:
  `id:eigen` или `id:eigen!~eigen@174.127.248.171` для более строгого сопоставления.
* Устаревшие ключи без префикса все еще принимаются и сопоставляются только как `id:`.
* Побеждает первая совпавшая политика отправителя; `"*"` является резервным wildcard-вариантом.

Подробнее о групповом доступе и ограничении по упоминанию (и о том, как они взаимодействуют) см.: [/channels/groups](/ru/channels/groups).

## NickServ

Чтобы идентифицироваться в NickServ после подключения:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      nickserv: {
        enabled: true,
        service: "NickServ",
        password: "your-nickserv-password",
      },
    },
  },
}
```

Необязательная одноразовая регистрация при подключении:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    irc: {
      nickserv: {
        register: true,
        registerEmail: "bot@example.com",
      },
    },
  },
}
```

Отключите `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` рабочей области](/ru/gateway/security).

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

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

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

* [Обзор каналов](/ru/channels) — все поддерживаемые каналы
* [Сопряжение](/ru/channels/pairing) — аутентификация личных сообщений и процесс сопряжения
* [Группы](/ru/channels/groups) — поведение группового чата и ограничение по упоминанию
* [Маршрутизация каналов](/ru/channels/channel-routing) — маршрутизация сессий для сообщений
* [Безопасность](/ru/gateway/security) — модель доступа и усиление защиты
