claude code auto mode 分类器怎么工作

claude code auto mode 分类器怎么工作:两层防御、Sonnet 4.6 两阶段判定、Tier 权限分流与威胁模型,据 Anthropic 工程文梳理。

claude code auto mode 分类器怎么工作

Claude Code 用户约 93% 的权限提示都会点允许,审批疲劳让 --dangerously-skip-permissions 变得诱人。claude code auto mode 分类器怎么工作:用模型分类器代你批部分 tool call,在「零维护裸奔」和「每条都点」之间找第三条路。默认开关与 8 月 14 日 rollout 见 claude code auto mode 默认改什么;生产取舍见 claude code auto mode 生产怎么用。本文只拆分类器机制与威胁模型。

作者CodePass 技术编辑

审批疲劳逼出的中间层

Anthropic 工程文(2026-03-25)把三种权限模式画成一张权衡图:sandbox 安全但维护成本高;跳过权限零维护但零保护;手动批准居中,却仍有 93% 通过率。厂商内部事故日志里还有误删 remote 分支、上传 GitHub token、对生产库跑 migration 等案例,多属 agent 过于积极而非恶意注入。

auto mode 的目标很明确:拦下与用户意图不对齐的危险动作,其余不再弹窗。它不是 Plan Mode(先计划再动文件),也不等于可以替代人工审 infra;Plan Mode 边界见 claude code Plan Mode 什么时候用

两层防御各管什么

输入层:服务端 prompt-injection probe 在 tool 结果进入 agent 上下文前扫描(文件读取、网页、shell 输出、外部 MCP 响应)。疑似劫持时,在结果旁注入警告,要求 agent 锚定用户原任务。

输出层:transcript classifier(Sonnet 4.6)在动作执行前评估是否该拦,相当于模型版审批人。子 agent 委派与返回时各跑一次 handoff classifier:出站可 deny,回传仅 warn。

两层叠加后,注入要同时骗过输入探针,再让 transcript classifier 独立判定 tool call 既安全又对齐意图;第二层刻意看不到被污染 payload 的全文,难度高于单层。

两阶段判定与 reasoning-blind

Stage 1:单 token yes/no,指令偏向「宁可误拦」;多数动作在此放行,latency 低。Stage 2:仅 Stage 1 flagged 时才开 CoT 再审,把真实流量 FPR 从约 8.5% 压到约 0.4%,代价是 real overeager 集上 FNR 约 17%(均为厂商自报 benchmark,非第三方复现)。

classifier 输入只含 user 消息 + tool calls,剥掉 assistant prose 与 tool outputs,称为 reasoning-blind。动机:防止 agent 用「用户已隐含批准」等话术说服分类器;tool output 是注入主入口,但 classifier 判 POST 外传 env 往往不需要看文件原文。代价是溯源变弱:用户从未点名 job id 时,分类器难区分「查表得出」与「瞎猜」。

被拦后走 deny-and-continue:Claude 改走更安全路径;连续 3 次 deny 或单 session 累计 20 次 deny 则 escalate 到人。headless 模式(claude -p)无 UI 问人,达上限会直接终止进程。

子 agent 出站 handoff classifier 可 deny 委派本身(orchestrator 指令在子 agent 视角等同 user message,易显得「已授权」);回传 classifier 对子 agent 全历史动作再审,若 flag 则在结果前 prepend 安全 warning 而非丢弃,让 orchestrator 带警惕继续。

Tier 1 到 Tier 3 谁进分类器

Tier 范围 是否过 classifier
1 内置只读 allowlist + 用户窄规则 否;进 auto 会丢弃 blanket shell / 通配解释器 / package run 等宽规则
2 项目目录内 write/edit 否;靠 VCS review
3 shell、外网、子 agent、项目外 FS 等 是,两阶段 pipeline

进 auto mode 时,像 Bash(python:*) 这类实质任意执行的 allow 会被暂时搁置,否则分类器永远看不到最危险的命令。窄规则(如只允许 formatter)可保留。

威胁模型与拦截样例

工程文列四类动机:overeager(理解目标但越界)、honest mistakes(误判 blast radius)、prompt injection、misaligned model(评估但少见)。防御统一是拦动作,分类器主要针对前两类,因内部测试样例最多。

厂商改编的内部事故样例包括:「清理旧分支」却 pattern 删 remote;auth 失败后 grep env 找 token;「cancel my job」按名字相似度猜目标;为调试建 public Gist;deploy 失败后用 skip-verification 重试。这些都会到 Tier 3 classifier。

分类 prompt 分固定模板与三块可定制 slot:environment(信任域)、block rules(默认 20+ 条,分销毁/外泄、降安全、跨信任边界、绕过审查四类)、allow exceptions。CLI 可 claude auto-mode defaults 查看默认列表。

Evaluation rules 要求看动作的 real-world impact,不看表面命令:payload 写文件再执行则评 payload;&& 链视为一个动作;Python 里拼 shell 则评拼出来的命令。User intent rules 偏保守:「清理分支」不授权 batch 删 remote;「can we fix this?」算问句非指令。可定制 environment slot 可把 GitHub org、云 bucket 标为 trusted,缩小误拦外联。

17% 漏拦该怎么读

厂商诚实披露:real overeager 集上全 pipeline FNR 约 17%,常见 miss 是分类器看到危险动作,却误判 session 里已有足够 consent(如早前批过类似动作 ≠ 授权 force-push)。与 --dangerously-skip-permissions 比是巨大改进;与「每条都认真看」的人工比,有时反而是退步。

是否可接受取决于任务:可回滚的 repo 内编码更适合 auto;生产 Terraform、对外发消息、live API POST 仍应 manual 或 accept edits,与生产文客户案例一致。分类器 residual risk 存在,autonomous 任务要选环境和回滚策略,不能当免审证。

厂商 benchmark 另有一组 synthetic exfil(n=1000)全 pipeline FNR 约 5.7%,real traffic FPR 约 0.4%。数字会随 prompt 迭代变,读法应是「比裸 skip permissions 好一截」,而非「可关人工」。Team admin 仍可用 managed settings 组织级 disable auto,个人用 Shift+Tab 切 manual 做对照实验。

读 engineering 文时可对照 Figure 2/4 架构图:allowlisted 工具跳过 classifier 直执行;denial 作为 tool result 回 agent 并附「勿绕闸」指令。这与 生产怎么用 auto mode 里 Gusto 用 denial 占比当 telemetry 的做法同构:把 classifier 当信号源,而不是 silent filter。

若你正在写 permission rules,记住进 auto 会 temporarily drop blanket interpreter allows;窄 formatter 规则可留。customize block rules 时官方建议基于 claude auto-mode defaults 增量编辑,勿从零写 prompt,否则 false positive 可能飙升拖慢 session。

参考资料