Повідомлення
Ця сторінка поєднує пояснення того, як OpenClaw обробляє вхідні повідомлення, сесії, постановку в чергу, streaming і видимість reasoning.Потік повідомлень (високий рівень)
messages.*для префіксів, постановки в чергу та групової поведінки.agents.defaults.*для типових значень block streaming і chunking.- Перевизначення на рівні каналу (
channels.whatsapp.*,channels.telegram.*тощо) для лімітів і перемикачів streaming.
Дедуплікація вхідних повідомлень
Канали можуть повторно доставляти те саме повідомлення після перепідключення. OpenClaw зберігає короткоживучий кеш із ключем за channel/account/peer/session/message id, щоб дубльовані доставки не запускали ще один запуск агента.Debouncing вхідних повідомлень
Швидкі послідовні повідомлення від того самого відправника можуть бути об’єднані в один хід агента черезmessages.inbound. Debouncing виконується в межах channel + conversation
і використовує найновіше повідомлення для thread reply/ID.
Конфігурація (глобальне типове значення + перевизначення на рівні каналу):
- Debounce застосовується до повідомлень лише з текстом; медіа/вкладення скидаються негайно.
- Керувальні команди обходять debouncing, щоб залишатися окремими.
Сесії та пристрої
Сесіями володіє gateway, а не клієнти.- Прямі чати згортаються в ключ основної сесії агента.
- Групи/канали отримують власні ключі сесій.
- Сховище сесій і транскрипти знаходяться на хості gateway.
Вхідні тіла та контекст історії
OpenClaw розділяє тіло prompt і тіло команди:Body: текст prompt, надісланий агенту. Він може включати envelope каналу та необов’язкові обгортки історії.CommandBody: сирий текст користувача для розбору directive/command.RawBody: застарілий псевдонім дляCommandBody(збережено для сумісності).
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody (або
RawBody) як оригінальний текст повідомлення, а Body залишати як об’єднаний prompt.
Буфери історії налаштовуються через messages.groupChat.historyLimit (глобальне
типове значення) і перевизначення на рівні каналу, як-от channels.slack.historyLimit або
channels.telegram.accounts.<id>.historyLimit (задайте 0, щоб вимкнути).
Постановка в чергу та followup
Якщо запуск уже активний, вхідні повідомлення можна поставити в чергу, спрямувати в поточний запуск або зібрати для наступного ходу followup.- Налаштовується через
messages.queue(іmessages.queue.byChannel). - Режими:
interrupt,steer,followup,collect, а також варіанти backlog.
Streaming, chunking і batching
Block streaming надсилає часткові відповіді в міру того, як модель продукує текстові блоки. Chunking враховує текстові обмеження каналу й уникає розбиття fenced code. Ключові параметри:agents.defaults.blockStreamingDefault(on|off, типово off)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(batching на основі idle)agents.defaults.humanDelay(людиноподібна пауза між block replies)- Перевизначення на рівні каналу:
*.blockStreamingі*.blockStreamingCoalesce(для каналів, окрім Telegram, потрібне явне*.blockStreaming: true)
Видимість reasoning і токени
OpenClaw може показувати або приховувати reasoning моделі:/reasoning on|off|streamкерує видимістю.- Вміст reasoning все одно враховується у використанні токенів, якщо його продукує модель.
- Telegram підтримує потік reasoning у draft bubble.
Префікси, thread і відповіді
Форматування вихідних повідомлень централізоване вmessages:
messages.responsePrefix,channels.<channel>.responsePrefixіchannels.<channel>.accounts.<id>.responsePrefix(каскад вихідних префіксів), а такожchannels.whatsapp.messagePrefix(вхідний префікс WhatsApp)- Thread відповідей через
replyToModeі типові значення для окремих каналів