Skip to Content
Руководство для пользователейВозможностиКраткие сводки использования инструментов

Краткие сводки использования инструментов

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.emitToolUseSummariesbooleantrueГлавный переключатель генерации сводок. Отключите, чтобы запретить дополнительный вызов быстрой модели.
fastModelstring""Быстрая модель, используемая для генерации сводок (общая с подсказками). Обязательна; неактивна, если пусто.

Переопределение через переменную окружения

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 } }

Область применения и жизненный цикл

Три пункта, которые часто сбивают с толку при первом знакомстве с этой функцией:

  1. Одна генерация на пакет, общая для обоих режимов отображения. Вызов быстрой модели происходит ровно один раз в handleCompletedTools, когда пакет инструментов завершается. Последующее переключение с помощью Ctrl+O не вызывает новый вызов — оба режима читают одну и ту же запись tool_use_summary, захваченную в первый раз. Вы можете свободно переключать компактный режим без дополнительных затрат.

  2. Нет дополнения при переключении или возобновлении сессии. Группа инструментов (tool_group), которая завершилась до включения функции (или до того, как вы изменили настройку, или в возобновлённой сессии — ChatRecordingService не сохраняет записи сводок), никогда не получит метку. Нет прохода «добавить метки к существующей истории». Если вы включите эту настройку в середине сессии, метки появятся только у будущих пакетов; старые группы останутся в стандартном отображении без указания на отсутствие метки.

  3. Только пакеты основного агента. Триггер находится в цикле шагов основной сессии (useGeminiStream), поэтому:

    • ✅ Оболочка, MCP, файловые операции и сам вызов инструмента Task / субагента (как он отображается в основном пакете) получают сводки.
    • Внутренние пакеты инструментов субагента (выполняемые через packages/core/src/agents/runtime/) не получают сводок.

    Внешний пакет, содержащий инструмент Task, всё равно получит метку, но быстрая модель увидит только вызов инструмента субагента и его агрегированный вывод, а не отдельные вызовы инструментов внутри субагента. Ожидайте метки вроде Ran research-agent или Delegated file search, а не Searched 14 files. Это сделано намеренно — сводка внутренностей субагента умножила бы затраты на быструю модель и создала бы шум, который никогда не отображается в основном интерфейсе.

Рекомендуемая комбинация: включение компактного режима

Для пакетов с 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.
Last updated on