Configuration
Події навколишньої кімнати
Фонові події кімнати дають OpenClaw змогу обробляти групові або канальні повідомлення без згадки як тихий контекст. Агент може оновлювати пам’ять і стан сесії, але кімната залишається мовчазною, доки агент явно не викличе інструмент message.
Для постійно ввімкнених групових чатів це рекомендований режим: поєднайте messages.groupChat.unmentionedInbound: "room_event" із messages.groupChat.visibleReplies: "message_tool". Використовуйте його, коли агент має слухати, вирішувати, коли відповідь корисна, і уникати старого шаблону промпта з відповіддю NO_REPLY.
Підтримується нині: канали гільдій Discord, канали та приватні канали Slack, групові особисті повідомлення Slack із кількома учасниками, а також групи або супергрупи Telegram. Інші групові канали зберігають свою наявну групову поведінку, якщо на сторінці їхнього каналу не вказано, що вони підтримують фонові події кімнати.
Рекомендоване налаштування
Задайте глобальну поведінку групового чату:
{ messages: { groupChat: { unmentionedInbound: "room_event", visibleReplies: "message_tool", historyLimit: 50, }, },}Потім налаштуйте саму кімнату як постійно ввімкнену, вимкнувши для неї обмеження згадками. Канал усе одно має бути дозволений звичайними groupPolicy, списком дозволених кімнат і списком дозволених відправників.
Після збереження конфігурації Gateway гаряче перезавантажує налаштування messages. Перезапускайте лише тоді, коли спостереження за файлами або перезавантаження конфігурації вимкнено.
Що змінюється
З messages.groupChat.unmentionedInbound: "room_event":
- дозволені групові або канальні повідомлення без згадки стають тихими подіями кімнати
- повідомлення зі згадкою залишаються запитами користувача
- текстові команди та нативні команди залишаються запитами користувача
- запити на переривання або зупинку залишаються запитами користувача
- прямі повідомлення залишаються запитами користувача
Події кімнати використовують сувору видиму доставку. Фінальний текст асистента є приватним. Агент має викликати message(action=send), щоб опублікувати повідомлення в кімнаті.
Приклад Discord
{ 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, коли фоновим має бути лише один канал:
{ channels: { discord: { guilds: { "<DISCORD_SERVER_ID>": { channels: { "<DISCORD_CHANNEL_ID_OR_NAME>": { allow: true, requireMention: false, }, }, }, }, }, },}Приклад Slack
Списки дозволених каналів Slack насамперед використовують ідентифікатори. Використовуйте ідентифікатори каналів, як-от C12345678, а не #channel-name.
{ messages: { groupChat: { unmentionedInbound: "room_event", visibleReplies: "message_tool", historyLimit: 50, }, }, channels: { slack: { groupPolicy: "allowlist", channels: { "<SLACK_CHANNEL_ID>": { allow: true, requireMention: false, }, }, }, },}Приклад Telegram
Для груп Telegram бот має мати змогу бачити звичайні групові повідомлення. Якщо requireMention: false, вимкніть режим приватності BotFather або використовуйте інше налаштування Telegram, яке доставляє боту весь груповий трафік.
{ 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, перешліть групове повідомлення боту-помічнику для визначення ID або перегляньте getUpdates Bot API.
Політика для конкретного агента
Використовуйте перевизначення агента, коли кілька агентів спільно використовують одну кімнату, але лише один має розглядати повідомлення без згадки як фоновий контекст:
{ 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.5. Це дає агенту змогу вирішувати, коли говорити, викликаючи інструмент повідомлень. Якщо модель повертає фінальний текст без виклику інструмента, OpenClaw залишає цей фінальний текст приватним і записує метадані пригніченої доставки в журнал.
Події кімнати залишаються суворими навіть тоді, коли інші групові запити використовують автоматичні відповіді. Фонові події кімнати без згадки все одно потребують message(action=send) для видимого виводу.
Історія
messages.groupChat.historyLimit керує глобальним значенням історії групи за замовчуванням. Канали можуть перевизначати його через channels.<channel>.historyLimit, а деякі канали також підтримують обмеження історії для окремих облікових записів.
Задайте historyLimit: 0, щоб вимкнути контекст групової історії.
Канали з підтримкою подій кімнати зберігають нещодавні фонові повідомлення кімнати як контекст. Telegram зберігає постійно ввімкнене рухоме вікно для кожної групи, обмежене historyLimit; ходи запитів користувача вибирають записи після останньої зафіксованої відповіді бота, тоді як ходи подій кімнати отримують повне нещодавнє вікно, щоб модель могла бачити власні нещодавні дописи. Застарілий ключ режиму Telegram includeGroupHistoryContext видаляється через openclaw doctor --fix.
Усунення несправностей
Якщо кімната показує введення або використання токенів, але видимого повідомлення немає:
- Переконайтеся, що кімната дозволена списком дозволених каналу та списком дозволених відправників.
- Переконайтеся, що
requireMention: falseзадано на очікуваному рівні кімнати. - Перевірте, чи
messages.groupChat.unmentionedInboundабо перевизначення агента має значення"room_event". - Перегляньте журнали на наявність метаданих пригніченого фінального payload або
didSendViaMessagingTool: false. - Для звичайних групових запитів залиште або відновіть
messages.groupChat.visibleReplies: "automatic", якщо хочете, щоб фінальні відповіді публікувалися автоматично. Для фонових кімнат ізmessage_toolвикористовуйте модель або середовище виконання, що надійно викликає інструменти.
Якщо фонові кімнати Telegram взагалі не спрацьовують, перевірте режим приватності BotFather і переконайтеся, що Gateway отримує звичайні групові повідомлення.
Якщо фонові кімнати Slack не спрацьовують, перевірте, що ключ каналу є ідентифікатором каналу Slack і що застосунок має потрібний scope channels:history або groups:history для цього типу кімнати.