Skip to Content
博客功能更新07-23 产品周报

Qwen Code 周报:实时转向随时修正 Agent 方向、Worktree 隔离会话并行不冲突、内置 web_search 联网搜索回归

Qwen Team
2026-07-23

Qwen Code 本周发布 v0.19.12、v0.20.0 和 v0.20.1 三个正式版本,220+ 个 PR 合入。

Agent 跑偏了?打字就能修正。 模型正在输出时按 Enter,消息会在下一个采样边界引导当前回合;按 Ctrl+Q 则延迟到下一轮。工具执行期间输入的消息同样生效。不用等 Agent 说完再纠正了。

并行任务终于不打架了。 Web Shell 支持一键创建 Worktree 隔离会话,同一仓库里多个任务各自在独立 git worktree 中运行,文件编辑、git addgit checkout 互不干扰。紫色 ⑂ 标识贯穿 git chip、会话列表和 workspace 下拉菜单。

联网搜索回来了。 内置 web_search 工具基于百炼 Responses API,用你已有的百炼 API key 就能搜索。之前被移除后社区一直要求恢复,这次用服务端搜索 + 页面阅读重新实现,回答末尾自动附 Sources 引用链接。默认关闭,显式开启才生效。

web_fetch 从头重建。 之前抓网页会丢链接、PDF 变乱码、大页面截断后答案丢失。现在 HTML 先转 markdown 再截断、PDF 内联提取文本、二进制文件正确保存,还有 60 秒超时和 10MB 上限保护。

✨ 新增特性

实时转向:Agent 输出时打字就能修正方向

之前 Agent 正在输出时你打了一句话,得等它说完才能发出去,变成一个新的 prompt。Agent 跑偏了也只能看着它跑完再纠正。

现在 Enter 和 Ctrl+Q 有了明确的分工:

  • Enter:消息排入转向队列,在下一个模型采样边界生效,仍然在当前回合内。Agent 正在写代码,你打一句 ” 用 TypeScript 重写 “,它会在下一个采样点收到这个引导。
  • Ctrl+Q:消息延迟到当前回合结束后,作为新一轮对话的开头。
  • 工具执行期间:输入的消息在工具结果返回后、同一回合内被消费。
  • 反悔了? 按 Up 或 Escape,排队的消息恢复到输入框。

@ 附件也会一起保留,不会被加上合成前缀。投递失败或取消时,消息不会丢失。

你能用它做什么:

  • Agent 写代码方向不对,打字就能修正,不用等它写完
  • 工具跑着的时候补充上下文信息
  • 想好下一轮要问什么,Ctrl+Q 排队,当前回合结束自动发出

详见 PR #7090 

Worktree 隔离会话:并行任务各跑各的

在同一个仓库里同时处理两个任务,一个会话改了文件,另一个的 git status 就乱了。之前要手动 git worktree add + cd,现在 Web Shell 里一键搞定。

点击 workspace 分支 pill 下拉菜单的 “New Worktree Task”,daemon 自动在 <repoRoot>/.qwen/worktrees/<slug> 下创建 git worktree,会话的工作目录切到 worktree。整个界面用紫色 ⑂ 标识区分:git chip 变紫色、会话列表有 ⑂ 标记、workspace 下拉菜单有说明。非 git 仓库不显示这个选项。

Worktree 信息持久化到 sidecar 文件,daemon 重启后不丢失。恢复会话时自动重建 worktree 隔离,状态栏显示 worktree 分支名而不是主 workspace 分支。

你能用它做什么:

  • 同时跑两个功能开发,互不干扰
  • 一边修 bug 一边继续做 feature,不用 stash 来 stash 去
  • 让 Agent 在隔离环境里做实验性修改,主工作区保持干净

详见 PR #7221 #7262 #7365 #7367 

内置 web_search:百炼 key 即可联网搜索

之前 Qwen Code 没有内置搜索,文档让你去配百炼 WebSearch MCP。但实测下来,那个 MCP 在复杂查询上质量不行——一个有标准答案的 Medicare 费率查询,MCP 跑多次返回 0/5 相关结果。

这周内置 web_search 工具回归了。基于百炼 Responses API 的服务端搜索,用你已经配好的百炼 API key 就行,不需要额外的 MCP 服务、额外的 provider、额外的 key。搜索代理会打开结果页面获取更有依据的回答,结果区分 ” 实际读过的页面 ” 和 ” 未打开的候选链接 “,模型必须在回答末尾附上 Sources 引用小节。

默认关闭,需要两项配置才能启用:tools.webSearch.enabled: true 和搜索模型 tools.webSearch.model。如果配了但没配对,工具保持关闭,启动时会告诉你具体哪个条件没满足。也支持纯环境变量配置(ENABLE_WEB_SEARCHWEB_SEARCH_MODEL 等),适合写不了 settings.json 的环境。每次搜索调用都需要确认(显示查询内容,可选 ” 始终允许 ”)。

你能用它做什么:

  • 查时效性信息:库的最新版本变更、API 文档更新、安全公告
  • 排查模型知识截止日期之后的问题:新版本 breaking change、最近的 bug report
  • 替代手动离开终端去浏览器搜索的流程

详见 PR #7215 

web_fetch 全面重建:PDF 不再乱码、链接不再丢失

之前 web_fetch 有几个实际遇到的问题:大型列表页在转换前按原始 HTML 截断,答案被切掉,链接 URL 全部丢失,模型就自信地告诉你 ” 目标不存在 “。PDF 被当文本解码,变成几万 token 的乱码。某些政府网站对匿名 User-Agent 返回 403。

这周从头重建了整个管线:

  • HTML 先转 markdown 再截断,大页面深处的内容保留,所有超链接保留 URL。截断有显式标记,脚本和样式不占内容预算。
  • PDF 内联提取文本,单次 web_fetch 调用就能回答 PDF 内容。二进制文件通过 magic bytes 识别(不只看 Content-Type),以正确扩展名保存。
  • 60 秒超时 + 10MB 上限,按 Esc 立即取消传输——之前 UI 可能冻住。15 分钟内重复抓取同一 URL 走缓存。
  • 跨主机重定向不再静默跟随,而是提示你重新发起,走正常权限流程。
  • 权限模型:每个主机首次访问需确认(GET 会暴露完整路径和查询,是数据外泄通道)。批准后持久化为按主机规则。GitHub blob URL 自动规范化为 raw 地址再评估权限。

你能用它做什么:

  • 抓一个 PDF 链接,直接回答里面的内容
  • 抓一个长列表页面,问页面深处的条目,链接不再丢失
  • 跨主机重定向会提示你重新发起,不会静默跟随到陌生域名

详见 PR #7146 

Web Shell 本周大更新

Web Shell 这周改动量很大,从 git 集成到会话管理到 workspace 体验,集中说。

Git 集成三件套。 /log 命令打开提交历史浏览器,图形化弹窗展示 commit 列表,点击展开看完整 message 和文件变更统计,一键复制 SHA,支持分页加载。/diff 弹窗也加了 History 标签页,不用切命令。git status chip 显示在 composer 工具栏,侧边栏展示工作区 git 状态,Changes 弹窗里能看可视化的 working-tree diff。详见 PR #7204 #7054 

Skill 管理页和 Goals 页。 Web Shell 有了独立的 skill 管理页面,查看和管理工作区 skill 不用回到终端。Goals 页让 /goal 的目标在 Web Shell 里可视化,daemon 重启后目标不再丢失。详见 PR #7018 #6561 

会话管理改进。 Cmd+B / Ctrl+B 切换侧边栏,split view 布局跨刷新保持(按标签页独立),恢复的会话历史支持分页加载不再一次全拉,归档会话支持导出。Add Workspace 弹窗加了目录自动补全。详见 PR #7135 #7136 #7064 #6910 #7125 

Workspace 体验。 支持自定义 workspace 显示名称,多工作区场景下不再只能看路径。自定义斜杠命令动作,sidebar 自定义 API(品牌、导航、会话操作、footer)。新话题草稿会建议你开新会话,而不是在旧会话里继续。详见 PR #7179 #7267 #7379 #7098 

📊 更多新功能

Artifact 默认值和写入提醒。 Agent 创建 artifact 时有默认配置,写入前提醒确认,减少误写文件的意外。详见 PR #7068 

工具摘要显示活跃路径。 紧凑工具摘要中展示当前操作的文件路径,多文件操作时一眼看到在改哪个文件。详见 PR #7043 

子 agent 委派默认值和护栏。 改进子 agent 委派的默认配置和安全边界,子 agent 行为更可预测。详见 PR #7048 

VSCode 日志路由。 日志输出到 Qwen Code Companion 专属 output channel,在 VSCode 里排查问题不用翻其他面板。详见 PR #7121 

Daemon 日志轮转。 有上限的日志轮转,不再无限增长,磁盘不会被 daemon 日志吃满。详见 PR #6969 

WebShell 只读历史回放。 在只读 WebShell 中回放 ChatRecord 历史,方便分享会话记录给同事看。详见 PR #6999 

MCP 工具名规范化。 为严格 provider 规范化 MCP 工具名,减少 MCP 工具调用失败。详见 PR #6976 

Channel 记忆召回。 每条消息自动召回相关记忆、确认自然记忆变更、安全保存多事实记忆,Channel 对话中 Agent 能记住之前的上下文。详见 PR #7157 #7066 #7092 

Channel 群组名观察。 从入站消息中自动获取群组名称,多群组场景下 Agent 知道在哪个群。详见 PR #7155 

工具描述展示格式化路径。 grep/glob 等工具的描述中展示格式化后的文件路径,结果更清晰易读。详见 PR #7050 

/cd tab 补全增强。 输入目录名后按 tab 会包含已输入的目录,补全更准确。详见 PR #7320 

👏 体验优化

VP 模式鼠标选择回来了。 之前 VP 模式的鼠标事件被 CLI 消费,没法选择复制。现在拖拽选择、双击选词、三击选行,松开自动复制到剪贴板。详见 PR #6937 

Plan 模式安全加固。 退出 Plan 模式现在需要你明确批准,不会静默退出。Plan 模式下的 Shell 命令按安全性分类:只读命令正常执行,状态修改命令直接阻止,无法判断的命令需要逐次批准且不会退出 Plan 模式。退出确认时能看到完整的计划内容。详见 PR #6967 #7172 #7060 

输出语言自动跟随。 设成 auto 时,输出语言跟随用户输入语言,不再需要手动切换。详见 PR #6953 

Ctrl+C 防误触。 退出 TUI 需要 1 秒内按两次 Ctrl+C,单次不再直接退出。详见 PR #7129 

子 agent 并发控制。 支持按模型设置子 agent 并发上限,不同模型可以配不同的并发数。fork 子 agent 新增 fork_turns 参数,可以只继承最近几轮对话而不是全部历史。详见 PR #6984 #7346 

模型适配。 kimi-k3 token 上限(1M 上下文、128K 输出),qwen3.8-max-preview 加入 Token Plan 模型列表,新加坡 Token Plan 区域支持。详见 PR #7144 #7199 #7280 

其他改进。 每轮工具调用上限改为自适应、headless 模式支持上下文继承的子 agent、活跃 loop 中可以使用 goal 控制、流式输出时显示模式指示器、npm 更新改为后台安全执行。详见 PR #7052 #7378 #7202 #7219 #7322 

🔧 重要修复

修复PR对你的影响
系统休眠/唤醒后 TUI 自动重绘#7265 唤醒后界面不再错乱
权限提示期间取消操作不再丢失#7295 取消的操作不会消失
流式输出后被取消的 prompt 恢复到输入框#7149 取消的 prompt 不用重新打
流式代码块跨 commit 分割时保持完整#7020 代码块不会被截断
Agent 空闲时隐藏粘性任务面板#7062 界面更干净
更新检查失败改为警告而非报错#7409 离线启动不再报错中断
completion_tokens_details 缺失时正确估算推理 token#7239 token 用量统计更准确
qwen3.8 side query 在百炼上正常工作#7303 百炼用户 side query 不再失败
web_fetch 后处理有边界限制#7305 抓取失败时保留已获取内容
系统 prompt 中保留已有工作内容#7087 系统 prompt 不会丢失已有内容
空 tool-result 自动重试#7039 模型返回空结果不再卡住
放宽 OpenAI wire additionalProperties 限制#7344 更多模型兼容
启动后创建的 subagent 不再因缓存过期被拒#7112 subagent 创建不再偶尔失败
畸形重复 thinking tag 自动重试#7100 模型 thinking 格式异常不再崩溃
Plan 模式入口边界加固#7248 Plan 模式不会被意外进入
Worktree 会话中 artifact 路径正确解析#7429 Worktree 下 artifact 不再写错位置
MCP 发现超时后终止子进程#6926 不再泄漏进程
MCP 新增 opt-in 模型 payload 过滤#7413 减少不必要的 payload 传输
Desktop MCP 权限请求生命周期加固#7013 pending 提示不再挂起或泄漏
VSCode ACP 进程保留 Electron Node 模式#7106 VSCode 扩展不再因 Node 版本失败
记忆路径中的根符号链接正确解析#6842 符号链接路径不再出错
enableManagedAutoMemory 设置正确生效#6941 自动记忆开关不再失效
Web Shell 恢复的图片和侧边栏快捷键去重#7169 不再出现重复项
Web Shell 审批和问题弹窗支持键盘操作#7074 可以用键盘操作弹窗
Web Shell 恢复 prompt 文本不再堆叠#7134 不再出现重复副本
Worktree 会话运行中可正常打开#7424 Worktree 会话不再打不开
Web Shell daemon token 按标签页持久化#7374 刷新后不用重新认证
Channel 后台 agent 回复正确投递#7336 后台回复不再丢失
Channel 配对和允许列表按 workspace 隔离#7065 多 workspace 不再互相干扰
DingTalk 瞬时 emotion 失败自动重试#7329 表情反应不再偶尔失败
DingTalk @mention 正则锚定到文本开头#7401 @mention 不再误匹配
DingTalk 媒体下载大小限制 50MB#7361 与飞书对齐,大文件不再失败

👥 贡献者

贡献者贡献内容参考 PR 链接
@wenshao Worktree 隔离会话、Git 提交历史浏览器、git status chip + diff、Worktree 会话恢复、Web Shell 多项改进#7221 , #7204 , #7054 , #7262 
@doudouOUC Plan 模式退出审批、Plan 模式 Shell 安全路由、Daemon 日志轮转、会话分支检查、多 workspace 加固#6967 , #7172 , #6969 , #7185 
@yiliang114 多模态整轮路由、npm 后台更新、推理 token 估算、qwen3.8 支持、模型路由修复#7045 , #7322 , #7239 , #7303 
@zjunothing VP 模式鼠标选择、Cmd+B 侧边栏切换、目录自动补全、Plan 完整展示、多项 Web Shell 修复#6937 , #7135 , #7125 , #7060 
@chinesepowered SDK SSE 清理、多项 typo 修复、i18n 修正、DingTalk 媒体限制#7257 , #7057 , #7131 , #7361 
@tanzhenxin 内置 web_search、web_fetch 全面重建、kimi-k3 token 上限、ask-user-question 修复#7215 , #7146 , #7144 , #7063 
@qwen-code-dev-bot 子 agent 并发限制、Channel 记忆召回、goal 控制、模式指示器、多项 CI 修复#6984 , #7157 , #7202 , #7219 
@ytahdn Skill 管理页、自定义斜杠命令、sidebar 自定义 API、Web Shell 修复#7018 , #7267 , #7379 , #7294 
@qqqys Channel 记忆确认、多事实记忆保存、后台 agent 回复投递、DingTalk 修复#7066 , #7092 , #7336 , #7401 
@chiga0 Artifact 默认值和写入提醒、VP 模式控件优化、ink patch 修复#7068 , #6931 , #7407 
@LaZzyMan 实时转向、Auto Mode 分类器不可用时询问、MCP payload 过滤、mobile-mcp 修复#7090 , #7331 , #7413 , #7321 
@DragonnZhang 子 agent 委派护栏、fork_turns、headless 子 agent、系统 prompt 修复#7048 , #7346 , #7378 , #7087 
@han-dreamer 输出语言自动跟随、新加坡 Token Plan 区域、managedAutoMemory 修复#6953 , #7280 , #6941 
@callmeYe extension tag 本地化、语音设置修复、skill 描述保留、tag 图标修复#7337 , #7345 , #7032 , #7024 
@samuelhsin workspace 显示名称、session-info 聚合端点#7179 , #7077 
@BenGuanRan Channel workspace 联系人、群组名观察#7109 , #7155 
@mvanhorn Desktop MCP 权限加固、stdout resize 监听修复、连接错误 cause 透出#7013 , #7186 , #7010 
@morluto MCP 发现超时终止子进程、权限路径规范化#6926 , #6923 
@barry166 取消 prompt 恢复、deferred stream-json 启动警告#7149 , #7174 
@xurik Channel daemon sourceId 标记、session source 标签#7078 , #6991 
@ZijianZhang989 CLI 文档修正、飞书 markdown 限制、批量修复#7326 , #7324 , #7373 
@pomelo-nwu CODEOWNERS 核心模块、简化为包级规则#7304 , #7376 
@jordimas 加泰罗尼亚语翻译更新#7253 
@cxruan WebShell 只读历史回放、悬空工具历史标记#6999 , #7340 
@carffuca 新话题草稿建议、工具栏标签裁剪修复#7098 , #7196 
@dreamWB 上下文标签恢复修复#7312 
@BZ-D 定时任务引用交互修复#7313 
@ran411285752 MCP 工具名规范化#6976 
@yuanyuanAli Sidebar 自定义 API#7379 
🆕 @azurecgx 🎉 首次贡献:TUI MaxSizedBox 行数和 show-more diff 修复#6957 
🆕 @makwingchi 🎉 首次贡献:Daemon prompt ID 传播到 turn 事件#7082 
🆕 @ARE404 🎉 首次贡献:子 agent 模型元数据持久化#7104 
🆕 @ghisguth 🎉 首次贡献:Gemma 4 原生工具调用 schema 适配#7177 
🆕 @ComplexSimply 🎉 首次贡献:更新检查失败改为警告、超时提升到 5 秒#7409 

升级方式:运行 npm i @qwen-code/qwen-code@latest -g 即可升级到最新版本。

如有问题或建议,欢迎在 GitHub Issues  反馈!

Last updated on