---
read_when:
    - Налаштування повідомлень каналу, створених ботом
    - Налаштування захисту від циклів між ботами
sidebarTitle: Bot loop protection
summary: Захист від циклів між ботами за замовчуванням і перевизначення каналів
title: Захист від циклів ботів
x-i18n:
    generated_at: "2026-06-27T17:09:10Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 7a36794332e89dc7a9cf558e1687beabf4a6d10fb8e73c39794b0f0fd01c65b7
    source_path: channels/bot-loop-protection.md
    workflow: 16
---

# Захист від циклів ботів

OpenClaw може приймати повідомлення, написані іншими ботами, у каналах, які підтримують `allowBots`.
Коли цей шлях увімкнено, захист від циклів між парами запобігає тому, щоб дві ідентичності ботів
відповідали одна одній нескінченно.

Захист застосовується основним обробником вхідних відповідей. Кожен канал із підтримкою
перетворює власну вхідну подію на узагальнені факти: обліковий запис або область, ідентифікатор розмови,
ідентифікатор бота-відправника та ідентифікатор бота-отримувача. Потім ядро відстежує пару учасників в обох
напрямках, застосовує ліміт ковзного вікна та блокує пару на час
охолодження після перевищення ліміту.

## Типові значення

Захист від циклів між парами активний, коли канал дозволяє повідомленням, створеним ботами, доходити до
диспетчеризації. Вбудовані типові значення:

- `maxEventsPerWindow: 20` - пара ботів може обмінятися 20 подіями в межах вікна
- `windowSeconds: 60` - довжина ковзного вікна
- `cooldownSeconds: 60` - час блокування після перевищення парою ліміту

Захист не впливає на звичайні повідомлення, створені людьми, розгортання з одним ботом,
фільтрацію власних повідомлень або одноразові відповіді ботів, які залишаються в межах ліміту.

## Налаштування спільних типових значень

Задайте `channels.defaults.botLoopProtection` один раз, щоб надати кожному каналу з підтримкою
однакову базову конфігурацію. Перевизначення на рівні каналу та облікового запису все ще можуть налаштовувати окремі
поверхні.

```json5
{
  channels: {
    defaults: {
      botLoopProtection: {
        maxEventsPerWindow: 20,
        windowSeconds: 60,
        cooldownSeconds: 60,
      },
    },
  },
}
```

Задавайте `enabled: false` лише тоді, коли політика вашого каналу навмисно дозволяє
розмови бот-до-бота без автоматичного блокування.

## Перевизначення для каналу або облікового запису

Канали з підтримкою нашаровують власну конфігурацію поверх спільного типового значення. Пріоритет такий:

- `channels.<channel>.<room-or-space>.botLoopProtection`, коли канал підтримує перевизначення для окремих розмов
- `channels.<channel>.accounts.<account>.botLoopProtection`, коли канал підтримує облікові записи
- `channels.<channel>.botLoopProtection`, коли канал підтримує типові значення верхнього рівня
- `channels.defaults.botLoopProtection`
- вбудовані типові значення

```json5
{
  channels: {
    defaults: {
      botLoopProtection: {
        maxEventsPerWindow: 20,
      },
    },
    discord: {
      botLoopProtection: {
        maxEventsPerWindow: 8,
      },
      accounts: {
        molty: {
          allowBots: "mentions",
          botLoopProtection: {
            maxEventsPerWindow: 5,
            cooldownSeconds: 90,
          },
        },
      },
    },
    slack: {
      allowBots: "mentions",
      botLoopProtection: {
        maxEventsPerWindow: 8,
      },
    },
    matrix: {
      allowBots: "mentions",
      groups: {
        "!roomid:example.org": {
          botLoopProtection: {
            maxEventsPerWindow: 5,
          },
        },
      },
    },
    googlechat: {
      allowBots: true,
      groups: {
        "spaces/AAAA": {
          botLoopProtection: {
            maxEventsPerWindow: 5,
          },
        },
      },
    },
  },
}
```

## Підтримка каналів

- Discord: нативні факти `author.bot`, з ключем за обліковим записом Discord, каналом і парою ботів.
- Slack: нативні факти `bot_id` для прийнятих повідомлень, створених ботами, з ключем за обліковим записом Slack, каналом і парою ботів.
- Matrix: налаштовані облікові записи ботів Matrix, з ключем за обліковим записом Matrix, кімнатою та налаштованою парою ботів.
- Google Chat: нативні факти `sender.type=BOT` для прийнятих повідомлень, створених ботами, з ключем за обліковим записом, простором і парою ботів.

Канали, які не надають надійну ідентичність вхідного бота, продовжують використовувати свої
звичайні фільтри власних повідомлень і політики доступу. Вони не повинні підключатися до цього
захисту, доки не зможуть ідентифікувати обох учасників пари ботів.

Див. [середовище виконання SDK](/uk/plugins/sdk-runtime#reusable-runtime-utilities), щоб дізнатися подробиці
реалізації Plugin.
