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

后续建议

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

该功能在 CLI 和 Web Shell 中均端到端可用。建议生成是自动的,在服务端完成:每完成一个干净结束的轮次(daemon 的 end_turn 停止原因——cancelled、refusal、max_tokens 或 max_turn_requests 的轮次不会生成建议),daemon 会在会话流上发出建议(默认开启;将 ui.enableFollowupSuggestions 设为 false 可关闭),而 Web Shell 的 composer 已经接入了 useDaemonFollowupSuggestion hook,因此建议可以直接渲染和接受,无需宿主额外接线。

工作原理

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

> run the tests

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

接受建议

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

按下 Enter 会将建议填入输入框而非提交,因此接受一个建议的斜杠命令(例如 /clear)不会自动执行——你需要再按一次 Enter 来提交。

建议出现时机

交互式 CLI 和 daemon 分别独立决定是否生成建议,且它们应用的条件并不相同:CLI 在其各个渲染器中自行控制生成,而 daemon 则在服务端为每个附加到该会话的客户端控制生成。

双方都要求满足以下所有条件:

  • 对话中至少已进行了 2 轮模型交互
  • 审批模式未设置为 plan
  • 该功能已启用(默认开启——将 ui.enableFollowupSuggestions 设为 false 可关闭)

交互式 CLI 还额外要求:

  • 会话是交互式的——CLI 在其自身的非交互模式或 SDK 模式下永远不会生成建议
  • 模型已完成响应(不在流式输出过程中)
  • 最近一次响应中没有错误
  • 没有待处理的确认对话框(例如 shell 确认、权限确认)。一个渲染器直接读取该状态;另一个则依据自身的待处理工具调用来控制,无法看到轮次中途打开的 shell 对话框,因此仍可能在对话框背后生成建议。但此时不会显示任何内容——对话框弹出时 composer 会被卸载——所以代价只是该轮次的生成调用,而不是一条你可能误操作接受的建议。

daemon 还额外要求:

  • 轮次干净结束,即其停止原因为 end_turn——被取消、拒绝或截断的轮次不会生成建议
  • 自动轮次未被 todo stop guard 暂停,且没有排队等待运行的 prompt
  • 对话历史中的最新条目是模型响应

由于 daemon 端的生成会为每个附加到会话的客户端执行,因此也会为无法渲染结果的客户端执行。这类客户端——daemon 会话的 headless 或 SDK 消费者(不是上面提到的 CLI 自身的非交互模式)——应将 ui.enableFollowupSuggestions 设为 false,以避免为其丢弃的输出支付每轮 LLM 成本。

建议在以下情况会自动取消:

  • 你开始输入
  • 新一轮模型交互开始
  • 建议被接受

快速模型

默认情况下,建议使用与主对话相同的模型。为了获得更低的延迟,可以配置一个专用的快速模型:

通过命令

/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