Краткие сводки использования инструментов
Qwen Code может генерировать короткую метку в стиле темы коммита Git после завершения каждого пакета инструментов, суммируя, что было сделано в этом пакете. Метка отображается внутри транскрипта и заменяет стандартный заголовок Tool × N в компактном режиме.
Это вспомогательное средство UX для параллельных вызовов инструментов: когда модель разветвляется на несколько вызовов Read, Grep и Bash одновременно, сводка позволяет сразу увидеть намерение, вместо того чтобы просматривать список инструментов.
Эта функция включена по умолчанию и работает незаметно в фоне. Для её работы требуется настроенная быстрая модель.
Что вы видите
Полный режим (по умолчанию)
Сводка отображается в виде тусклой строки-значка сразу под группой инструментов:
╭──────────────────────────────────────────────╮
│ ✓ ReadFile a.txt │
│ ✓ ReadFile b.txt │
│ ✓ ReadFile c.txt │
│ ✓ ReadFile d.txt │
╰──────────────────────────────────────────────╯
● Read 4 text filesКомпактный режим (Ctrl+O или ui.compactMode: true)
Метка заменяет стандартный заголовок Tool × N в компактной однострочной записи:
╭──────────────────────────────────────────────╮
│✓ Read txt files · 4 tools │
│Нажмите Ctrl+O, чтобы показать полный вывод │
╰──────────────────────────────────────────────╯Отдельные вызовы инструментов по-прежнему доступны одним нажатием клавиши (Ctrl+O для переключения в полный режим).
Как это работает
После завершения пакета инструментов Qwen Code выполняет асинхронный вызов настроенной быстрой модели, передавая:
- Имена инструментов, сокращённые аргументы и сокращённые результаты (каждое поле ограничено 300 символами).
- Последний текстовый вывод ассистента (первые 200 символов) в качестве префикса намерения.
- Системный промпт, который предписывает модели вернуть метку в прошедшем времени, длиной до 30 символов, в стиле темы коммита Git.
Этот вызов выполняется параллельно с потоковой передачей API следующего шага, поэтому его задержка около 1 с скрыта за временем ответа основной модели. Когда метка готова, она добавляется в транскрипт как запись tool_use_summary.
Примеры меток: Searched in auth/, Fixed NPE in UserService, Created signup endpoint, Read config.json, Ran failing tests.
Когда она отображается
Сводка генерируется, когда все следующие условия истинны:
experimental.emitToolUseSummariesимеет значениеtrue(по умолчанию).- Настроена
fastModel(через настройки или/model --fast). - Хотя бы один инструмент завершился в пакете.
- Шаг не был прерван до завершения инструмента.
- Быстрая модель вернула непустой ответ без ошибок.
Вызовы инструментов субагента не запускают генерацию сводки — только пакеты инструментов основной сессии.
Когда она не отображается
Сводка молча пропускается (без ошибки, без изменений в интерфейсе), когда:
- Не настроена быстрая модель.
- Вызов быстрой модели завершается ошибкой, тайм-аутом или возвращает пустой ответ.
- Модель вернула очевидную строку, похожую на сообщение об ошибке (например,
Error: ...,I cannot ...) — клиент фильтрует такие ответы, чтобы в интерфейсе не отображались вводящие в заблуждение метки. - Шаг был прерван (
Ctrl+C) до завершения модели.
Во всех этих случаях группа инструментов отображается как обычно.
Быстрая модель
Метка генерируется с помощью быстрой модели — той же модели, которую вы настраиваете для подсказок и спекулятивного выполнения. Настройте её:
Через команду
/model --fast qwen3-coder-flashЧерез settings.json
{
"fastModel": "qwen3-coder-flash"
}Если быстрая модель не настроена, генерация сводки полностью пропускается — функция не действует, пока вы её не настроите.
Конфигурация
Эти настройки можно задать в settings.json:
| Настройка | Тип | По умолчанию | Описание |
|---|---|---|---|
experimental.emitToolUseSummaries | boolean | true | Главный переключатель генерации сводок. Отключите, чтобы запретить дополнительный вызов быстрой модели. |
fastModel | string | "" | Быстрая модель, используемая для генерации сводок (общая с подсказками). Обязательна; неактивна, если пусто. |
Переопределение через переменную окружения
QWEN_CODE_EMIT_TOOL_USE_SUMMARIES переопределяет настройку experimental.emitToolUseSummaries для текущей сессии:
QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0или=false— принудительно выключено.QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=1или=true— принудительно включено.- Не задано — используется настройка
experimental.emitToolUseSummaries.
Пример
{
"fastModel": "qwen3-coder-flash",
"experimental": {
"emitToolUseSummaries": true
}
}Область применения и жизненный цикл
Три пункта, которые часто сбивают с толку при первом знакомстве с этой функцией:
-
Одна генерация на пакет, общая для обоих режимов отображения. Вызов быстрой модели происходит ровно один раз в
handleCompletedTools, когда пакет инструментов завершается. Последующее переключение с помощьюCtrl+Oне вызывает новый вызов — оба режима читают одну и ту же записьtool_use_summary, захваченную в первый раз. Вы можете свободно переключать компактный режим без дополнительных затрат. -
Нет дополнения при переключении или возобновлении сессии. Группа инструментов (
tool_group), которая завершилась до включения функции (или до того, как вы изменили настройку, или в возобновлённой сессии —ChatRecordingServiceне сохраняет записи сводок), никогда не получит метку. Нет прохода «добавить метки к существующей истории». Если вы включите эту настройку в середине сессии, метки появятся только у будущих пакетов; старые группы останутся в стандартном отображении без указания на отсутствие метки. -
Только пакеты основного агента. Триггер находится в цикле шагов основной сессии (
useGeminiStream), поэтому:- ✅ Оболочка, MCP, файловые операции и сам вызов инструмента
Task/ субагента (как он отображается в основном пакете) получают сводки. - ❌ Внутренние пакеты инструментов субагента (выполняемые через
packages/core/src/agents/runtime/) не получают сводок.
Внешний пакет, содержащий инструмент
Task, всё равно получит метку, но быстрая модель увидит только вызов инструмента субагента и его агрегированный вывод, а не отдельные вызовы инструментов внутри субагента. Ожидайте метки вродеRan research-agentилиDelegated file search, а неSearched 14 files. Это сделано намеренно — сводка внутренностей субагента умножила бы затраты на быструю модель и создала бы шум, который никогда не отображается в основном интерфейсе. - ✅ Оболочка, MCP, файловые операции и сам вызов инструмента
Рекомендуемая комбинация: включение компактного режима
Для пакетов с 3+ параллельными вызовами инструментов совместное использование этой функции с ui.compactMode: true даёт наиболее чистый транскрипт. Компактный вид сворачивает весь пакет в одну строку с меткой (✓ Read txt files · 4 tools) вместо отображения каждой строки инструмента плюс завершающей сводки. Детали остаются доступными одним нажатием клавиши Ctrl+O.
{
"fastModel": "qwen3-coder-flash",
"ui": {
"compactMode": true
},
"experimental": {
"emitToolUseSummaries": true
}
}В полном режиме (по умолчанию) сводка отображается как строка ● <label> в конце группы инструментов — полезно для больших или разнородных пакетов, но для небольших однотипных пакетов (например, Read × 3) метка может выглядеть как повторение видимых строк инструментов. Если это совпадает с вашим обычным рабочим процессом, либо включите компактный режим, как указано выше, либо полностью отключите сводку через experimental.emitToolUseSummaries: false.
Мониторинг
Использование модели для сводок отображается в выводе /stats в разделе итогов по токенам быстрой модели, с prompt_id tool_use_summary_generation, чтобы его можно было отличить от подсказок и других фоновых задач.
Поток данных и конфиденциальность
Вызов сводки отправляет быстрой модели имя каждого успешного инструмента, сокращённые args и сокращённый результат (каждое поле ограничено 300 символами), а также первые 200 символов последнего текста ассистента в качестве префикса намерения.
Если ваша быстрая модель настроена на того же провайдера/с той же аутентификацией, что и модель основной сессии, данные передаются по тем же границам, которые уже использует основная сессия — доверительная область не меняется. Если вы настроили быструю модель от другого провайдера, входные и выходные данные инструментов (включая, возможно, содержимое файлов, прочитанных read_file, вывод команд из shell-вызовов или значения, полученные через инструменты MCP) будут отправлены этому другому провайдеру в составе промпта сводки. Это строго более широкая область обмена данными, чем в основной сессии.
Если это важно для вашего рабочего процесса, у вас есть два чистых варианта:
- Настройте
fastModelна модель того же провайдера, что и основная сессия, чтобы вызов сводки не пересекал никаких новых границ аутентификации/данных. - Полностью отключите функцию через
experimental.emitToolUseSummaries: false(илиQWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0).
Ограничение в 300 символов на поле снижает утечку, но не устраняет её полностью — секреты, обнаруженные в выводе инструмента в пределах этого окна, всё ещё могут быть отправлены. Относитесь к границе данных быстрой модели так же, как к границе основной модели.
Стоимость
Один вызов быстрой модели на каждый подходящий пакет инструментов. Входные данные — небольшой фиксированный системный промпт плюс сокращённые входы/выходы инструментов (каждое поле ограничено 300 символами). Выходные данные — одна короткая строка (ограничена 100 символами, обычно 20 токенов или меньше). На типичной быстрой модели это примерно $0.001 за пакет.
Если вы не хотите дополнительных затрат, отключите функцию через experimental.emitToolUseSummaries: false или QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0.
Связанные темы
- Компактный режим — переключается с помощью
Ctrl+O; сводка заменяет стандартный заголовок группы инструментов, когда компактный режим включён. - Последующие подсказки — ещё одно улучшение UX на основе быстрой модели, которое использует ту же настройку
fastModel.