Skip to Content
用户指南功能特性后续建议

后续建议

Qwen Code 可以预测你接下来想输入的内容,并在输入区域中以占位符文本的形式显示。该功能通过一次 LLM 调用分析对话上下文,生成自然的下一步操作建议。

该功能在 CLI 中端到端工作。在 WebUI 中,相关的钩子和 UI 基础设施已经就绪,但宿主应用需要触发建议生成并连接后续状态,才能使建议显示出来。

工作原理

Qwen Code 完成响应后,经过短暂的延迟(约 300ms),一条建议会以淡化的占位符文本出现在输入区域。例如,修复一个 bug 后,你可能会看到:

> run the tests

建议的生成过程是:将对话历史发送给模型,由模型预测你可能自然输入的下一个内容。如果响应中包含明确的提示(例如 Tip: type post comments to publish findings),则会自动提取建议的操作。

接受建议

按键操作
Tab接受建议并填入输入框
Enter接受建议并填入输入框
Right Arrow接受建议并填入输入框
任意输入取消建议,正常输入

按下 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

对于所有后台任务(建议生成和推测),思考和推理模式会自动禁用,无论主模型的思考配置如何。这样可以避免在这些不需要推理的任务上浪费 token。

配置

以下设置可以在 settings.json 中配置:

设置类型默认值描述
ui.enableFollowupSuggestionsbooleantrue启用或禁用后续建议
ui.enableCacheSharingbooleantrue使用缓存感知的分叉查询以降低成本(实验性)
ui.enableSpeculationbooleanfalse在提交前推测性执行建议(实验性)
fastModelstring""用于提示建议和推测执行的模型

示例

{ "fastModel": "qwen3-coder-flash", "ui": { "enableFollowupSuggestions": true, "enableCacheSharing": true } }

监控

建议模型的用量会在 /stats 输出中显示,包括快速模型在建议生成中消耗的 token。

快速模型也会在 /about 输出的“Fast Model”字段中显示。

建议质量

建议会经过质量过滤,确保其有用性:

  • 长度必须在 2-12 个单词(中文:2-30 个字符)之间,总字符不超过 100
  • 不能是评价性内容(“看起来不错”、“谢谢”)
  • 不能使用 AI 口吻(“让我来……”、“我将会……”)
  • 不能包含多个句子或带有格式(markdown、换行)
  • 不能是元评论(“没有建议”、“沉默”)
  • 不能是错误消息或带前缀的标签(“建议:……”)
  • 单个单词的建议只允许用于常见命令(yes, commit, push 等)
  • 斜杠命令(例如 /commit)始终允许作为单个单词的建议
Last updated on