channels.<channel>.streaming.mode: "progress", и OpenClaw создаст
сообщение, когда начнётся реальная работа, будет редактировать его по мере того, как агент читает, планирует, вызывает
инструменты или ожидает одобрения, а затем превратит его в окончательный ответ.
В Discord уже по умолчанию используется
streaming.mode: "progress", когда
channels.discord.streaming не задан, поэтому черновики хода выполнения
появляются там без какой-либо настройки. Для всех остальных каналов по умолчанию используется partial
или off; полную таблицу значений по умолчанию для каждого канала см. в разделе Потоковая передача и разбиение на части.Быстрый старт
Что видят пользователи
Для необработанного хода выполнения инструмента метка появляется, когда агент начинает содержательную работу
и остаётся занятым в течение начальной задержки.
Она располагается вверху обновляемого списка строк хода выполнения, поэтому исчезает при прокрутке, когда
появляется достаточно строк с конкретными действиями. Заголовок состояния показывает только
состояние агента на естественном языке, если метка не настроена явно. Ответы, содержащие
только обычный текст, никогда не показывают черновик хода выполнения; строка появляется только при реальных обновлениях работы,
например
🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message"
или ✍️ Write: to /tmp/file.
Окончательный ответ заменяет черновик на месте, если канал может безопасно это
сделать; в противном случае OpenClaw отправляет окончательный ответ обычным способом и
удаляет черновик или прекращает его обновлять (см. Завершение).
Выбор режима
channels.<channel>.streaming.mode управляет видимым поведением во время выполнения:
Выберите
progress, если пользователям важнее «что происходит», чем наблюдение
за потоковой передачей текста ответа токен за токен; partial, если сигналом хода выполнения служит
сам текст ответа; block — для более крупных фрагментов предварительного просмотра. В Discord и
Telegram streaming.mode: "block" по-прежнему означает потоковую передачу предварительного просмотра, а не обычную
доставку ответа блоками — для неё используйте streaming.block.enabled.
Настройка меток
Метки хода выполнения находятся вchannels.<channel>.streaming.progress. По умолчанию
для необработанных строк инструментов используется метка "auto", задействующая простую встроенную метку Working.
Заголовок состояния скрывает эту неявную метку; задайте
label: "auto" явно, если метка нужна и над ним:
label: "auto"):
Управление строками хода выполнения
Строки хода выполнения формируются из реальных событий выполнения: запуска инструментов, обновления элементов, планов задач, одобрений, вывода команд, сводок по исправлениям и аналогичной активности агента. По умолчанию они включены (progress.toolProgress, значение по умолчанию true).
Инструменты также могут выдавать типизированные обновления хода выполнения, пока отдельный вызов ещё выполняется. Именно
так медленная загрузка или поиск обновляет видимый черновик до того, как инструмент
вернёт окончательный результат. Обновление хода выполнения представляет собой частичный результат инструмента с
пустым содержимым модели и явными общедоступными метаданными канала:
progress.text. Обычный
результат инструмента поступает позже как content/details и является единственной частью,
возвращаемой модели.
При добавлении обновлений хода выполнения в инструмент выдавайте короткое обобщённое сообщение и откладывайте его,
пока операция не будет ожидать достаточно долго, чтобы сообщение стало полезным. web_fetch
делает именно это с задержкой 5 секунд:
Режим детализации
OpenClaw использует одно и то же средство форматирования для черновиков хода выполнения и/verbose:
"explain" используется по умолчанию и сохраняет стабильность черновиков благодаря кратким меткам.
"raw" добавляет исходную команду, когда она доступна, что полезно при
отладке, но создаёт больше шума в чате. Например, вызов node --check /tmp/app.js
отображается по-разному в зависимости от режима:
Текст команд и exec
streaming.progress.commandText (значение по умолчанию "raw") определяет, сколько сведений о команде
показывается рядом со строками хода выполнения exec/bash независимо от указанного выше режима детализации.
Задайте значение "status", чтобы сохранить видимость строки хода выполнения инструмента, полностью скрыв
текст команды:
Канал комментариев
streaming.progress.commentary (значение по умолчанию false) чередует предварительные
комментарии или вводные пояснения модели перед использованием инструментов (💬, например «Сначала проверю…, затем
…») со строками инструментов в черновике. Общую для каналов структуру настройки см. в разделе
Потоковая передача и разбиение на части.
Когда канал комментариев включён, вводные пояснения отображаются только как эти чередующиеся
строки 💬; расположенный ниже заголовок состояния не мешает, благодаря чему канал сохраняет
описанную структуру.
Заголовок состояния
В Discord и Telegram в режиме хода выполнения типизированная вводная часть модели перед использованием инструментов становится заголовком состояния черновика, когда она доступна. Другие каналы в режиме хода выполнения сохраняют существующее поведение состояния. Заголовок включён по умолчанию и не обходит обычное ограничение активности для коротких обращений; включениеstreaming.progress.commentary вместо этого передаёт вводные части в чередующийся
канал комментариев.
В Discord, когда для агента определяется служебная модель — явно заданная
utilityModel или объявленная основным
провайдером малая модель по умолчанию (OpenAI → gpt-5.6-luna,
Anthropic → claude-haiku-4-5) — она предоставляет короткий заполняющий текст на естественном языке,
если модель не выдаёт вводную часть или бездействует около 20 секунд
(сейчас заголовок Telegram использует только вводную часть):
streaming.progress.narration, значение по умолчанию
true) и никогда не переключается на основную модель: оно работает только с явно заданной
utilityModel или значением по умолчанию, объявленным провайдером для основного
провайдера агента. Задайте utilityModel: "", чтобы полностью отключить маршрутизацию служебной модели. Строки инструментов
продолжают накапливаться ниже и снова появляются, если оба источника состояния прекращают работу. Изменения
черновика по-прежнему ожидают прохождения обычного ограничения активности и фактического
изменения текста, что предотвращает мерцание при быстрых обращениях и сокращает количество правок в загруженных
каналах. Задайте narration: false, чтобы отключить только заполняющий текст служебной модели; заголовки
с вводной частью модели останутся включёнными:
commandText: "status" из входных данных описания также исключается текст команд exec/bash,
что соответствует содержимому черновика.
Ограничения количества строк
Ограничьте количество видимых строк (по умолчанию 8):Расширенное отображение (Slack)
Slack может отображать строки хода выполнения как структурированные поля Block Kit вместо обычного текста:Скрытие строк инструментов и задач
Сохраните единый черновик хода выполнения, но скройте строки инструментов и задач:toolProgress: false OpenClaw по-прежнему подавляет более старые отдельные
сообщения о ходе выполнения инструментов для этого шага — визуально канал остаётся спокойным до
финального ответа, за исключением метки, если она настроена.
Поведение каналов
Каналы без безопасной поддержки редактирования используют индикаторы набора
текста или доставку только финального ответа. Полное описание поведения среды
выполнения для каждого канала см. в разделе Потоковая передача и разбиение на части.
Завершение
Когда финальный ответ готов, OpenClaw старается сохранить чат в чистоте:- В режиме
progressв Discord финальный ответ отправляется как новое сообщение с добавленной небольшой квитанцией активности-#(например,-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s), а черновик статуса удаляется после доставки ответа. В активных каналах над ответом не остаётся осиротевшего журнала инструментов; при финальном ответе с ошибкой черновик сохраняется как видимая запись неудавшегося шага. - Если черновик можно безопасно превратить в финальный ответ (режимы
partial/block), OpenClaw редактирует его на месте. - Если канал использует нативную потоковую передачу прогресса, OpenClaw завершает поток, когда нативный транспорт принимает финальный текст.
- В противном случае (медиа, запрос подтверждения, явная цель ответа, слишком много частей или ошибка редактирования/отправки) OpenClaw отправляет финальный ответ через обычный канал доставки, а не перезаписывает черновик.
Устранение неполадок
Я вижу только финальный ответ. Убедитесь, чтоchannels.<channel>.streaming.mode имеет значение progress для учётной записи
или канала, обработавшего сообщение. Некоторые пути групповых сообщений или
ответов с цитированием отключают предварительный просмотр черновика для шага,
если канал не может безопасно отредактировать нужное сообщение.
Я вижу метку, но не вижу строк инструментов.
Проверьте streaming.progress.toolProgress. Если установлено значение false, OpenClaw сохраняет
поведение с единым черновиком, но скрывает строки прогресса инструментов и задач.
Я вижу новый финальный ответ вместо отредактированного черновика.
Это защитный резервный вариант, описанный в разделе Завершение. Он может
использоваться для ответов с медиа, длинных ответов, явных целей ответа, старых
черновиков Telegram, отсутствующих целевых веток Slack, удалённых сообщений
предварительного просмотра или при сбое завершения нативного потока.
Я по-прежнему вижу отдельные сообщения о прогрессе.
Когда черновик активен, режим прогресса подавляет стандартные отдельные
сообщения о ходе выполнения инструментов. Если отдельные сообщения всё равно
появляются, убедитесь, что шаг действительно использует режим
progress, а не streaming.mode: "off", и что путь канала позволяет создать
черновик для этого сообщения.
Teams ведёт себя иначе, чем Discord или Telegram.
Microsoft Teams использует в личных чатах нативный поток вместо универсального
механизма предварительного просмотра с отправкой и редактированием, а
streaming.mode: "block" сопоставляется с блочной доставкой Teams, поскольку в Teams
нет режима блочного предварительного просмотра черновика, аналогичного Discord
и Telegram.