Claude Code 的隐性账单:后台 agent 每 30 秒回传一次全文
有开发者用 OpenTelemetry 拆了 Claude Code 的请求来源,发现给后台 agent 生成状态摘要的调用占了近六分之一花费。这篇讲机制、怎么自查、以及第三方脚本的风险。
跑着三个后台 agent 干活,手上做别的事,回来一看额度条掉了一大截。你以为是那三个任务太费 token,其实有一部分花在了「让你看见它们在干什么」这件事上。
10 月 29 日,一个叫 Flamerix AI 的团队在 GitHub 上挂出一份分析,把这件事拆到了请求级别。结论有点反直觉:Claude Code 里最贵的单项调用,可能不是你的主对话。
一、发生了什么
现象是这样的:Claude Code 大约每 30 秒,会把每个后台 agent 的完整对话记录,发给这个 agent 自己用的模型(通常是 Opus),目的只有一个——让模型用三到五个词描述「它刚才干了什么」,好更新 agents 面板上那行状态文字。这段内容从不进入你的主对话,你也从来不会读到它。
作者用 OpenTelemetry 把 Claude Code 的 API 请求事件按来源分了组,统计结果如下(据该文作者自行统计,2026 年 10 月):
- 这类摘要调用占 Claude Code 总花费的 16.4%,而主对话是 15.7%。
- 它占了全部 API 请求的 19.7%,差不多每五次请求就有一次是它。
- 其中 96% 的钱花在 Opus 上;输入与输出 token 的比例约为 9000 比 1——喂进去一整段记录,只换回几个词。
这个数字不是孤例。作者引用了 GitHub 上一个 issue(编号 86879)里四次独立测量,结果落在 18% 到 26% 之间。
还有一个容易被忽略的细节:这个「花费」是 Claude Code 自己按请求估算的金额,不等于你信用卡上的发票。对订阅用户来说,损失的不是钱,是限流额度——同样的额度,能干的活变少了。
机制上,从 2.1.232 版(2026 年 8 月 13 日)开始,交互式后台 agent 默认就开着这个行为。间隔由服务端的按模型族标志控制,被钳制在 30 到 240 秒之间,默认值已经是最小档,客户端没有提供关闭选项。
二、跟你有什么关系
纯聊天、不开后台任务的人:基本无关。这套东西只在用后台 agent、fork 出来的子任务、命令行批量模式时才触发。你平时一问一答,碰不到它。
订阅 Pro 或 Max、习惯挂着后台 agent 的人:直接相关。损失体现为限流来得更早。原本一天能跑完的批量重构,可能下午就被卡住,而你以为是自己任务太重。
按 API 付费、给团队报销的人:更直接。这类请求不写进本地会话日志,只看本地日志根本发现不了,账单上也不单列,只有接了 OpenTelemetry 才看得见。作者提到,正因为如此,它在 issue 里被单独提了一次(编号 104358)。
管团队成本的人:这是个典型样本——成本不在你主动发起的那次调用里,而在「为让你看得见进度而额外发起的调用」里。同类设计在别的 AI 编程工具里也可能存在,只是没人拆过。
三、怎么查、怎么判断要不要动
读到这儿,可以顺路看 之前没人攻成的 PHP 漏洞,这次连美国政府关联防火墙都沦陷了 安全公司 Dream 披露首例 PHP2Shell 实际入侵:攻击者组合两个漏洞,15 分钟内拿到防火墙最高权限,25 台服务器沦陷,其中含美国政府关联机构。暴露在公网的管理接口是最大软肋。先别急着装脚本,按这个顺序走三步。
- 打开遥测。给 Claude Code 配上 OpenTelemetry 导出,按请求来源分组统计,看有没有一个独立来源的调用量接近总请求的五分之一。没有遥测,后面都是猜。
- 对照版本。低于 2.1.232 的版本默认不开这个行为;2.1.310 起官方加了更省的 short 模式(摘要压到约 2000 token,可以换更小的模型),但默认仍是完整记录,且切换开关在服务端。先看自己是不是已经在新版上。
- 再决定要不要关。官方现成的开关只有「连坐」式的:关掉 fork 子任务或关掉后台任务,摘要调用随之消失,代价是功能一起没了。有人试过 SDK 里那个默认 false 的开关,发现设了没用——默认值在打包产物里被写死成 true。另有一个环境变量名字很像能救命(DISABLE_NON_ESSENTIAL_MODEL_CALLS),实际上在这个版本的程序里根本不存在。
如果你确认要单独关掉它,社区做法是给 Claude Code 预加载一个约 70 行的小脚本,拦掉那个 30 秒定时器,不动主程序文件。装完必须重启守护进程(claude daemon stop --any),否则不生效;用 npm 的 --ignore-scripts 方式安装时也不生效,因为运行时没起来。
这里必须说清代价。这类脚本靠匹配程序内部的字符串来定位定时器,官方一次改名就可能让它静默失效,你还以为省了钱。作者自己在多个版本上验证过,也明确写了这是「失败即放开」的模式——失效不会报错。另外,作者声明与 Anthropic 无关联,并提醒修改客户端运行时行为可能与服务条款冲突,用不用得自己判断。目前 Windows 上没有测试记录。
四、三个别信的说法
「这是 bug,等官方修。」 不是 bug,是产品设计:为了让你在面板上看到一句话的状态,它选择每半分钟重发一次完整记录。设计意图没问题,问题是没有给你单独关掉的开关,也没有把这项开销摆到明面上。
「把 SDK 里那个开关设成 false 就行。」 作者查过打包产物:那个选项虽然默认 false,但所有写入路径都把它覆盖成 true,传 false 等于没传。同名环境变量也只能开不能关。
「装个第三方补丁,零风险省钱。」 省是真的,零风险不是。补丁依赖程序内部实现,升级后可能失效且无提示;它只压掉了状态栏更新这一项,副作用是你再也看不到后台 agent 的实时进度,只能等它结束。对靠这行字判断「它是不是卡住了」的人,这不是纯赚。
五、一句话结论
这件事的价值不在于「又能省 16%」,而在于提醒你:AI 编程工具的成本有一块是隐性的,花在界面反馈上,不花在你的任务上——先接上遥测看一眼自己的账,再决定要不要动它。
延伸阅读:Claude Code 2.1.304 改了什么、一次抓取到底烧多少 token、什么情况下该换成本地模型。
信息来源
- Flamerix AI《Claude Code sends each background agent's transcript to its model every ~30s》,GitHub Gist,2026-10-29 起持续更新:https://gist.github.com/flamerix-ai/c3905705cc4205e5de3011fa2e74efce
本文基于公开信息整理,文中比例与版本数据均为原作者自行测量口径,未经本站独立复测;Claude Code 的行为、计费与使用条款以官方公告为准。
每周一封,只发新教程和可复制模板。不发广告,随时退订。