Qwen Code 周报:智能工具并行、Fork 子代理共享上下文、CJK 分词导航优化
本周发布 v0.14.3、v0.14.4、v0.14.5 三个功能版本。
v0.14.3 上线后收到了不少社区反馈,这周重点处理了输入体验和子代理相关的问题。新功能方面,v0.14.4 带来了智能工具并行执行——只读工具自动批量并行,多工具场景下响应速度明显提升;CJK 分词让中日韩用户的光标导航终于正常了。v0.14.5 新增 Fork 子代理,子任务可以共享父代理的上下文。另外,Qwen OAuth 免费额度已于 4 月 15 日停止提供,推荐迁移到 OpenRouter 或 Fireworks。
✨ 新增特性
智能工具并行执行
Qwen Code 现在会根据工具类型自动判断能不能并行:搜索、读文件这类只读操作自动批量并行执行,shell 写入操作保持串行,确保安全。多工具场景下等待时间明显缩短。详见 PR #2864
你能用它做什么:
- 同时搜索多个文件、读取多段代码,不用逐个排队等
- Agent 自动识别哪些工具调用可以并行,你不需要做任何配置
- 写入操作仍然串行执行,不用担心文件冲突
Fork 子代理共享上下文
新增 Fork 子代理机制。拆分子任务时,子代理自动继承父代理的上下文,不用重复传递背景信息。适合把一个大任务拆成几个小任务分头执行的场景。详见 PR #2936
你能用它做什么:
- 把”重构整个模块”拆成多个子代理分别处理不同文件,每个子代理都知道整体背景
- 减少重复的上下文传递,省 Token
- 子代理之间互不干扰,结果汇总到父代理
Skill 支持指定模型
Skill 文件的 frontmatter 中可以配置模型覆盖,不同 Skill 用不同的模型执行。代码审查用推理能力强的模型,简单任务用快速模型,各取所需。详见 PR #2949
你能用它做什么:
- 给代码审查 Skill 指定推理更强的模型,提高审查质量
- 给简单任务 Skill 指定更快的模型,省钱省时间
- 每个 Skill 独立配置,互不影响
CJK 分词与 Ctrl+方向键导航
终端输入支持中日韩文字的分词识别。按 Ctrl+左/右方向键时,光标按词组跳转,不再一个字符一个字符地挪。混合中英文输入时体验提升明显。详见 PR #2942
你能用它做什么:
- 输入中文提示词时,Ctrl+方向键按词组跳转,快速定位到要修改的位置
- 中英文混合输入时光标导航符合直觉
- 日文、韩文用户同样受益
LLM 消息改写中间件
ACP 协议新增基于 LLM 的消息改写中间件,可以用自定义 prompt 对用户消息做预处理。比如自动补充上下文、统一格式、翻译等。详见 PR #3191
你能用它做什么:
- 自动为简短的用户消息补充项目上下文
- 团队场景中统一消息格式和规范
- 自定义改写规则适配不同业务需求
上下文感知提示
对话结束后,根据当前上下文自动推荐下一步操作。比如改完代码后提示”要不要跑一下测试”,帮你发现更多可用功能。详见 PR #2904
你能用它做什么:
- 完成代码修改后,自动提示相关的后续操作
- 新用户更容易发现和学习功能
- 根据对话内容推荐相关的斜杠命令
/review 增强:确定性分析与自动修复
/review 代码审查现在支持确定性分析(不依赖 LLM 的静态检查)、自动修复建议和安全加固检查。审查结果更可靠,还能直接给出修复方案。详见 PR #2932
你能用它做什么:
- 代码审查结果更稳定,同样的代码每次审查结论一致
- 发现问题后直接给出修复建议,不用自己想怎么改
- 自动检查常见安全漏洞
空闲上下文微压缩
对话空闲时自动清理冗余上下文信息,减少 Token 消耗。长对话场景下效果明显,不用手动管理上下文窗口。详见 PR #3006
你能用它做什么:
- 长对话不再那么快撞到上下文窗口限制
- 自动清理不再需要的中间结果,省 Token
- 不需要手动操作,后台自动完成
更多新功能
- 自定义状态栏:
/statusline命令自定义终端底部状态栏显示内容(#2923 ) - /context detail 子命令:查看上下文的详细使用情况(#3042 )
- SDK 暴露上下文用量数据:非交互模式和 SDK API 中获取
/context用量数据,方便集成监控(#2916 ) - 子代理继承审批模式:子代理自动继承父代理的审批设置,不用重复配置(#3066 )
- 子代理禁用工具配置:Agent 定义中新增
disallowedTools字段,限制子代理使用特定工具(#3064 ) - Agent 名称支持 Unicode:Agent 名称可以用中文等 Unicode 字符了(#3194 )
- Telegram 语音消息支持:TelegramAdapter 新增语音消息收发(#3150 )
- 法语本地化:新增法语(fr-FR)语言支持(#3126 )
- StopFailure 和 PostCompact Hook 事件:新增两个 Hook 事件点,扩展自动化能力(#2825 )
- 启动性能分析器:
--profile参数定位启动耗时瓶颈(#3232 ) - sandbox 镜像配置:settings 中支持
tools.sandboxImage自定义沙箱镜像(#3146 ) - 工作区配置覆盖提醒:工作区配置覆盖全局 modelProviders 时给出警告(#3148 )
- VSCode /account 命令:在 VSCode 插件中查看账号信息(#2984 )
- 直接输入 exit/quit 退出 CLI:不用再输
/exit,直接打exit就行(#3201 )
📊 优化改进
| PR | 版本 | 优化内容 | 对你的影响 |
|---|---|---|---|
| #3120 | v0.14.4 | Fast Model 设置从文本输入改为模型选择器 | 选模型不用手打名字了,从列表里选就行 |
| #3116 | v0.14.4 | /settings 选中设置项时显示详细描述 | 不用猜每个设置是干什么的 |
| #2871 | v0.14.4 | 通过 ↑/ESC 键弹出排队中的消息进行编辑 | 发错消息可以快速捞回来改 |
| #3008 | v0.14.3 | 退出 Plan 模式时新增”恢复之前模式”选项 | 退出 Plan 模式后不用手动切回之前的模式 |
| #3075 | v0.14.3 | verboseMode 重命名为 compactMode | 设置名称更直观,compact = 精简显示 |
| #2728 | v0.14.3 | IDE diff 交互逻辑集中到 CoreToolScheduler | 代码编辑的 diff 展示更稳定 |
| #2914 | v0.14.4 | 终端 Markdown 表格渲染优化 | 表格在终端里显示更整齐 |
| #3193 | v0.14.4 | Coding Plan 默认模型设为 qwen3.5-plus | Coding Plan 开箱即用,默认模型更强 |
🔧 重要修复
| PR | 版本 | 修复内容 | 对你的影响 |
|---|---|---|---|
| #3138 | v0.14.4 | 递归文件爬取无上限导致内存溢出 | 大型项目不再因文件过多而崩溃(上限 100k) |
| #3246 | v0.14.5 | SSE 流中的限流错误未被正确检测 | 限流时能正确提示,不再静默失败 |
| #3251 | v0.14.5 | Gemini 纯思考响应被流验证拒绝 | 用 Gemini 模型时思考过程正常展示 |
| #3212 | v0.14.5 | 自定义 Gemini baseUrl 未生效 | 自定义 Gemini 端点配置正常工作了 |
| #2872 | v0.14.3 | Follow-up 工具调用 UI 泄漏和 Enter 接受缓冲区竞态 | Follow-up 交互不再偶尔卡住或显示异常 |
| #3151 | v0.14.4 | OpenAI 兼容 Provider 的 Follow-up 建议不工作 | 用第三方 Provider 时 Follow-up 功能恢复正常 |
| #2985 | v0.14.3 | 打包安装时 tree-sitter WASM 未内联 | 离线/打包安装场景下代码解析正常工作 |
| #2930 | v0.14.3 | 子代理确认焦点并发冲突 | 多个子代理同时请求确认时不再混乱 |
| #2850 | v0.14.3 | 带环境变量前缀的 shell 命令无法匹配已保存的权限规则 | ENV=val command 格式的命令权限记忆正常了 |
| #3069 | v0.14.3 | Compact 模式下 ProceedAlways 权限未持久化 | 选了”始终允许”后不再重复询问 |
| #3109 | v0.14.4 | 恢复对话时使用过期的压缩检查点 Token 计数 | 恢复对话后 Token 计数准确 |
| #3038 | v0.14.3 | VSCode 插件中聊天输入框滚动条无法拖动 | 长文本输入时滚动条可正常拖动 |
| #3249 | v0.14.5 | VSCode 会话标签标题过长导致标签栏溢出 | 标签标题自动截断,标签栏布局正常 |
| #3181 | v0.14.4 | 粘贴模式卡死后 Ctrl+C 不可用 | 终端粘贴异常时仍可通过 Ctrl+C 恢复 |
| #3136 | v0.14.4 | Channel 启动命令未应用代理设置 | 在代理环境下 Channel 正常启动 |
| #3031 | v0.14.4 | IDE diff 打开失败时无回退方案 | IDE diff 失败时自动回退到 CLI 确认 |
| #3123 | v0.14.4 | OAuth 刷新响应体为空时崩溃 | OAuth Token 刷新异常时不再崩溃 |
| #3197 | v0.14.4 | @file 注入路径未遵守 respectGitIgnore 设置 | @file 引用文件时正确忽略 .gitignore 中的文件 |
| #3192 | v0.14.4 | MCP Server cwd 不存在时无明确错误提示 | MCP 配置路径错误时给出清晰提示 |
📢 重要公告:Qwen OAuth 免费额度停止提供
自 2026 年 4 月 15 日起,Qwen OAuth 免费额度已停止提供。已有用户可继续使用至额度耗尽。推荐迁移到以下渠道:
- 阿里云百炼 (推荐):支持 qwen3-coder-plus、qwen3.6-plus 等最新模型,按量付费,配置方式参见百炼文档
- OpenRouter :聚合多家模型 Provider,支持多种付费方式
- Fireworks :高性能推理平台
🎈 其他改进
| PR | 改进内容 | 对你的影响 |
|---|---|---|
| #3187 | 非交互模式下 --openai-api-key 参数验证修复 | CI/CD 中使用 API Key 认证不再报错 |
| #3257 | /bug 命令在不支持超链接的终端中更易使用 | 任何终端都能方便地提交 Bug 报告 |
| #3270 | 忽略输入框中的 Tab 字面量输入 | Tab 键不再在输入框中插入制表符 |
| #3060 | Shift+Tab 不再接受 placeholder 建议 | 只有 Tab 才接受建议,Shift+Tab 行为正常 |
| #3045 | 粘贴内容中的 Tab 字符正确保留 | 粘贴代码时缩进不会丢失 |
| #3104 | 斜杠命令补全优先级提升 | 输入 / 后命令补全更快出现 |
| #3077 | /model --fast 描述文案优化 | 更容易理解 --fast 参数的作用 |
| #3041 | 非仓库目录下 checkpointing 初始化修复 | 在非 Git 仓库目录中使用不再报错 |
| #3091 | statusline 脚本不再意外修改 settings.json | 自定义状态栏不会弄乱你的配置文件 |
| #3208 | 取消输入时不再自动填充上一条 prompt | 按 Esc 取消后输入框是干净的 |
| #2865 | 升级 normalize-package-data 修复 DEP0169 警告 | 启动时不再看到 deprecation 警告 |
| #3134 | 延迟加载 Channel 插件消除 DEP0040 启动警告 | 启动日志更干净 |
| #3294 | 钉钉 Channel 优先使用 senderStaffId 匹配用户 | 钉钉 Channel 用户识别更准确 |
| #3044 | 微信登录 QR 码流程补充缺失的 iLink 请求头 | 微信扫码登录更稳定 |
| #2948 | ripGrep 工具补充默认权限和外部路径支持 | ripGrep 搜索可以访问工作区外的文件了 |
| #3094 | 多行输入模式下换行与提交判断修复 | 多行输入时 Enter 和 Ctrl+Enter 行为正确 |
| #2891 | 清理输入组件中的无用状态和参数 | 输入组件更轻量,响应更快 |
👋 欢迎新贡献者
- @doudouOUC — 修复非仓库目录下 checkpointing 初始化、新增 sandbox 镜像配置和工作区配置覆盖提醒
- @BZ-D — 修复 Shift+Tab 误接受 placeholder 建议
- @YuchenLiang00 — 新增
/context detail子命令 - @Apophis3158 — 实现 CJK 分词与 Ctrl+方向键导航优化
- @sibylassana95 — 新增法语本地化支持
- @evan70 — 升级 normalize-package-data 修复 DEP0169 警告
- @B-A-M-N — 修复 OAuth 刷新响应体为空时的崩溃
- @feyclaw — 新增 Telegram 语音消息支持
- @dreamWB — 修复 VSCode 会话标签标题溢出
- @reidliu41 — 优化
/bug命令在无超链接终端中的体验 - @Shenean — 修复输入框中 Tab 字面量输入问题
升级方式:运行 npm i @qwen-code/qwen-code@latest -g 即可升级到最新版本。
如有问题或建议,欢迎在 GitHub Issues 反馈!