Предложения продолжения
Qwen Code может предсказывать, что вы хотите напечатать дальше, и отображать это в виде текста-заполнителя в поле ввода. Эта функция использует вызов LLM для анализа контекста разговора и создания естественного предложения следующего шага.
Эта функция работает полностью (end-to-end) в CLI. В WebUI доступны хук и инфраструктура UI, но приложения-хосты должны инициировать генерацию предложений и настроить состояние продолжения для их отображения.
Как это работает
После завершения ответа Qwen Code в поле ввода через короткую задержку (~300 мс) появляется предложение в виде затемнённого текста-заполнителя. Например, после исправления ошибки вы можете увидеть:
> run the testsПредложение генерируется путём отправки истории разговора модели, которая предсказывает, что бы вы естественно напечатали дальше. Если ответ содержит явную подсказку (например, Tip: type post comments to publish findings), предлагаемое действие извлекается автоматически.
Принятие предложений
| Клавиша | Действие |
|---|---|
Tab | Принять предложение и вставить его в поле ввода |
Enter | Принять предложение и вставить его в поле ввода |
Стрелка вправо | Принять предложение и вставить его в поле ввода |
| Любой ввод | Отклонить предложение и вводить как обычно |
Enter заполняет поле ввода, а не отправляет, поэтому принятие предложенной команды со слешем (например, /clear) никогда не выполняется автоматически — вы отправляете её сами повторным нажатием Enter.
Когда появляются предложения
Предложения генерируются, когда выполняются все следующие условия:
- Модель завершила свой ответ (не во время потоковой передачи)
- В разговоре было как минимум 2 оборота модели
- В последнем ответе нет ошибок
- Нет ожидающих диалогов подтверждения (например, подтверждение shell, разрешения)
- Режим утверждения не установлен на
plan - Функция включена (по умолчанию включена — установите
ui.enableFollowupSuggestionsвfalse, чтобы отключить)
Предложения не будут появляться в неинтерактивном режиме (например, в режиме headless/SDK).
Предложения автоматически отклоняются, когда:
- Вы начинаете печатать
- Начинается новый оборот модели
- Предложение принято
Быстрая модель
По умолчанию предложения используют ту же модель, что и основной разговор. Для предложений с меньшей задержкой настройте выделенную быструю модель:
Через команду
/model --fast qwen3-coder-flashИли используйте /model --fast (без имени модели), чтобы открыть диалог выбора.
Через settings.json
{
"fastModel": "qwen3-coder-flash"
}Быстрая модель используется для предложений подсказок и спекулятивного выполнения. Если не настроена, используется основная модель разговора.
Примечание о стоимости: Быстрая модель снижает задержку, но не всегда снижает стоимость. Генерация предложений использует кэш префиксов вашего разговора (через
ui.enableCacheSharing, по умолчанию включён) — но кэш префиксов привязан к модели. НаправлениеfastModelна другую модель создаёт отдельный кэш, поэтому вся история разговора повторно тарифицируется как некэшированный ввод для быстрой модели. В длинных разговорах использование по умолчанию (основная модель + общий кэш) может быть дешевле, чем быстрая модель, поскольку большая часть истории тарифицируется по льготной ставке кэшированного ввода. УстанавливайтеfastModel, когда задержка важнее стоимости за шаг.
Режим размышлений/рассуждений автоматически отключается для всех фоновых задач (генерация предложений и спекуляция), независимо от настройки размышлений вашей основной модели. Это позволяет не тратить токены на внутренние рассуждения, которые не нужны для этих задач.
Конфигурация
Эти настройки можно задать в settings.json:
| Настройка | Тип | По умолчанию | Описание |
|---|---|---|---|
ui.enableFollowupSuggestions | boolean | true | Включить или отключить предложения продолжения |
ui.enableCacheSharing | boolean | true | Использовать запросы с учетом кэша для снижения затрат (экспериментально) |
ui.enableSpeculation | boolean | false | Спекулятивно выполнять предложения перед отправкой (экспериментально) |
fastModel | string | "" | Модель для предложений подсказок и спекулятивного выполнения |
Пример
{
"fastModel": "qwen3-coder-flash",
"ui": {
"enableFollowupSuggestions": true,
"enableCacheSharing": true
}
}Мониторинг
Использование модели для предложений отображается в выводе /stats — показываются токены, потреблённые быстрой моделью для генерации предложений.
Быстрая модель также отображается в выводе /about в строке “Fast Model”.
Качество предложений
Предложения проходят через фильтры качества, чтобы быть полезными:
- Должно быть 2–12 слов (для CJK: 2–30 символов), не более 100 символов всего
- Не может быть оценочным (“выглядит хорошо”, “спасибо”)
- Не может использовать голос ИИ (“Позвольте мне…”, “Я…”)
- Не может быть несколькими предложениями или содержать форматирование (markdown, переносы строк)
- Не может быть мета-комментарием (“нечего предложить”, “тишина”)
- Не может быть сообщениями об ошибках или префиксами (“Предложение: …”)
- Однословные предложения разрешены только для распространённых команд (yes, commit, push и т.д.)
- Команды со слешем (например,
/commit) всегда разрешены как однословные предложения