后续建议
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.enableFollowupSuggestions | boolean | true | 启用或禁用后续建议 |
ui.enableCacheSharing | boolean | true | 使用缓存感知的分叉查询以降低成本(实验性) |
ui.enableSpeculation | boolean | false | 在提交前推测性执行建议(实验性) |
fastModel | string | "" | 用于提示建议和推测执行的模型 |
示例
{
"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)始终允许作为单个单词的建议