---
read_when:
    - Настройка постоянно активных групповых комнат или комнат каналов
    - Вы хотите, чтобы агент отслеживал переписку в комнате, не публикуя итоговый текст автоматически
    - Отладка индикатора набора текста и использования токенов при отсутствии видимого сообщения в комнате
sidebarTitle: Ambient room events
summary: Разрешите поддерживаемым групповым комнатам предоставлять контекст без уведомлений, если только агент не отправляет сообщение с помощью инструмента сообщений
title: Фоновые события в комнате
x-i18n:
    generated_at: "2026-07-13T19:29:55Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 3f144b44c8ae0a78e756d741c7b4685632862c0eb15531185ddeb0c2ba801e1a
    source_path: channels/ambient-room-events.md
    workflow: 16
---

Фоновые события комнаты позволяют OpenClaw обрабатывать сообщения в группах или каналах без упоминания агента как ненавязчивый контекст. Агент может обновлять память и состояние сессии, но в комнате сохраняется тишина, если агент явно не вызовет инструмент `message`.

Для постоянно активных групповых чатов используйте `messages.groupChat.unmentionedInbound: "room_event"` вместе с `messages.groupChat.visibleReplies: "message_tool"`. Агент прослушивает сообщения, решает, когда ответ будет полезен, и больше не нуждается в старом шаблоне промпта с ответом `NO_REPLY`.

Сейчас поддерживаются: каналы серверов Discord, каналы и приватные каналы Slack, групповые личные сообщения Slack и группы или супергруппы Telegram. В других групповых каналах сохраняется существующее поведение для групп, если на странице соответствующего канала не указано, что он поддерживает фоновые события комнаты.

## Рекомендуемая настройка

Задайте глобальное поведение групповых чатов:

```json5
{
  messages: {
    groupChat: {
      unmentionedInbound: "room_event",
      visibleReplies: "message_tool",
      historyLimit: 50,
    },
  },
}
```

Затем сделайте комнату постоянно активной, отключив для неё требование упоминания. Комната по-прежнему должна проходить обычную проверку `groupPolicy`, списка разрешённых комнат и списка разрешённых отправителей.

После сохранения конфигурации Gateway применяет настройки `messages` без перезапуска. Перезапуск требуется только в том случае, если отслеживание изменений файлов или перезагрузка конфигурации отключены (`gateway.reload.mode: "off"`).

## Что изменяется

При использовании `messages.groupChat.unmentionedInbound: "room_event"`:

- разрешённые сообщения в группах или каналах без упоминания становятся ненавязчивыми событиями комнаты
- сообщения с упоминанием остаются пользовательскими запросами
- текстовые управляющие команды и нативные команды остаются пользовательскими запросами
- запросы на прерывание или остановку остаются пользовательскими запросами
- личные сообщения остаются пользовательскими запросами

Для событий комнаты применяется строгий режим видимой доставки. Итоговый текст ассистента остаётся приватным. Чтобы опубликовать сообщение в комнате, агент должен вызвать `message(action=send)`.

Для событий комнаты индикатор набора текста и реакции на события жизненного цикла остаются отключёнными. Единственное явное исключение для подтверждения получения — `messages.ackReactionScope: "all"`, которое отправляет настроенную реакцию подтверждения; если в комнате должна сохраняться полная тишина, используйте более узкую область действия или `"off"`.

## Пример для Discord

```json5
{
  messages: {
    groupChat: {
      unmentionedInbound: "room_event",
      visibleReplies: "message_tool",
      historyLimit: 50,
    },
  },
  channels: {
    discord: {
      groupPolicy: "allowlist",
      guilds: {
        "<DISCORD_SERVER_ID>": {
          requireMention: false,
          users: ["<YOUR_DISCORD_USER_ID>"],
        },
      },
    },
  },
}
```

Используйте конфигурацию Discord для отдельного канала, если фоновым должен быть только один канал. В разделе `groupPolicy: "allowlist"` канал разрешается самим фактом его добавления в список (`enabled: false` отключает запись):

```json5
{
  channels: {
    discord: {
      groupPolicy: "allowlist",
      guilds: {
        "<DISCORD_SERVER_ID>": {
          channels: {
            "<DISCORD_CHANNEL_ID_OR_NAME>": {
              requireMention: false,
            },
          },
        },
      },
    },
  },
}
```

## Пример для Slack

В списках разрешённых каналов Slack приоритет имеют идентификаторы. Используйте идентификаторы каналов, например `C12345678`, а не `#channel-name`. Канал разрешается самим фактом его добавления в список `channels.slack.channels` (`enabled: false` отключает запись):

```json5
{
  messages: {
    groupChat: {
      unmentionedInbound: "room_event",
      visibleReplies: "message_tool",
      historyLimit: 50,
    },
  },
  channels: {
    slack: {
      groupPolicy: "allowlist",
      channels: {
        "<SLACK_CHANNEL_ID>": {
          requireMention: false,
        },
      },
    },
  },
}
```

## Пример для Telegram

Для групп Telegram бот должен иметь возможность видеть обычные сообщения группы. Если `requireMention: false`, отключите режим конфиденциальности BotFather или используйте другую настройку Telegram, при которой бот получает весь трафик группы.

```json5
{
  messages: {
    groupChat: {
      unmentionedInbound: "room_event",
      visibleReplies: "message_tool",
      historyLimit: 50,
    },
  },
  channels: {
    telegram: {
      groups: {
        "<TELEGRAM_GROUP_CHAT_ID>": {
          groupPolicy: "open",
          requireMention: false,
        },
      },
    },
  },
}
```

Идентификаторы групп Telegram обычно представляют собой отрицательные числа, например `-1001234567890`. Получите `chat.id` из `openclaw logs --follow`, перешлите сообщение группы вспомогательному боту для определения идентификатора или изучите `getUpdates` Bot API.

## Политика для отдельного агента

Используйте переопределение для агента, когда одну комнату совместно используют несколько агентов, но только один из них должен воспринимать сообщения без упоминания как фоновый контекст:

```json5
{
  messages: {
    groupChat: {
      visibleReplies: "message_tool",
    },
  },
  agents: {
    list: [
      {
        id: "main",
        groupChat: {
          unmentionedInbound: "room_event",
          mentionPatterns: ["@openclaw", "openclaw"],
        },
      },
    ],
  },
}
```

Значение `agents.list[].groupChat.unmentionedInbound` для конкретного агента переопределяет `messages.groupChat.unmentionedInbound` для этого агента.

## Режимы видимого ответа

По умолчанию `messages.groupChat.visibleReplies` имеет значение `"automatic"` для обычных пользовательских запросов в группах и каналах. Сохраняйте это значение по умолчанию, если итоговый текст ассистента должен публиковаться видимым сообщением без явного вызова инструмента отправки сообщений.

Для постоянно активных фоновых комнат по-прежнему рекомендуется `messages.groupChat.visibleReplies: "message_tool"`, особенно с моделями последнего поколения, надёжно использующими инструменты, такими как GPT-5.6 Sol. Этот режим позволяет агенту самостоятельно решать, когда следует ответить, вызывая инструмент отправки сообщений. Если модель возвращает итоговый текст без вызова инструмента, OpenClaw сохраняет его приватным и записывает метаданные о подавленной доставке.

Для событий комнаты сохраняется строгий режим, даже если для других групповых запросов используются автоматические ответы. Для видимого вывода фоновых событий комнаты без упоминания всегда требуется `message(action=send)`.

## История

`messages.groupChat.historyLimit` задаёт глобальное значение истории групп по умолчанию (50, если значение не задано; должно быть положительным целым числом). Каналы могут переопределить его с помощью `channels.<channel>.historyLimit`, а некоторые каналы также поддерживают ограничения истории для отдельных учётных записей. Установите для `historyLimit: 0` на уровне канала значение, отключающее контекст истории групп для этого канала.

Каналы, поддерживающие события комнаты, сохраняют недавние фоновые сообщения комнаты в качестве контекста. Telegram поддерживает постоянно активное скользящее окно для каждой группы, ограниченное значением `historyLimit`; для пользовательских запросов выбираются записи после последнего зафиксированного ответа бота, а события комнаты получают всё недавнее окно, чтобы модель могла видеть собственные последние публикации. Устаревший ключ режима Telegram `includeGroupHistoryContext` удаляется командой `openclaw doctor --fix`.

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

Если в комнате отображается набор текста или расход токенов, но видимого сообщения нет:

1. Убедитесь, что комната разрешена списком разрешённых каналов и списком разрешённых отправителей.
2. Убедитесь, что `requireMention: false` задан на ожидаемом уровне комнаты.
3. Проверьте, имеет ли `messages.groupChat.unmentionedInbound` или переопределение агента значение `"room_event"`.
4. Проверьте журналы на наличие метаданных подавленной итоговой полезной нагрузки или `didSendViaMessagingTool: false`.
5. Для обычных групповых запросов сохраните или восстановите `messages.groupChat.visibleReplies: "automatic"`, если хотите, чтобы итоговые ответы публиковались автоматически. Для фоновых комнат, использующих `message_tool`, используйте модель и среду выполнения, которые надёжно вызывают инструменты.

Если фоновые комнаты Telegram вообще не срабатывают, проверьте режим конфиденциальности BotFather и убедитесь, что Gateway получает обычные сообщения группы.

Если фоновые комнаты Slack не срабатывают, убедитесь, что ключ канала является идентификатором канала Slack и у приложения есть область разрешений для истории соответствующего типа комнаты: `channels:history` (публичные), `groups:history` (приватные) или `mpim:history` (групповые личные сообщения).

## Связанные материалы

- [Группы](/ru/channels/groups)
- [Discord](/ru/channels/discord)
- [Slack](/ru/channels/slack)
- [Telegram](/ru/channels/telegram)
- [Устранение неполадок каналов](/ru/channels/troubleshooting)
- [Справочник по конфигурации каналов](/ru/gateway/config-channels)
