OpenClaw обробляє вхідні повідомлення через конвеєр визначення сесії, постановки в чергу, потокового передавання, виконання інструментів і видимості міркувань. Ця сторінка показує шлях від вхідного повідомлення до відповіді.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Потік повідомлень (загальний рівень)
messages.*для префіксів, чергування та поведінки груп.agents.defaults.*для типових налаштувань потокового передавання блоків і розбиття на фрагменти.- Перевизначення каналів (
channels.whatsapp.*,channels.telegram.*тощо) для обмежень і перемикачів потокового передавання.
Дедуплікація вхідних повідомлень
Канали можуть повторно доставляти те саме повідомлення після перепідключення. OpenClaw зберігає короткочасний кеш із ключем за каналом/обліковим записом/співрозмовником/сесією/ідентифікатором повідомлення, щоб дубльовані доставки не запускали ще один прогін агента.Дебаунсинг вхідних повідомлень
Швидкі послідовні повідомлення від того самого відправника можна об’єднати в один хід агента черезmessages.inbound. Дебаунсинг обмежений парою канал + розмова
і використовує найновіше повідомлення для потоків відповідей/ідентифікаторів.
Конфігурація (глобальне типове значення + перевизначення для каналів):
- Дебаунсинг застосовується до лише текстових повідомлень; медіа/вкладення одразу скидають накопичення.
- Керівні команди обходять дебаунсинг, щоб залишатися окремими. Канали, які явно вмикають об’єднання DM від того самого відправника, можуть залишати команди DM у вікні дебаунсингу, щоб розділене під час надсилання корисне навантаження могло увійти до того самого ходу агента.
Сесії та пристрої
Сесіями володіє Gateway, а не клієнти.- Прямі чати згортаються в ключ основної сесії агента.
- Групи/канали отримують власні ключі сесій.
- Сховище сесій і транскрипти розміщені на хості Gateway.
Метадані результатів інструментів
content результату інструмента — це результат, видимий моделі. details результату інструмента — це
метадані середовища виконання для відображення в UI, діагностики, доставки медіа та plugins.
OpenClaw явно підтримує цю межу:
toolResult.detailsвилучається перед повторним відтворенням у провайдера та вхідними даними Compaction.- Збережені транскрипти сесій містять лише обмежені
details; надмірно великі метадані замінюються компактним підсумком із позначкоюpersistedDetailsTruncated: true. - Plugins та інструменти мають розміщувати текст, який модель повинна прочитати, у
content, а не лише вdetails.
Тіла вхідних повідомлень і контекст історії
OpenClaw відокремлює тіло запиту від тіла команди:BodyForAgent: основний текст поточного повідомлення для моделі. Plugins каналів мають тримати його сфокусованим на поточному тексті відправника, що містить запит.Body: застарілий резервний текст запиту. Він може містити оболонки каналу та необов’язкові обгортки історії, але поточні канали не повинні покладатися на нього як на основний вхід моделі, коли доступнийBodyForAgent.CommandBody: сирий текст користувача для розбору директив/команд.RawBody: застарілий псевдонім дляCommandBody(залишений для сумісності).
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody (або
RawBody) у вихідний текст повідомлення та залишати Body як об’єднаний запит.
Структурована історія, відповіді, переслані повідомлення та метадані каналу відображаються як
ненадійні контекстні блоки з роллю користувача під час збирання запиту.
Буфери історії налаштовуються через messages.groupChat.historyLimit (глобальне
типове значення) і перевизначення для каналів, як-от channels.slack.historyLimit або
channels.telegram.accounts.<id>.historyLimit (встановіть 0, щоб вимкнути).
Чергування та подальші ходи
Якщо прогін уже активний, вхідні повідомлення можна поставити в чергу, спрямувати в поточний прогін або зібрати для подальшого ходу.- Налаштовується через
messages.queue(іmessages.queue.byChannel). - Типовий режим —
steer, із 500 мс дебаунсингом подальшого ходу, коли спрямування повертається до доставки подальшого ходу з черги. - Режими:
steer,followup,collect,steer-backlog,interruptі застарілий режимqueue«по одному за раз».
Володіння прогоном каналу
Plugins каналів можуть зберігати порядок, дебаунсити введення та застосовувати транспортний зворотний тиск перед тим, як повідомлення потрапить до черги сесії. Вони не повинні накладати окремий тайм-аут навколо самого ходу агента. Після маршрутизації повідомлення до сесії довготривала робота керується життєвим циклом сесії, інструментів і середовища виконання, щоб усі канали узгоджено звітували про повільні ходи й відновлювалися після них.Потокове передавання, розбиття на фрагменти та пакетування
Потокове передавання блоків надсилає часткові відповіді, коли модель створює текстові блоки. Розбиття на фрагменти дотримується текстових обмежень каналу й не розділяє огороджені блоки коду. Основні налаштування:agents.defaults.blockStreamingDefault(on|off, типово off)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(пакетування на основі простою)agents.defaults.humanDelay(людиноподібна пауза між блоковими відповідями)- Перевизначення каналів:
*.blockStreamingі*.blockStreamingCoalesce(канали не Telegram потребують явного*.blockStreaming: true)
Видимість міркувань і токени
OpenClaw може показувати або приховувати міркування моделі:/reasoning on|off|streamкерує видимістю.- Вміст міркувань усе одно враховується у використанні токенів, коли його створює модель.
- Telegram підтримує потік міркувань у тимчасову бульбашку чернетки, яку видаляють після фінальної доставки; використовуйте
/reasoning onдля постійного виведення міркувань.
Префікси, потоки та відповіді
Форматування вихідних повідомлень централізовано вmessages:
messages.responsePrefix,channels.<channel>.responsePrefixіchannels.<channel>.accounts.<id>.responsePrefix(каскад вихідних префіксів), а такожchannels.whatsapp.messagePrefix(вхідний префікс WhatsApp)- Потоки відповідей через
replyToModeі типові значення для каналів
Тихі відповіді
Точний тихий токенNO_REPLY / no_reply означає «не доставляти видиму для користувача відповідь».
Коли хід також має очікуване медіа інструмента, як-от згенероване TTS-аудіо, OpenClaw
вилучає тихий текст, але все одно доставляє медіавкладення.
OpenClaw визначає цю поведінку за типом розмови:
- Прямі розмови за замовчуванням забороняють мовчання та переписують голу тиху відповідь у короткий видимий резервний текст.
- Групи/канали за замовчуванням дозволяють мовчання.
- Внутрішня оркестрація за замовчуванням дозволяє мовчання.
/verbose має значення on або full.
Типові значення містяться в agents.defaults.silentReply і
agents.defaults.silentReplyRewrite; surfaces.<id>.silentReply і
surfaces.<id>.silentReplyRewrite можуть перевизначати їх для кожної поверхні.
Коли батьківська сесія має один або більше очікуваних прогонів породжених субагентів, голі
тихі відповіді відкидаються на всіх поверхнях замість переписування, тож
батьківська сесія мовчить, доки подія завершення дочірнього агента не доставить справжню відповідь.
Пов’язане
- Рефакторинг життєвого циклу повідомлень - цільовий надійний дизайн надсилання й отримання
- Потокове передавання — доставка повідомлень у реальному часі
- Повторна спроба — поведінка повторної спроби доставки повідомлень
- Черга — черга обробки повідомлень
- Канали — інтеграції платформ обміну повідомленнями