Сообщения
Эта страница объединяет описание того, как OpenClaw обрабатывает входящие сообщения, сеансы, очереди, потоковую передачу и видимость рассуждений.Поток сообщений (высокоуровнево)
messages.*— для префиксов, очередей и поведения в группах.agents.defaults.*— для потоковой передачи блоками и значений по умолчанию для разбиения на чанки.- Переопределения на уровне канала (
channels.whatsapp.*,channels.telegram.*и т. д.) — для лимитов и переключателей потоковой передачи.
Входящий выкуп
Каналы могут повторно доставлять одно и то же сообщение после переподключений. OpenClaw хранит краткоживущий кэш, индексируемый по каналу/аккаунту/собеседнику/сеансу/id сообщения, чтобы повторные доставки не запускали агента повторно.Входящий выкуп
Быстрые последовательные сообщения от одного и того же отправителя могут объединяться в один ход агента с помощьюmessages.inbound. Дебаунсинг применяется в рамках канала + диалога
и использует самое последнее сообщение для трединга ответов/ID.
Конфиг (глобальное значение по умолчанию + переопределения на уровне канала):
- Дебаунсинг применяется только к текстовым сообщениям; медиа/вложения немедленно сбрасываются.
- Управляющие команды обходят дебаунсинг, чтобы оставаться самостоятельными.
Сеансы и устройства
Сеансы принадлежат Gateway (шлюзу), а не клиентам.- Прямые чаты сворачиваются в основной ключ сеанса агента.
- Группы/каналы получают собственные ключи сеансов.
- Хранилище сеансов и транскрипты находятся на хосте шлюза Gateway.
Входящие тела и контекст истории
OpenClaw разделяет тело запроса (prompt) и тело команды:Body: текст prompt, отправляемый агенту. Может включать конверты канала и необязательные обёртки истории.CommandBody: исходный пользовательский текст для разбора директив/команд.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 для отключения).
Очередь и последующие действия
Если выполнение уже активно, входящие сообщения могут быть поставлены в очередь, направлены в текущее выполнение или собраны для последующего хода.- Настройка через
messages.queue(иmessages.queue.byChannel). - Режимы:
interrupt,steer,followup,collect, а также варианты с backlog.
Вещание, обручение и партия
Потоковая передача блоками отправляет частичные ответы по мере того, как модель производит текстовые блоки. Разбиение на чанки учитывает лимиты текста канала и избегает разрыва ограждённых блоков кода. Ключевые настройки:agents.defaults.blockStreamingDefault(on|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 поддерживает потоковую передачу рассуждений в черновой «пузырь» сообщения.
Префиксы, трединг и ответы
Форматирование исходящих сообщений централизовано вmessages:
messages.responsePrefix,channels.<channel>.responsePrefixиchannels.<channel>.accounts.<id>.responsePrefix(каскад исходящих префиксов), а такжеchannels.whatsapp.messagePrefix(входящий префикс WhatsApp)- Трединг ответов через
replyToModeи значения по умолчанию на уровне канала