批准窗口不断弹出,审查却越来越简短
Claude Code每次执行Shell命令都请求批准时,一开始你会仔细阅读内容。但随着测试和文件探索持续进行,批准窗口会变得更像打断工作的提醒,而不是安全装置。最终,你可能会想创建宽泛的允许规则,或跳过权限确认。
在实际使用数据中,97%的权限请求获得了批准。不过,单凭这个数字不能断定所有用户都没有阅读内容便条件反射般地点击了批准。观察期和提示总数并未公开,而且大多数请求也可能是正常、日常的命令。更准确的解读只是,我们有理由重新审视反复批准是否是能有效识别风险的机制。
为解决这个问题,Anthropic自2026年8月14日起,将自动模式设为Pro、Max和Team计划新会话的内置起始模式。此前指定了其他默认模式的用户和组织,其管理设置将保持不变。
面对同样的高风险命令,人类拦下143次,自动模式拦下937次
在一项对照实验中,自动模式比反复手动批准拦截了多得多的高风险命令。Anthropic在由1,053名付费专业测试人员参与的编程研究环境中,将一项权限请求替换为明显高风险的命令。这些命令并未实际执行,研究比较了人类和自动模式如何处理同样的1,053条命令。
| 决策主体 | 拦截的高风险命令 | 拦截率 |
|---|---|---|
| 手动批准用户 | 143条 / 1,053条 | 13.6% |
| 自动模式 | 937条 / 1,053条 | 89% |
人类的拦截率从会话初期约17%,在此前权限请求超过50次后降至约5%;而自动模式的拦截率不随会话时长而变化。 这一结果表明,在批准请求不断累积的环境中,自动分类可能成为更一致的默认控制措施。
不要把89%泛化为所有开发工作的安全性。参与者是在测试环境而非真实仓库中工作,并且知道自己正在接受评估。分段样本量、置信区间和高风险命令列表同样没有公开。因此,这并不能证明自动模式始终优于会认真审查基础设施变更的专家。
自动模式并非把每一条命令都交给AI判断
自动模式会先放行明显安全的任务,再将只有潜在风险的任务发送给两阶段分类器。只读工具、项目内文件编辑以及范围较窄的用户允许规则会在前端处理。分类器的第一阶段会灵敏地筛出可疑操作,第二阶段则会再次推理已标记的操作,以减少不必要的拦截。
分类器主要依据用户消息和实际工具输入作出判断,而不是Claude编写的说明或执行理由。这种输入分离设计可避免智能体生成的貌似合理的说明影响安全判断。
向外部发送敏感信息、生产部署和迁移、共享基础设施变更、强制推送以及对现有文件的不可逆破坏等操作,都属于默认拦截类别。 不过,不应把约20条规则都理解成在任何情况下都无法解除的绝对禁令。用户可以退出自动模式,组织还需要另行添加deny和ask策略。
还需要检查现有允许规则的范围。像Bash(npm test)这样的窄范围规则会保留,但像Bash(*),或向解释器和包管理器授予广泛代码执行权限的规则,进入自动模式时可能会被排除。退出该模式后,被排除的规则会恢复。
分类器也会漏掉:52起真实越权行为中有17%
自动模式的优势并不是消除风险,而是比反复批准更一致地进行筛选。已部署的两阶段分类器放行了从Anthropic员工会话收集的52个真实越权行为样本中的17%。在1,000次合成数据外泄尝试中,它漏掉了5.7%;对10,000条正常内部流量的误拦截率为0.4%。
这里的17%并不是所有真实使用命令的失败率。它来自仅包含52起已被拒绝或事后标记为有问题案例的小型偏差样本。反过来,89%的拦截率也不代表整个真实生产环境。这两个数字共同说明,自动模式很有用,但不能取代对高风险工作的人工审查。
应按工作的可逆程度划分权限模式。对于本地代码修改和测试这类可以通过diff检查并撤销的工作,可以从自动模式开始。对于生产部署、共享基础设施变更、敏感信息传输和大规模数据变更,保留单独的人工批准和组织策略会更安全。
首次验证从测试仓库开始
请先在不需要提交、推送或部署的版本控制仓库中,确认自动模式在你的环境中如何运行。所选账户、组织和模型必须支持自动模式,且任何设置文件中都不能将permissions.disableAutoMode设为"disable"。在Team和Enterprise中,管理员可能已通过组织设置部署了该值。
练习前,请安装项目依赖,并准备一个可通过现有测试命令反复复现单个失败测试的仓库。如果没有失败测试,不要故意破坏代码;可以使用团队已确定为修复对象的测试仓库。
- 准备Claude Code和测试仓库。
如果尚未安装,请在官方Quickstart中选择适合操作系统的安装方式。安装后,使用claude --version验证,然后在准备好的项目目录中运行claude并登录。 - 先自行复现失败。
运行仓库中定义的测试命令,确认同一个测试会反复失败。此时记录运行的命令和失败测试的名称。如果问题不是代码修改能解决的,例如缺少依赖或外部服务故障,请选择另一个测试。 - 在新会话中选择Auto。
在CLI中,使用Shift+Tab循环切换权限模式,并确认状态栏显示auto mode on。在Desktop和VS Code中,从输入框附近的模式选择器中选择Auto。 - 只交给它处理一个已复现的失败。
输入:“分析我刚刚运行的测试命令中一个失败测试的原因,用最小的代码修改修复它,然后再次运行相同的命令。不要提交、推送、部署,也不要发送到外部服务。” - 同时查看成功结果和拦截记录。
确认相同的测试命令成功,并且git diff中只保留修复该失败所需的更改。如果任务被拦截,请在/permissions的Recently denied中找到被拦截的项目;不要立即绕过,而应进一步缩小请求范围和信任边界后再试。
在同一会话中连续被拦截3次,或累计被拦截20次后,自动模式会暂停并回到手动批准提示。用户批准该工作后,自动模式会恢复。在非交互式运行中,它不会切换到批准窗口,而是不会执行该工作并继续处理其他工作。
如果想进一步了解
Auto mode is now the default in Claude Code for Pro, Max, and Team plans可以帮助你了解97%的批准率、1,053人对照实验的设计,以及切换默认模式的背景。claude.com
How we built Claude Code auto mode: a safer way to skip permissions是介绍两阶段分类器、默认拦截类别以及真实和合成评估结果的工程原文。anthropic.com
Choose a permission mode是当前的产品文档,可查看模式切换方法、被排除的允许规则、拦截阈值和管理设置。code.claude.com



