---
read_when:
    - Ви хочете підключити OpenClaw до каналів IRC або приватних повідомлень
    - Ви налаштовуєте списки дозволених для IRC, групову політику або обмеження згадок
summary: Налаштування IRC Plugin, контроль доступу й усунення несправностей
title: IRC
x-i18n:
    generated_at: "2026-05-06T06:16:15Z"
    model: gpt-5.5
    provider: openai
    source_hash: 7de49784dec1b6a21a5a65b298552c66ce82543e3f0a7075abedb442b4ebff7e
    source_path: channels/irc.md
    workflow: 16
---

Використовуйте IRC, коли потрібен OpenClaw у класичних каналах (`#room`) і прямих повідомленнях.
IRC постачається як вбудований plugin, але налаштовується в основній конфігурації в `channels.irc`.

## Швидкий старт

1. Увімкніть конфігурацію IRC у `~/.openclaw/openclaw.json`.
2. Задайте щонайменше:

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

Надавайте перевагу приватному IRC-серверу для координації ботів. Якщо ви навмисно використовуєте публічну IRC-мережу, поширені варіанти включають Libera.Chat, OFTC і Snoonet. Уникайте передбачуваних публічних каналів для трафіку ботів або службового зворотного каналу рою.

3. Запустіть або перезапустіть gateway:

```bash
openclaw gateway run
```

## Стандартні параметри безпеки

- IRC використовує сирі TCP/TLS-сокети поза маршрутизацією через керований оператором OpenClaw прямий проксі. У розгортаннях, де весь вихідний трафік має проходити через цей прямий проксі, задайте `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`): кому дозволено запускати бота всередині цього каналу.

Ключі конфігурації:

- Список дозволених для DM (доступ відправника DM): `channels.irc.allowFrom`
- Список дозволених відправників групи (доступ відправника каналу): `channels.irc.groupAllowFrom`
- Поканальні керування (правила каналу, відправника й згадок): `channels.irc.groups["#channel"]`
- `channels.irc.groupPolicy="open"` дозволяє неналаштовані канали (**за замовчуванням усе одно обмежено згадками**)

Записи списку дозволених мають використовувати стабільні ідентичності відправників (`nick!user@host`).
Зіставлення лише за ніком є змінним і вмикається тільки коли `channels.irc.dangerouslyAllowNameMatching: true`.

### Типова пастка: `allowFrom` призначено для DM, а не каналів

Якщо ви бачите журнали на кшталт:

- `irc: drop group sender alice!ident@host (policy=allowlist)`

...це означає, що відправника не було дозволено для повідомлень **групи/каналу**. Виправте це одним із способів:

- задайте `channels.irc.groupAllowFrom` (глобально для всіх каналів), або
- задайте поканальні списки дозволених відправників: `channels.irc.groups["#channel"].allowFrom`

Приклад (дозволити будь-кому в `#tuirc-dev` говорити з ботом):

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

## Запуск відповідей (згадки)

Навіть якщо канал дозволено (через `groupPolicy` + `groups`) і відправника дозволено, OpenClaw за замовчуванням застосовує **обмеження згадкою** в групових контекстах.

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

Щоб бот відповідав в IRC-каналі **без потреби в згадці**, вимкніть обмеження згадкою для цього каналу:

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

Або щоб дозволити **всі** IRC-канали (без поканального списку дозволених) і все одно відповідати без згадок:

```json5
{
  channels: {
    irc: {
      groupPolicy: "open",
      groups: {
        "*": { requireMention: false, allowFrom: ["*"] },
      },
    },
  },
}
```

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

Якщо ви дозволяєте `allowFrom: ["*"]` у публічному каналі, будь-хто може надсилати запити боту.
Щоб зменшити ризик, обмежте інструменти для цього каналу.

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

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

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

Використовуйте `toolsBySender`, щоб застосувати суворішу політику до `"*"` і м’якшу до вашого ніка:

```json5
{
  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](/uk/channels/groups).

## NickServ

Щоб ідентифікуватися через NickServ після підключення:

```json5
{
  channels: {
    irc: {
      nickserv: {
        enabled: true,
        service: "NickServ",
        password: "your-nickserv-password",
      },
    },
  },
}
```

Необов’язкова одноразова реєстрація під час підключення:

```json5
{
  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` не можна задавати з workspace `.env`; див. [Файли workspace `.env`](/uk/gateway/security).

## Усунення несправностей

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

## Пов’язане

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