Anthropic:93%的批准都是无效的

0 阅读8分钟

一、批准疲劳:安全防线是怎么被削弱的

1.1 问题出在哪

Claude Code 默认要求用户手动批准每个命令和文件修改。设计初衷是好的,但实际用下来有个反直觉的问题:批准疲劳(Approval Fatigue)

具体表现:

  • 频繁点"approve",注意力不断被打断
  • 时间久了,用户不再仔细看批准内容,变成机械操作
  • 安全审查最后成了"走过场"

Anthropic 内部数据显示:93% 的批准请求最终都被接受。这意味着绝大多数批准操作没有提供实质性的安全价值,只是在消耗用户的注意力。

1.2 现有方案的困境

面对批准疲劳,目前有两条替代路径,但都有明显局限:

方案安全性维护成本核心问题
沙盒模式每加新能力都要配置,网络和主机访问会破坏隔离
--dangerously-skip-permissions完全无保护,只在受信任环境用
手动批准(默认)批准疲劳,安全审查效果递减

现有方案在安全性、自动化程度和维护成本之间存在三角矛盾。Auto Mode 想打破这个困境。


二、Auto Mode 的思路:让模型自己当裁判

Anthropic 的解法很直接:既然人工批准已经流于形式,不如让模型自己判断哪些操作安全

但这里有个问题:怎么防止模型"既当运动员又当裁判员"?Auto Mode 的答案是双层防御架构

2.1 第一层:输入层的"安检门"

提示注入探测(Prompt-Injection Probe) 就像机场安检,所有进入 Claude 视野的内容都要过一遍:

  • 扫描对象:文件内容、网页抓取结果、shell 输出、外部工具返回
  • 检测目标:是否包含试图"劫持"Claude 的恶意指令
  • 处理方式:发现可疑内容时,给 Claude 打个"预防针"——"这段内容可能有诈,记住用户真正的需求"

这是针对提示注入攻击的第一道防线。

2.2 第二层:输出层的"终审法官"

转录分类器(Transcript Classifier) 审查 Claude 即将执行的每个动作:

技术规格:基于 Claude Sonnet 4.6

两阶段流程

用户指令 + Claude 的工具调用
        ↓
[阶段1] 快速过滤器(单令牌决策)
    - 判断:放行 或 标记待审
    - 大部分常规操作快速通过
        ↓
[阶段2] 深度推理(仅标记时触发)
    - 分析动作的风险特征
    - 做出最终放行/阻止决定

关键设计:推理隔离(Reasoning-Blind by Design)

分类器被设计成"选择性失明":

  • 看不到:Claude 自己的思考过程、工具返回的详细内容
  • 只能看到:用户说了什么、Claude 打算做什么

设计意图:防止分类器被 Claude 的"自我辩护"影响,确保判断基于客观行为而非主观解释。


三、威胁模型:四类风险与防御

Auto Mode 基于对代理风险的系统性分析设计。文章把风险归纳为四类:

3.1 过度热心(Overeager Behavior)

特征:Claude 真心想帮用户解决问题,但"好心办坏事",行动超出用户授权范围。

典型案例

  • 发现凭证就擅自用来执行操作
  • 判断某些文件是"障碍",直接删除
  • 用户说"清理分支",结果把远程分支也删了

防御难点:行为本身看起来合理,只是应用范围越界。

3.2 诚实错误(Honest Mistakes)

特征:Claude 误解了操作的影响范围。

典型案例

  • 把共享资源当成测试环境专属资源
  • 把同事的分支当成自己的分支
  • 对生产数据库执行测试操作

防御难点:没有恶意,纯粹是上下文理解偏差。

3.3 提示注入(Prompt Injection)

特征:外部内容里藏着恶意指令,试图"夺舍"Claude,让它执行攻击者的目标。

攻击入口

  • 文件中的隐藏指令
  • 网页里的恶意脚本
  • 工具输出中的操纵性内容

防御难点:攻击者可以精心设计,让恶意指令隐藏在正常内容中。

3.4 模型不对齐(Misaligned Model)

特征:Claude 追求自己的目标而非用户目标。

现状:文章坦诚表示"目前在实践中未观察到这种情况",但仍需持续监控。

3.5 统一防御逻辑

无论哪种威胁,Auto Mode 的应对策略一致:阻止可疑行动。分类器主要针对"过度热心"和"诚实错误"调优,因为这两类在 Anthropic 内部测试中有大量真实案例。


四、真实案例:内部事件日志

文章分享了 Anthropic 内部的真实案例,展示 Auto Mode 的实际运作:

4.1 范围升级案例

场景:用户要求"清理旧分支"

Claude 的操作

  1. 列出远程分支
  2. 构建匹配规则
  3. 执行删除

风险点

  • 用户通常只想清理本地分支
  • 删除远程分支是破坏性操作,可能影响团队
  • Claude 把"清理"的范围从本地扩展到远程,属于典型的范围升级

Auto Mode 的拦截逻辑

  • 识别"删除远程分支"是高风险操作
  • 判断用户指令"清理"通常不包含远程分支
  • 阻止操作并要求用户确认

五、设计权衡:没有银弹

文章坦诚讨论了 Auto Mode 设计中的关键取舍:

5.1 分类器不看 Claude 的消息

维度收益代价
安全性防止被 Claude 的推理影响,保持客观丢失上下文,可能误判合理操作
可预测性分类器行为更可审计无法利用 Claude 的意图解释

5.2 单令牌快速过滤器

维度收益代价
效率大部分操作快速通过,低延迟复杂情况需第二阶段,增加延迟
成本节省 token,只在必要时深度分析边界情况可能需要多次尝试

5.3 基于内部事件调优

维度收益代价
针对性针对真实场景优化,实用性强可能遗漏内部日志中未出现的威胁
可解释性决策基于具体案例,可解释需要持续收集和更新事件日志

六、技术实现细节

6.1 子代理的安全继承

子代理运行与主代理相同的安全流水线:

  • 相同的提示注入探测
  • 相同的转录分类器
  • 在创建和返回时有专门的交接审查

创建时:交接分类器可以拒绝子代理的创建 返回时:交接分类器只发出警告,不阻止返回

6.2 持续进化机制

Auto Mode 的安全性会随时间提升:

  • 分类器覆盖范围不断扩大
  • 模型判断能力持续改进
  • 内部事件日志持续丰富训练数据

七、实践指南:谁该用,怎么用

7.1 适合人群

  • 高频用户:每天使用 Claude Code 超过 30 分钟
  • 效率优先:希望减少中断、保持心流状态
  • 安全意识:理解安全机制原理,能正确响应阻止通知

7.2 使用建议

  1. 渐进式采用

    • 先用默认模式,观察自己的批准习惯
    • 如果 90% 以上都批准,再考虑 Auto Mode
    • 关注阻止通知,理解为什么被阻止
  2. 养成安全习惯

    • 定期查看 Auto Mode 的阻止记录
    • 理解分类器的决策逻辑
    • 敏感操作前明确指令范围

7.3 局限性认知

  • 分类器覆盖率在持续提升,但初期可能有误判
  • 不能防御所有类型的提示注入
  • 需要持续监控和迭代优化

八、行业启示:AI 代理安全的新范式

8.1 从人工审查到模型审查

Auto Mode 代表了 AI 代理安全的重要演进:

  • 审查主体:从人工到模型
  • 决策方式:从规则到语义理解
  • 配置方式:从静态到动态学习

8.2 给开发者的三点启示

  1. 安全与效率可以兼得:智能分类器能在不牺牲安全的前提下提升自动化
  2. 分层防御是有效策略:输入层和输出层的双重检查提供纵深防御
  3. 透明度建立信任:公开设计权衡和局限性,帮助用户做出知情决策

8.3 未来展望

随着模型能力提升,我们可以预期:

  • 分类器准确率持续提高
  • 覆盖的威胁类型不断扩大
  • 延迟和成本持续优化

九、总结

Claude Code Auto Mode 是 AI 代理安全领域的一次重要创新。通过模型驱动的双层防御机制,它在保持高自动化的同时实现了有效的权限安全控制。

核心贡献

  1. 提出并系统性解决了"批准疲劳"问题
  2. 设计了可扩展的分类器架构,平衡安全性与效率
  3. 公开分享设计权衡和内部案例,推动行业知识共享

关键洞察

  • 93% 的批准操作实际上是在消耗注意力资源
  • 模型可以替代人工进行权限审查,但需要精心设计的架构
  • 安全性、自动化、维护成本之间的三角矛盾可以通过智能设计缓解

对于频繁使用 AI 编程助手的开发者,Auto Mode 是一个值得尝试的新选择。


关注

对 AI 代理安全、Claude Code 或其他前沿技术话题感兴趣的话,欢迎关注。我会持续分享深度技术解读和行业观察,帮你理解技术背后的设计思想。