Configuration

Фонові події кімнати

Фонові події кімнати дають змогу 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 (групові приватні повідомлення з кількома учасниками).

Пов’язані матеріали

Was this useful?
On this page

On this page