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

Qwen Code 周报:@ 直接引用历史会话上下文、后台 Agent 完成后常驻可继续追问、/learn 看视频就能学技能

Qwen Team
2026-07-30

Qwen Code 本周发布 v0.21.0 和 v0.21.1 两个正式版本,290+ 个 PR 合入。

会话和 Agent 的生命周期补上了两块短板。 之前想复用早期对话的上下文,只能 resume 或 fork,当前对话会被打断。现在输入 @ 就能在补全列表里看到本项目的历史会话,选中后注入一份只读摘要,当前对话保持独立。后台 Agent 那边,之前跑完就销毁,追问一句得从头重建;现在完成的 Agent 运行时直接驻留在上级会话里,send_message 接着聊,退出进程再回来 roster 也能恢复。

技能系统从 ” 手动挡 ” 往前走了一步。 /learn 之前只能处理文本、文档和网页,教程视频得自己看完再手动写技能。现在直接丢一个 MP4 进去,Agent 看完自动蒸馏成可复用的 Skill。技能目录也不用再复制多份——settings 里配一下路径,Claude Code、Codex、Qwen Code 共享同一个技能库。

可观测性和集成也在补齐。 /stats 终于有了 TTFT、生成时长、TPS,换模型对比流式性能不用再靠体感。GitHub Channel 适配器上线,在 Issue 或 PR 里 @机器人就能触发 Agent 回评论。Web Shell 这周动了 40+ 个 PR:Git 分支选择器、commit 对话框、创建 PR 流程、Channel 管理页面、文件渲染预览、语音输入——一次全上了。

✨ 新增特性

/learn 支持视频输入:看个教程视频就能变成可复用技能

之前 /learn 能处理文本、文档、目录和网页,但视频不行。你有一个 15 分钟的操作录屏,想把它变成 Agent 能用的技能?得自己看完,手动写 SKILL.md。

现在 /learn 支持本地 MP 4、WebM、MOV、M 4 V 文件和 HTTP(S) 视频直链。命令会先检查当前模型是否支持视频输入,通过后把视频交给 Agent 蒸馏,输出一个 learned-skill-* 目录,包含 SKILL.md 和带时间戳的 references/source.md 来源记录。YouTube 页面 URL 会被识别并拒绝,提示你先下载为本地视频。非视频输入保持原有行为不变。

你能用它做什么:

  • 把同事的操作录屏直接变成团队可复用的技能
  • 看完一个教程视频,/learn tutorial.mp4 一键提取操作步骤
  • 来源记录标注 “source-grounded, not execution-verified”,区分 ” 看来的 ” 和 ” 验证过的 ”

详见 PR #7497 

@ 引用历史会话:不用恢复或 fork,当前对话直接调用过往上下文

之前想复用早期会话的上下文,只能 resume 或 fork。resume 会离开当前对话,fork 会创建一个新分支——对于 ” 只想引用一下之前的结论 ” 这种轻量需求,两者都太重了。

现在在输入框里打 @,补全下拉框会按全部、文件、会话、MCP、扩展分类展示结果,左右方向键切换分类。选中一个历史会话后,Qwen Code 会注入一份确定性生成的只读摘要:保留用户和助手的可见文本,工具结果压缩成单行状态,整体控制在 8k token 预算内,优先保留最新内容。当前对话完全不受影响,旧会话也不会被恢复或 fork。

你能用它做什么:

  • 在当前任务中引用之前调试会话的结论,不用切来切去
  • 把上一次代码审查的反馈作为上下文传给新任务
  • 跨会话积累项目知识,不用每次重新解释背景

详见 PR #7302 

后台 Agent 常驻与跨会话恢复:完成后不用重建,追问一句接着跑

之前后台 Agent 完成就销毁运行时。想追问一句?得从 JSONL transcript 完整重建 chat、工具、registry 和 provider 缓存——慢,而且进程内的状态全丢了。更糟的是,退出进程再恢复上级会话,已完成的 Agent 直接变成 Task not found

这周两个 PR 一起解决了这个问题。第一步,完成的后台 Agent 运行时直接驻留在上级会话中,send_message 到同一个 task_id 会复用实时 chat、已准备的工具、provider 缓存和启动时模型,不再从 transcript 重建。第二步,退出进程再恢复上级会话时,被中断的 Agent 以 paused 状态回来,已完成的以 completed 状态回来,任务 ID 不变。新增的 list_agents 工具可以查看当前会话所有可寻址的后台 Agent。

你能用它做什么:

  • 后台 Agent 跑完代码审查,追问 ” 把第三个建议展开说说 “,不用重建
  • 退出终端第二天回来,list_agents 看到昨天的 Agent 还在,接着干活
  • 迭代修正时 Agent 保持启动时模型,不受上级会话切换模型影响

详见 PR #7426 #7459 

自定义技能目录:一套技能多个 Agent 共享

之前技能只能放在 ~/.qwen/skills/ 下。如果你同时用 Claude Code 和 Qwen Code,同一套技能得复制两份,改了一个忘了另一个是常态。

现在在 settings.json 里加一个 skills.directories 数组,指定额外的技能扫描路径。路径支持 ~ 展开,递归扫描 SKILL.md 文件。默认目录优先级更高,同名技能以默认目录为准。

你能用它做什么:

  • ~/.agent/skills 放一套技能,Claude Code、Codex、Qwen Code 共用
  • 团队共享技能库放在 /shared/team-skills,所有人自动同步
  • 按项目组织技能,不用全塞在一个目录里

详见 PR #7395 

/stats 生成性能指标:TTFT、TPS 一目了然

之前 /stats 展示的是会话时长、请求总量、工具调用和文件变更。想对比两个模型的流式响应速度?没有 TTFT,没有 TPS,只能靠体感。

现在 /stats 和 Session 标签页新增 Generation Metrics 区域:最近一次请求的模型名、TTFT(首 Token 延迟)、生成时长、输出 Token 数和 TPS,以及会话级的计时请求数、平均 TTFT 和加权 Session TPS。生成时长按 api_duration - ttft 计算,TPS 分母是首可见 Token 到生成完成的区间。内部辅助 prompt 不计入,每日/月度用量记录不变。

你能用它做什么:

  • 换模型后跑一轮 /stats,直接看 TTFT 和 TPS 的差距
  • 对比本地后端和云端 API 的流式性能
  • 会话级加权 TPS 反映整段对话的真实吞吐

详见 PR #7677 

GitHub Channel 适配器:在 Issue 和 PR 里 @机器人直接触发 Agent

之前 Qwen Code 的 Channel 支持飞书、微信、QQ、Telegram,但 GitHub 不行。想在 Issue 里 @机器人让它帮忙看个问题?做不到。

现在 GitHub Channel 适配器上线了。配置一个 classic PAT,启动 Channel 后它会轮询 GitHub 通知 API。在 Issue 或 PR 评论里 @机器人,Agent 读取评论内容并在同一线程回复。新建 Issue 时 body 里 @机器人也能触发(首次接触)。去重基于 cursor 评论窗口而非 GitHub 的异步 markNotificationsAsRead,bot 自评论会被过滤防止循环。支持 GitHub Enterprise(通过 baseUrl 配置)和代理。

你能用它做什么:

  • 在 Issue 里 @机器人:” 帮我看看这个报错 “,Agent 直接回评论
  • PR 审查时 @机器人补充上下文,不用切到终端
  • 轮询间隔可配置(默认 60s),按需调整响应速度

详见 PR #7632 

Web Shell 全面更新:Git 操作、Channel 管理、文件预览、语音输入一次到位

Web Shell 这周有 40+ 个 PR 合入,从 Git 工作流到 Channel 管理到输入体验,几乎每个角落都动了。

Git 操作闭环了。 之前 Web Shell 里只能看分支,不能切、不能提交、不能建 PR。现在新建会话时有 Git 模式选择器(#7471 ),会话内可以切分支、打开 commit 对话框、直接创建 PR(#7731 )。Worktree 会话也能打开 Changes 和 History 对话框了(#7695 )。侧边栏还加了只读 GitHub PR 面板(#7683 ),不用切到浏览器就能看 PR 状态。

Channel 管理有页面了。 之前配置 Channel 得手动编辑 settings.json。现在 Web Shell 里有完整的 Channel 管理页面(#7793 ),支持配置流程(#7893 )和配对请求管理(#7909 )。

文件预览和 Agent 管理。 文件列表支持渲染预览了(#7467 ),不用点开看原始内容。子 Agent 会话在详情面板可见(#7380 ),后台 Agent 状态实时同步(#7561 )。Workspace 选择器(#7390 )和原生文件夹选择器(#7849 )让多项目切换更顺手。

输入体验。 语音输入限定在当前 composer workspace(#7754 ),支持按住说话模式(#7839 ),移动端稳定性也修了(#7806 )。触屏设备回退到纯 textarea composer(#7587 )。粘贴内容不再丢失(#7824 )。终端支持 256 色和 truecolor SGR 序列解析(#7620 )。

其他改进。 侧边栏最宽可以拉到窗口一半(#7778 ),会话名 hover 显示全称(#7662 ),Monitor 任务有详情面板(#7817 ),长会话渲染性能优化(#7408 )。Shadow DOM 隔离防止宿主 CSS 污染组件样式(#7551 )。输入 “BTW” 会建议开一个侧问题(#7935 )。

📊 更多新功能

图片缩放工具。 大图片发给模型前会被缩小,小字和图表标签经常糊掉。现在支持图片输入的模型可以用 zoom_image 工具从原始全分辨率文件裁剪指定区域,放大后返回 JPEG 视图。支持 PNG、JPEG、WebP,自动处理 EXIF 方向。详见 PR #7809 

Subagent 模型等级。 不同任务需要不同成本的模型,但调用方不应该接触具体模型 ID。现在可以在 settings 里把 smallhigh 等语义等级映射到模型 selector,Agent 工具 schema 只暴露等级名。Fork 和命名 teammate 不接受该参数。详见 PR #7702 

可配置图片生成模型。 图片生成不再绑定默认模型,可以在配置中指定。详见 PR #7607 

外部语料检索工具。 新增 context_search MCP 工具,按需从外部知识库或 RAG 服务检索上下文。只读、不自动召回、不写入,Provider 和语料库由管理员配置固定。包含 Mem0 和通用 HTTP 两个适配器。详见 PR #7586 

系统身份覆盖。 通过环境变量 QWEN_SYSTEM_IDENTITY_MD 可以覆盖核心身份提示。详见 PR #7478 

MCP 强制重连。 qwen serve 支持强制重连 MCP 服务器,不用重启整个进程。详见 PR #7488 

Workspace trust 热重载。 修改 workspace trust 配置后,运行中的 daemon 立即应用新策略,不用重启。详见 PR #7268 

Skill 默认禁用状态。 技能可以设置为默认禁用但允许显式启用(soft default),硬禁用则不可覆盖。详见 PR #7357 

Session-scoped runtime MCP。 ACP 会话支持会话级运行时 MCP 配置。详见 PR #7847 

钉钉图片发送。 钉钉 Channel 支持发送图片消息。详见 PR #7698 

Telegram forum topic 路由。 Telegram Channel 的回复现在能正确路由到 forum topic。详见 PR #7612 

Review 双语评论。 当 PR 描述是中文时,/review 发布的审查评论会自动使用中英双语。详见 PR #7564 

OAuth 登录链接优化。 OAuth 登录 URL 现在以 OSC 8 超链接格式输出,终端里直接点击就能跳转。详见 PR #7255 

VP 选择复制保留语义文本。 在 VP 模式下选中文本复制时,保留语义文本而非渲染格式。详见 PR #7286 

👏 体验优化

Shift+Enter 终于能换行了。 Ghostty 等终端在 Kitty 协议未启用时,Shift+Enter 会被误判为 Escape,触发对话回退提示。现在修正了 CSI-u 解析,Shift/Ctrl/Alt+Enter 在 VP 和非 VP 模式都能正常换行。流式 Thinking 块的高度也不再抖动——窗口只增不减,不再跟随终端高度漂移。详见 PR #7397 

大粘贴不再卡死。 之前粘贴 260K 字符会触发 260K 次逐字符 keypress 事件,阻塞约 1.7 秒。现在在 stdin 层拦截 bracketed paste 标记,整块处理,降到约 8ms。粘贴时 Footer 还会显示进度条(Pasting… ████████░░░░░░░░ 42% (128 KB)),支持 Ctrl+C 中断。详见 PR #6506 

流式重试延迟可配置。 新增 retryInitialDelayMsretryMaxDelayMs 设置,可以针对特定 provider 的配额窗口调整 SSE 流式重试延迟。详见 PR #7674 #7666 

TUI 图标列对齐。 所有 TUI 图标列统一为 2 字符宽度,不再参差不齐。详见 PR #7633 

排队消息显示修正。 排队消息的显示样式和排序修正,不再错位。详见 PR #7381 

/copy 命令修复。 /copy 带裸索引和 /copy <message> <index> 选择代码块现在都能正常工作。详见 PR #7789 #7883 

更新检查改用 npm view。 版本更新检查从 update-notifier 切换到 npm view,更可靠。详见 PR #7528 

IME 光标对齐。 Footer 更新后输入法光标不再错位。详见 PR #7711 

🔧 重要修复

修复PR对你的影响
Worktree 隔离空 working_dir 规范化#7403 Agent 工具设置 isolation: worktree 时,空 working_dir 不再导致异常
qwen3.8-max 和 kimi-k3 图片模态支持#7491 这两个模型现在可以正常处理图片输入
后台 Agent 单槽让位#7258 单槽模式下后台 Agent 正确让位给前台
DashScope thinking 必需工具回避#7661 DashScope 模型在 thinking 模式下不再因必需工具报错
Fork subagent 可发现#7460 Fork 出的子 Agent 现在能被正确发现和寻址
工具结果图片桥接给纯文本模型#7484 纯文本模型收到工具结果中的图片时不再崩溃
429 配额耗尽快速失败#7842 永久性配额耗尽的 429 不再静默重试,直接报错
瞬态网络错误自动重试#7898 API 调用中的瞬态网络错误自动重试,减少手动重跑
Gitignore 模式处理#7763 #7764 #7765 前导空格、尾部斜杠、反斜杠转义的 gitignore 规则现在被正确解析
splitCommands 引号处理#7526 #7870 单引号内的反斜杠和命令替换内的引号不再被错误解析
sed 模式安全拒绝#7775 #7790 ] 开头的 bracket 表达式和 -i 不在最后的组合 flag 会被安全拒绝
Grep 前导短横线#7863 搜索模式以 - 开头时不再被误认为选项
Cron 步进日字段语义#7464 步进日字段现在与 Vixie cron 语义一致
会话删除时 usage 保护#7425 删除会话时用量数据不再丢失
嵌套后台请求拒绝#7593 嵌套的后台 Agent 请求会被正确拒绝
reasoning effort 禁用保持#7541 禁用的 reasoning effort 设置不再被意外重置
系统 rg 回退#7203 内置 ripgrep 无法运行时自动回退到系统 rg
Plan 退出通知#7682 #7744 用户手动退出 plan mode 时模型能收到通知
扩展 Agent 不可修改#7245 扩展提供的 Agent 不再被意外更新覆盖
inline math 识别#7701 #7741 单字符数学表达式、转义美元符号和代码 span 中的数学内容现在被正确识别

👥 贡献者

贡献者贡献内容参考 PR 链接
@wenshao autofix 多项增强(stale base 恢复、基础设施重试、双语报告)、review 增强(mutation test、lens 借用、script-lint gate)、Web Shell Git 操作(分支选择器、commit 对话框、PR 面板)、triage 安全加固#7482 , #7564 , #7731 , #7683 
@chinesepowered daemon 安全(secret 清理、env 隔离)、核心工具安全(sed/grep/gitignore/splitCommands 修复)、SDK 校验加固、OpenAPI 转换修复#7256 , #7527 , #7763 , #7863 
@ytahdn Web Shell 核心开发(文件预览、Shadow DOM 隔离、子 Agent 面板、长会话性能、Channel 管理、语音输入、移动端适配)#7467 , #7551 , #7380 , #7408 
@doudouOUC 遥测对齐 ARMS、启动性能优化(undici/GenAI SDK 懒加载、ACP 延迟初始化)、serve 可靠性(epoch cursor、SSE 加固)、SDK-Java daemon transport#7536 , #7455 , #7458 , #7463 
@yiliang114 CI/发布修复、模型图片模态支持、serve 竞态修复、更新检查改进、subagent 模型等级、release 脚本加固#7491 , #7556 , #7702 , #7528 
@qqqys Goal v3 全套(状态协议、证据验证、运行时编排、worker tools、持久化回放)、Channel 基础设施(workspace 配置、生命周期、管理 API、daemon loop)、图片生成模型配置#7517 , #7664 , #7637 , #7607 
@chiga0 Shift+Enter 换行修复、Thinking 块闪烁修复、VP 复制语义文本、排队消息显示、TUI 图标对齐、ink 补丁修复、网络错误重试#7397 , #7286 , #7381 , #7898 
@DragonnZhang 后台 Agent 常驻、roster 恢复、fork subagent 可发现、usage 持久化、系统提示分层构建、Anthropic cache breakpoint#7426 , #7459 , #7460 , #7912 
@qwen-code-dev-bot 自定义技能目录、钉钉 mention 修复、plan mode 修复、CI 容器修复、git 分支轮询#7395 , #7473 , #7682 , #7830 
@ComplexSimply 触屏 textarea composer、后台 shell 状态 sidecar、输出流 flush 等待、insight 本地时间#7587 , #7669 , #7833 , #7670 
@zjunothing usage salvage 加固、Channel 多任务消息修复、plan 退出通知、插件 extension ID 修复、plan 文件读取#7425 , #7608 , #7676 , #7678 
@patrick-andstar workspace 选择器初始化、嵌套后台请求拒绝、ACP 空闲取消修复、npm 更新清理#7518 , #7593 , #7598 , #7539 
@LaZzyMan /learn 视频输入、@ 历史会话引用、大粘贴性能优化、工具结果图片桥接#7497 , #7302 , #6506 , #7484 
@hogeheer499-commits 后台 Agent 单槽让位、Telegram forum topic 路由、DashScope thinking 修复、SSE 重试延迟#7258 , #7612 , #7661 , #7666 
@destire-mio cron 步进日语义修复、/stats 生成性能指标、扩展 Agent 保护#7464 , #7677 , #7245 
@OrbitZore GitHub Channel 适配器、senderId 修复#7632 , #7727 
@CubeLander inline math 识别修复、转义美元符号处理#7701 , #7741 
@dreamWB locked workspace 会话操作修复、composer footer 渲染器#7629 , #7856 
@mvanhorn worktree working_dir 规范化、xterm 诊断日志静默#7403 , #7663 
@water-in-stone workspace 选择器按钮、IME 光标对齐#7390 , #7711 
@jay666mnj SSE 重试延迟配置、transcript 分页回归测试#7674 , #7657 
@callmeYe daemon 调用上下文传播、语音按住模式#7279 , #7839 
@he-yufeng tool-call 路由修复、release 脚本重试加固#6981 , #7535 
@BZ-D MCP 强制重连#7488 
@ZijianZhang989 记忆召回遥测#7393 
@yuanyuanAli Web Shell renderChatHeader 插槽#7553 
@tanzhenxin 用量统计环境变量覆盖#7579 
@han-dreamer auto-memory 索引读取记录#7468 
@BenGuanRan Channel 显式投递#7388 
🆕 @ovochouovo 🎉 首次贡献:JSDoc 参数名对齐、多工具 compact 摘要显示工具描述#7492 , #7589 
🆕 @Truraly 🎉 首次贡献:空 working_dir 占位符忽略#7343 
🆕 @zjgzx1988 🎉 首次贡献:QWEN_SYSTEM_IDENTITY_MD 系统身份覆盖#7478 
🆕 @dtometzki 🎉 首次贡献:更新检查改用 npm view#7528 
🆕 @WladmirJunior 🎉 首次贡献:reasoning effort 禁用保持#7541 
🆕 @nerdalytics 🎉 首次贡献:npm shim 误判修复#7545 
🆕 @harjothkhara 🎉 首次贡献:系统 rg 回退#7203 
🆕 @PratikWayase 🎉 首次贡献:终端历史分页错误持久化#7709 
🆕 @Sparkle6979 🎉 首次贡献:重复 skill 斜杠命令补全#7720 
🆕 @VitaliBabkin 🎉 首次贡献:safe-mode 保留调用方 MCP 服务器#7827 
🆕 @VectorPeak 🎉 首次贡献:heatmapDays 参数严格解析#7218 
🆕 @Eric-GoodBoy-Tech 🎉 首次贡献:QQ Bot 会话恢复修复#7722 
🆕 @carffuca 🎉 首次贡献:BTW 侧问题建议#7935 
🆕 @samuelhsin 🎉 首次贡献:Skill 默认禁用状态#7357 
🆕 @ZevGit 🎉 首次贡献:虚拟化终端历史默认开启#5738 
🆕 @gauravyad86 🎉 首次贡献:MCP OAuth 回调加固#7510 

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

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

Last updated on