Qwen Code 自动审批边界需要检查
文章指出 Qwen Code 默认 Auto 模式会直接批准项目内多数文件编辑,只对部分敏感文件另行检查。其他操作可能交由模型分类器判断,因此自动模式下的执行范围需要结合配置确认。
AI 深度解读
Qwen Code 的 Auto 模式会直接放行项目内的大多数文件修改,不会逐次询问。原文提醒的关键是:按作者查到的实现,Auto 已成为新会话的默认模式,而名为 default 的模式才对应界面里的 Ask Permissions。
如果你希望 AI 改代码前先获得许可,需要主动切换模式,并区分「只改本次会话」和「以后每次都生效」。这篇最有用的地方,是把自动放行的边界和配置入口讲清楚了。
Auto 到底替你批准了什么
原文把 Auto 的审批行为分成三层。
第一层是项目内的文件编辑。普通源码修改会直接获批,连安全检查都不会进入。不过,Qwen 自身配置、.git/、package.json、CI 工作流等文件属于例外,仍然需要检查。原文没有列出完整例外清单。
第二层是只读工具。读文件、搜索、列目录,以及 ls、cat、git log 这类只读 shell 命令,都会直接放行。
第三层才交给分类器判断,包括其他 shell 命令、网页获取、子代理、MCP 工具,以及项目目录之外的编辑。这里的分类器是一次语言模型调用:优先用配置的 fast model,没有配置则使用主模型。模型判定安全,操作就会执行。
Auto 下,项目内普通源码的修改不会经过逐次确认,也不会先交给模型做安全判断。
因此,不能把 Auto 理解成「所有操作都先经过模型审查」。另外,如果你配置的是小型免费模型,它也可能承担第三层操作的审批判断;原文没有提供分类器误判率或不同模型的对照结果。
怎么让它每次都先询问
最容易混淆的是命名:界面里的 Ask Permissions,对应的配置值仍然叫 default;按原文描述,它却已经不是启动时的默认模式。
只想修改当前会话,可以按 Shift+Tab 切换模式,Windows 使用 Tab,并查看状态栏;也可以输入:
/approval-mode default
要留意最后的 default。它切换的是当前会话,退出后重新启动,仍可能回到 Auto。
希望以后每次都询问,可以把下面的配置写进用户级 ~/.qwen/settings.json,或当前项目的 .qwen/settings.json:
{
"tools": {
"approvalMode": "default"
}
}
关键是 tools.approvalMode 的值为 "default"。用户级配置用于所有项目,项目级配置用于单个项目。
启动时也能传入 qwen --approval-mode default。命令行参数优先于配置文件,因此可以长期保留询问模式,需要临时提速时,再显式传入 --approval-mode auto-edit。原文没有展开 Auto 与 auto-edit 的完整行为差异,不宜仅凭名称把两者当成同一种模式。
放进编辑器,也要检查会话模式
通过 Agent Client Protocol(ACP)把 Qwen Code 接入 Zed、JetBrains 等客户端,并不会自然消除这个问题。按原文描述,如果宿主应用和用户配置都没有覆盖模式,新会话仍会进入 Auto。
客户端可以主动切换模式,有些应用会提供选择器。没有选择器时,可以在代理启动参数里加入 --approval-mode default,或者使用前面的配置文件。作者明确表示,这两种方式在 ACP 场景下都经过了他的验证。
作者是在给 Bellows 接入 Qwen Code 时发现这些行为的。Bellows 是他参与开发的免费桌面应用,支持 Qwen Code、Claude、Codex、Gemini CLI 等 ACP 代理。按他的描述,Bellows 会在会话启动时切到 Ask Permissions,把编辑和命令展示为待批准的卡片,并保留可还原的 diff。
这里要分清:自动切换模式、审批卡片和 diff 管理,是作者介绍的 Bellows 行为,不能据此推断所有 ACP 客户端都有同样体验。
我的判断
我认同这篇对权限边界的提醒。允许 AI 自动修改源码,与允许它运行命令,是两种不同的授权;用户需要知道工具分别如何处理它们。
但「其他情况最好都询问」仍是作者的经验判断。原文没有比较不同审批模式的效率、事故率,也没有提供足以证明分类器可靠性的测试数据。对于一次性分支上的长时间任务,自动放行可能减少中断;对于需要逐项审阅的改动,Ask Permissions 更符合使用预期。
此外,原文没有给出 Qwen Code 的具体版本号。因此,「Auto 是默认模式」应理解为作者检查时的行为,不能无限推广到所有历史版本和后续版本。作者也参与 Bellows 开发,其产品介绍应与前面的配置说明分别看待。
能拿来做什么
- 如果你希望 Qwen Code 修改前端或 Node 项目时逐次询问,可以把
"approvalMode": "default"写进合适层级的配置文件,并在新会话中查看状态栏确认模式。 - 临时接手一个需要谨慎审阅的仓库时,可以用
qwen --approval-mode default启动,避免只切换了上一次会话却误以为长期生效。 - 通过 Zed、JetBrains 等 ACP 客户端使用时,检查客户端的模式选择器或代理启动参数;原文验证了设置文件和启动参数这两条路径。
- 如果继续使用 Auto,先确认 fast model 的配置。它可能负责部分操作的放行判断,但项目内普通源码编辑依然会直接获批。