后续建议
Qwen Code 可以预测你接下来要输入的内容,并以幽灵文本(ghost text)的形式显示在输入区域。该功能通过调用 LLM 分析对话上下文,生成自然的下一步操作建议。
该功能在 CLI 中已端到端实现。在 WebUI 中,相关的 hook 和 UI 基础组件已就绪,但宿主应用需主动触发建议生成并绑定后续状态,建议才会显示。
工作原理
Qwen Code 完成回复后,输入区域会在短暂延迟(约 300ms)后显示为灰色文本的建议。例如,在修复 bug 后,你可能会看到:
> run the tests建议的生成方式是将对话历史发送给模型,由模型预测你接下来最可能输入的内容。如果回复中包含明确的提示(例如 Tip: type post comments to publish findings),系统会自动提取建议的操作。
接受建议
| 按键 | 操作 |
|---|---|
Tab | 接受建议并将其填入输入框 |
Enter | 接受建议并立即提交 |
Right Arrow | 接受建议并将其填入输入框 |
| 任意输入 | 取消建议并正常输入 |
建议显示时机
当满足以下所有条件时,系统会生成建议:
- 模型已完成回复(非流式输出过程中)
- 对话中至少已发生 2 轮模型回复
- 最近一次回复中没有错误
- 没有待处理的确认对话框(例如 shell 确认、权限请求)
- 审批模式未设置为
plan - 设置中已启用该功能(默认启用)
在非交互模式(例如 headless/SDK 模式)下不会显示建议。
在以下情况下,建议会自动消失:
- 你开始输入
- 新一轮模型回复开始
- 建议已被接受
快速模型
默认情况下,建议功能使用与主对话相同的模型。为了获得更快、成本更低的建议,你可以配置专用的快速模型:
通过命令
/model --fast qwen3-coder-flash或者使用 /model --fast(不带模型名称)打开选择对话框。
通过 settings.json
{
"fastModel": "qwen3-coder-flash"
}快速模型用于生成提示建议和推测执行。若未配置,将回退使用主对话模型。
无论主模型是否配置了思考模式,所有后台任务(建议生成和推测执行)都会自动禁用思考/推理模式。这可以避免在这些不需要的任务上浪费 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 个字符
- 不能是评价性语句(如 “looks good”、“thanks”)
- 不能使用 AI 口吻(如 “Let me…”、“I’ll…”)
- 不能包含多个句子或格式标记(markdown、换行符)
- 不能是元评论(如 “nothing to suggest”、“silence”)
- 不能是错误信息或带前缀的标签(如 “Suggestion: …”)
- 仅允许对常见命令使用单字/单词建议(如 yes、commit、push 等)
- 斜杠命令(如
/commit)始终允许作为单字/单词建议
Last updated on