Skip to main content
Черновики хода выполнения превращают одно сообщение канала в обновляемую строку состояния, пока агент работает, вместо нагромождения временных ответов «работа продолжается». Задайте channels.<channel>.streaming.mode: "progress", и OpenClaw создаст сообщение, когда начнётся реальная работа, будет редактировать его по мере того, как агент читает, планирует, вызывает инструменты или ожидает одобрения, а затем превратит его в окончательный ответ.
В Discord уже по умолчанию используется streaming.mode: "progress", когда channels.discord.streaming не задан, поэтому черновики хода выполнения появляются там без какой-либо настройки. Для всех остальных каналов по умолчанию используется partial или off; полную таблицу значений по умолчанию для каждого канала см. в разделе Потоковая передача и разбиение на части.

Быстрый старт

Значения по умолчанию далее: задержка запуска 5 секунд, компактные строки хода выполнения во время полезной работы и подавление более старых отдельных сообщений о ходе выполнения для этого обращения. В черновиках со строками необработанных данных инструментов используется автоматическая метка из одного слова; в заголовке состояния это избыточное название опускается, если оно не настроено явно. На этой странице описаны работа с черновиками хода выполнения и параметры их настройки. Полную матрицу режимов потоковой передачи, примечания о среде выполнения для каждого канала и миграцию устаревших ключей см. в разделе Потоковая передача и разбиение на части.

Что видят пользователи

Для необработанного хода выполнения инструмента метка появляется, когда агент начинает содержательную работу и остаётся занятым в течение начальной задержки. Она располагается вверху обновляемого списка строк хода выполнения, поэтому исчезает при прокрутке, когда появляется достаточно строк с конкретными действиями. Заголовок состояния показывает только состояние агента на естественном языке, если метка не настроена явно. Ответы, содержащие только обычный текст, никогда не показывают черновик хода выполнения; строка появляется только при реальных обновлениях работы, например 🛠️ 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). Инструменты также могут выдавать типизированные обновления хода выполнения, пока отдельный вызов ещё выполняется. Именно так медленная загрузка или поиск обновляет видимый черновик до того, как инструмент вернёт окончательный результат. Обновление хода выполнения представляет собой частичный результат инструмента с пустым содержимым модели и явными общедоступными метаданными канала:
OpenClaw отображает в интерфейсе хода выполнения канала только 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):
Строки хода выполнения автоматически уплотняются, чтобы уменьшить переформатирование сообщения чата при редактировании черновика, а OpenClaw обрезает длинные строки, чтобы при повторных изменениях черновика они не переносились по-разному при каждом обновлении. Бюджет по умолчанию для каждой строки составляет 120 символов; проза обрезается по границе слова, а длинные подробности, такие как пути или необработанные команды, сокращаются многоточием в середине, чтобы окончание оставалось видимым. Настройте бюджет для каждой строки:

Расширенное отображение (Slack)

Slack может отображать строки хода выполнения как структурированные поля Block Kit вместо обычного текста:
При расширенном отображении вместе с полями 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.

Связанные материалы