排障 · 用量日志
日志里的 Sonnet 5 不是降级, 是安全审查请求。
有客户反馈:用 Claude Code 指定了 claude-opus-5-5,用量日志里却时不时夹着几条 claude-sonnet-5。 这些记录来自 Claude Code 的「自动模式」:运行命令前,它会另发一条请求做安全审查, 官方文档写明审查默认交给 Claude Sonnet 5。
理解需求、写代码、回复你的,仍然是你指定的 Opus 5.5。下面给出官方原文、实测记录、审查的费用,以及不想要这些请求时怎么调整。
结论:一个会话里有两类请求
用 Claude Code 时,同一个会话会向 VibeAPI 发两类请求。从 Claude Code v2.1.283 起,终端和 VS Code 里新开的会话默认就是自动模式, 所以不少用户是在升级之后,才第一次在日志里看到 Sonnet 5 记录。
claude-opus-5-5
你用 /model 选的模型,没有被替换
- 理解你的需求、读代码、写代码
- 决定下一步运行什么命令
- 汇总结果、回复你
claude-sonnet-5
官方称为「分类器」,自动模式下才有
- Claude 每次要运行 shell 命令或联网之前触发
- 判断这一步操作能不能放行
- 只回答放行还是拦截,输出只有几个 token
用量日志记录的是每条请求里写明的模型。
这些 claude-sonnet-5 请求由 Claude Code 自己发起、自己指定 Sonnet 5,并不是平台把 Opus 5.5 换成了 Sonnet 5。
对照日志:两类请求很好区分
下面是用户提供的用量日志:同一个令牌,claude-opus-5-5 与 claude-sonnet-5 交替出现。把两种记录的特征放在一起看,差别很明显。
| 特征 | claude-opus-5-5 | claude-sonnet-5 |
|---|---|---|
| 类型 | 流式 | 非流式 |
| 推理强度 | medium | none |
| 耗时 | 7.0~11.7 秒 | 2.8~3.4 秒 |
| 输出速度 | 117~153 token/s | 2 token/s |
| 在做什么 | 主请求:思考、写代码、回复你 | 审查请求:判断下一步操作能否放行 |
Sonnet 5 一栏的「2 token/s」并不是慢。审查只输出一个结论,我们实测每次只有 7 个 token(见第 05 节),7 个 token 除以 3 秒左右的耗时,就是 2 token/s。 非流式、不开推理、输出极短,这三点正是审查请求的特征。
官方文档原文
以下原文均摘自 Claude Code 官方中文文档《选择权限模式》,点每段下方的链接可以核对。
“在自动模式中,第二个模型(分类器)会审查操作而不是您。”
“一个独立的分类器模型会在操作运行前对其进行审查,阻止任何超出您请求范围、针对无法识别的基础设施,或看起来受 Claude 读取的恶意内容驱动的操作。”
选择权限模式 · 使用自动模式消除权限提示 ↗“默认情况下,分类器请求会发送到 Claude Sonnet 5。”
选择权限模式 · 默认分类器模型 ↗“Claude Code 的分类器请求可以在您通过 /model 选择的模型以外的模型上运行。”
“……分类器调用会计入您的 token 用量。每次检查都会发送部分会话记录以及待执行的操作,从而在执行前增加一次往返。”
选择权限模式 · 自动模式如何评估操作 · 成本和延迟 ↗“在 Claude Code v2.1.283 或更高版本中,对于所有计划和提供商,自动模式都是交互式终端和 VS Code 会话的内置初始权限模式。”
选择权限模式 · 使用自动模式消除权限提示 ↗四段连起来,就是日志里看到的现象
官方规则里还有一条
如果你在配置里设置了 ANTHROPIC_DEFAULT_SONNET_MODEL,审查改用它的值;值是 Claude Sonnet 5.5 或 Opus 5.5 时,仍用 Sonnet 5。
哪些操作会触发审查
并不是每一步都要审查,所以 Sonnet 5 记录是「有时」才出现。按官方文档的规则:
不审查
日志里只有 Opus 5.5
- 读文件、搜索代码
- 在工作目录里编辑文件
mkdir、touch、mv、cp这类常见文件命令- 命中你自己设置的 allow / deny 规则的操作
要审查
每次多一条 Sonnet 5
- 其他 shell 命令:运行脚本、安装依赖、执行测试等
- 联网请求
- 子代理启动前、运行中的操作、完成交回结果时
- 向其他 Agent 发送消息
所以只聊天、只读代码时,日志里全是 Opus 5.5;Claude 开始运行命令后,每条需要审查的命令前都会多一条 Sonnet 5。命令越多,Sonnet 5 记录越多。
实测记录
我们让 Claude 分 4 次运行 4 条命令(python3、node、curl),下表是这个会话发出的全部请求,耗时和 token 数取自平台的返回结果。
https://www.vibeapi.cn--model claude-opus-5-5 --permission-mode auto| # | 模型 | 类型 | 耗时 | 输出 token | 这一步在做什么 |
|---|---|---|---|---|---|
| 1 | claude-opus-5-5 | 流式 | 4.6 秒 | 23 | 会话开始时的一条短请求 |
| 2 | claude-opus-5-5 | 流式 | 8.9 秒 | 86 | 理解任务,决定运行第 1 条命令 |
| 3 | claude-sonnet-5 | 非流式 | 4.5 秒 | 7 | 审查第 1 条命令:放行 |
| 4 | claude-opus-5-5 | 流式 | 6.1 秒 | 86 | 读取结果,决定运行第 2 条 |
| 5 | claude-sonnet-5 | 非流式 | 3.0 秒 | 7 | 审查第 2 条:放行 |
| 6 | claude-opus-5-5 | 流式 | 5.8 秒 | 92 | 决定运行第 3 条 |
| 7 | claude-sonnet-5 | 非流式 | 3.1 秒 | 7 | 审查第 3 条:放行 |
| 8 | claude-opus-5-5 | 流式 | 6.0 秒 | 99 | 决定运行第 4 条 |
| 9 | claude-sonnet-5 | 非流式 | 2.9 秒 | 7 | 审查第 4 条:放行 |
| 10 | claude-opus-5-5 | 流式 | 4.0 秒 | 65 | 汇总结果,回复 |
Opus 5.5 和 Sonnet 5 一来一回交替出现,和用户截图里的规律一致;Sonnet 5 每次都是非流式、3 秒左右、输出 7 个 token。
这 7 个 token 的内容是 <block>no,意思是「不拦截」。
Claude Code 自带的调试日志也记录了每次审查用的模型(节选):
[server-classifier] auto mode fell back to billed classifier requests classifier_request_started tool=Bash model=claude-sonnet-5[1m] classifier_request_finished tool=Bash outcome=ok durationMs=2694 dispatching to firstParty model=claude-opus-5-5
第 2 行的 model=claude-sonnet-5[1m] 就是审查用的模型,[1m] 表示 1M 上下文版本,发给平台的模型名仍是 claude-sonnet-5。
最后一行是审查放行后,Claude Code 接着把对话发给 claude-opus-5-5。
你也可以自己验证
带调试日志启动
按官方文档的方法
在终端运行下方这条命令,进入自动模式,同时把调试日志写到 classifier-debug.log。
运行一条命令
要选需要审查的命令
让 Claude 执行一个脚本之类的命令,然后退出。
搜索日志
看 model= 后面是谁
在日志文件里搜 classifier_request_started,这一行 model= 后面就是审查用的模型。
claude --permission-mode auto --debug-file classifier-debug.log
另外,在 Claude Code 里输入 /status,Auto mode server 一行显示 Disabled,表示审查由 Claude Code 自己发请求,也就是日志里这些 Sonnet 5 记录。
审查请求怎么计费
审查请求按 claude-sonnet-5 的价格计费。Sonnet 5 的单价是 Opus 5.5 的 3/4,输入、输出、缓存各项都是这个比例。
- 单次审查的费用主要来自输入:Claude Code 每次都会发送一段审查规则,空项目、没有 CLAUDE.md 时实测约 4.7 万 token,再加上本次操作、部分对话记录和你的 CLAUDE.md。
- 输出只有几个 token,实测每次 7 个。
- 这段规则会写入 1 小时缓存,命中缓存和没命中的费用相差很大。
约 4.7 万 token 的规则按 1 小时缓存写入价计费
约 4.7 万 token 的规则按缓存读取价计费
以 Claude 官方特供版分组为例,按 2026-10-27 实测用量和价格页单价折算。其他分组按价格页上 claude-sonnet-5 的单价同比例换算; 价格页的「Cache write」是 5 分钟缓存的价格,1 小时缓存写入价是它的 1.6 倍。第 05 节的 4 次审查中,2 次写入缓存、2 次命中缓存。
Claude Code 显示的英文提示是什么意思
经 VibeAPI 使用自动模式时,Claude Code 可能显示这样一段提示:
We're changing auto mode to no longer charge for classifier requests in Claude Code. However, this session isn't eligible because your requests go through www.vibeapi.cn, which isn't compatible with this update. Nothing breaks: auto mode keeps working, and its classifier requests are billed as before.
Anthropic 正在把审查挪到服务器端:直连官方 API 的会话,审查随主请求一起完成,不再单独收费。经 VibeAPI 接入时,目前仍由 Claude Code 自己发审查请求并按 token 计费,也就是日志里的这些 Sonnet 5 记录。 提示里写了「Nothing breaks」,自动模式照常工作,只是每次都要按 Enter 继续。
用 vibecli 配置 Claude Code 的用户无需处理。vibecli 0.0.48(2026-10-05)起,写入 Claude Code 配置时会自动加入下面这一项。自动模式改用 Claude Code 自己的审查,不再逐步弹出这条提示;审查方式和计费不变。
{
"env": {
"CLAUDE_CODE_AUTO_MODE_SERVER": "0"
}
}
- 更早配置过、仍会弹出提示的:重新运行
vibecli setup,会自动补上。已经自己设置过这一项的,保留原值。 - 没有用 vibecli 的:把上面这段加入
~/.claude/settings.json,写法见官方说明。
不想要这些请求,可以这样调整
下面三种做法任选一种。改 ~/.claude/settings.json 之后,新开的会话生效。
换一个权限模式,不再审查
Manual 和 acceptEdits 两种模式都不调用分类器,日志里不会再有审查请求
怎么切换
- 终端:按
Shift+Tab,切到manual mode on或accept edits on。 - VS Code 扩展:点输入框底部的模式指示器,选 Manual 或 Edit automatically,之后的新对话会沿用这次的选择。
- Manual 模式在编辑文件、运行命令前都会问你;acceptEdits 自动放行文件编辑和常见文件命令,其他命令问你。
- plan 模式不能用来避开审查:自动模式可用时,plan 模式同样会让分类器审查命令。
终端新会话默认用 acceptEdits
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
彻底关闭自动模式
Auto 从切换列表里消失,新会话以 Manual 模式启动
效果
写入后,Auto 会从 Shift+Tab 的切换列表里消失,新会话以 Manual 模式启动,不会再产生审查请求。
~/.claude/settings.json
{
"permissions": {
"disableAutoMode": "disable"
}
}
换一个审查模型
保留自动模式,只把审查交给更便宜的模型(Claude Code v2.1.302 及以上)
使用前请注意
审查请求会改发给所填的模型,按它的价格计费。我们实测填 claude-haiku-5-5 后,审查改由 Haiku 5.5 完成,命令正常放行。
- 填 Opus 5.5、Sonnet 5.5 或 Opus 5 不生效,官方规定这时仍用默认的 Sonnet 5,所以无法让 Opus 5.5 自己审查。
- 所填模型必须在令牌所在分组里可用(claude-haiku-5-5 不在 default 分组里)。模型不可用时审查会失败,Claude Code 会拒绝所有需要审查的操作。
- Sonnet 5 是官方默认的审查模型;换成更小的模型后,拦截是否同样准确,请你自行判断。
~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_AUTO_MODE_MODEL": "claude-haiku-5-5"
}
}
Opus 5.5 负责完成任务,
Sonnet 5 负责在执行命令前把关。
两者同时出现在日志里,是 Claude Code 自动模式的正常行为,不是降级,也不是平台替换了模型。
📚 官方出处一览
- Claude Code 官方 - 选择权限模式 · 使用自动模式消除权限提示:code.claude.com/docs/zh-CN/permission-modes#eliminate-prompts-with-auto-mode
- Claude Code 官方 - 选择权限模式 · 默认分类器模型:code.claude.com/docs/zh-CN/permission-modes#default-classifier-model
- Claude Code 官方 - 自动模式分类器请求费用:code.claude.com/docs/zh-CN/auto-mode-classifier-billing