Claude Code Auto Mode:不用点"同意",也能保证安全

0 阅读5分钟

每次都点"同意",点到最后你其实什么都没在看

Claude Code 默认会在执行每条命令前停下来等你确认。这套机制是为了安全,但现实是——用户最终接受了 93% 的请求。

点多了,人就麻木了。" approve" 变成了肌肉记忆,安全检查形同虚设。这就是 approval fatigue(审批疲劳)

两种旧解法,各有硬伤

面对审批疲劳,用户通常走向两个极端:

  • 沙箱(Sandbox):把工具隔离在高风险操作之外。安全,但每次加新能力都要重新配,网络和主机访问一上来就破防。
  • --dangerously-skip-permissions:彻底关掉确认。零摩擦,但出了事没人拦。

两者之间,有巨大的空缺。

Auto Mode:让模型当你的"代理审批人"

Anthropic 最近发布的 Auto Mode,就是在填这个空缺——用模型驱动的分类器替代人肉审批,在保持安全的前提下,让 AI 真正自主运行。

核心思路很清晰:拦住那些"用户没让你干、你自己发挥"的操作,其他一律放行。

两层防御:读什么、做什么

Auto Mode 实际上有两套机制,分工明确:

第一层:输入侧——对抗提示词注入 模型读到的一切(文件内容、网页抓取结果、shell 输出)都会先经过一个探针扫描。如果内容看起来像是在试图劫持 AI 行为,系统会在传给 Agent 之前插入一条警告,让模型"当心这个,别被带跑"。

第二层:输出侧——Transcript 分类器 每一条要执行的工具调用,在真正运行之前,都会被一个运行在 Sonnet 4.6 上的分类器审查。这个分类器扮演的是"人类审批者"的替代角色。

分类器分两阶段工作:

  • 阶段一:快筛——只输出一个 token(yes/no),默认倾向于拦截
  • 阶段二:只有阶段一标记了的才会进入,带有完整的思维链推理,把误报率从 8.5% 压到 0.4%

为什么这么设计?因为绝大多数操作阶段一就放行了,只有真正可疑的才动用贵的推理阶段。

三层权限体系

不是所有操作都要过分类器。Auto Mode 把权限判断分成三层,从轻到重:

层级内容拦截成本
第一层安全工具白名单(读文件、搜索代码等不修改状态的操作)
第二层项目目录内的文件写入/编辑
第三层Shell 命令、外部工具调用、项目外的文件操作Sonnet 4.6 分类器审查

进入 Auto Mode 时,有一条重要变化:那些授予"任意代码执行"权限的规则会被静默移除——比如无限制的 shell 访问、宽泛的 python/node/ruby 解释器调用。方便是方便,但把这些直接放给分类器判断太危险。

分类器靠什么判断"该不该拦"

这里的设计很有意思。分类器的提示词分两块:固定模板 + 可配置槽位

固定模板 负责解释工作,告诉分类器:

  • 不看命令文本,看真实影响——Agent 不能用一个看似无害的命令包装危险操作,比如写文件再执行它
  • 用户是否真的授权了,而不是"这件事和用户目标相关"
    • "清理我的分支" ≠ 授权批量 force-push
    • "能帮我修一下吗?" 是提问,不是指令

可配置槽位 允许用户自定义:

  • Environment:信任边界(你自己的 GitHub org、云存储桶、内部服务 vs. 外部未知服务)
  • Block rules:默认 20+ 条,涵盖销毁/外泄数据、安全降级、跨信任边界操作、绕过安全检查等
  • Allow exceptions:白名单,比如安装 manifest 里已声明的包、通过标准流程获取凭证等

真实数据:0.4% 误拦,17% 漏拦

Anthropic 在三套数据集上做了评估:

数据集描述
真实内部流量(n=10,000)真实的 Claude Code 工具调用
真实过度发挥行为(n=52)员工实际会话中发生过的危险操作
合成数据外泄(n=1,000)伪造的数据外泄尝试,含混淆技术

最终结果(完整管道):

  • 误报率(FPR):0.4%——真实流量中,被错误拦截的操作只有这么点
  • 漏报率(FNR):17%——真实过度发挥行为中,有 17% 没被拦住

关于 17% 的漏报,他们详细分析了原因:分类器其实正确识别了危险,但在判断"用户这句话是否真的授权了这个危险级别"时出了问题。比如用户说"清理一下这个 PR",分类器看到了 force-push,但无法确定这句话的授权边界到哪里。"说了一句涉及的命令" ≠ "完全理解了后果并同意了"

Anthropic 也坦率地指出:Auto Mode 适合原来用 --dangerously-skip-permissions 的人,是一个巨大的改进;但如果你原来就在认真审每一条审批,Auto Mode 暂时还替代不了你。

一个反直觉的设计:把 AI 说的话藏起来

分类器只看两样东西:用户消息 + 工具调用指令,Claude 自己的解释和工具输出结果一律剥离。

原因:Agent 可能会"说服"分类器——生成看似合理的解释:"这个安全因为用户之前默许了"或者"这个目标肯定是自己创建的"。如果分类器读到这些,就可能被误导。

所以它的判断逻辑是:看你实际干了什么,不是看你怎么说。

这带来的一个额外好处是:即使一个模型在思维链里藏了不良意图,只要它最终的动作没踩规则,依然能执行——但反过来,如果动作踩了红线,不管动机多纯都会被拦住。这是两种不同维度的安全,互相补足。

总结:点同意点了 93% 的时候,那 93% 就该被放行

Auto Mode 解决的不是"AI 不安全"的问题——它解决的是"人类在低摩擦场景下无法保持警惕"的现实。

用模型判断意图,用分类器守好底线。这不是最完美的方案,但是一个在实际工作流中真正可用的折中。


原文:www.anthropic.com/engineering…