为了在界面上显示 3 到 5 个词的后台运行状态,Anthropic 旗下的命令行编程工具 Claude Code 正在无声吃掉开发者近五分之一的算力预算。可观测性团队 Flamerix AI 通过分析 OpenTelemetry 导出数据发现,自 2026 年 8 月发布的 2.1.232 版本起,Claude Code 默认开启了一项名为 agent_summary 的后台摘要功能,其单项花费占到了全部估算开销的 16.4%,甚至反超了主对话本身的 15.7%。这项无法在设置中关闭的微交互,暴露出多 Agent 工具在平滑前端体验时,正把高昂的隐性成本直接转嫁给用户的 API 账单与订阅配额。
3 个词吃掉 16.4% 预算,状态栏花费反超主对话
问题出在多 Agent 并发时的状态刷新机制上。当开发者在后台运行子 Agent(Subagents)时,Claude Code 每隔约 30 秒就会将该 Agent 的完整对话上下文复制一份,发送给该 Agent 当前使用的模型,要求它用 3 到 5 个词描述最近一次动作。生成的这几个词既不会进入主对话,也不会被模型后续读取,唯一的作用就是更新控制面板里的状态栏文字。
这种「全量输入、极小输出」的轮询模式,制造了极度畸形的算力消耗结构。Flamerix AI 对 2.1.257 至 2.1.312 版本的实测数据显示,agent_summary 占到了全部 API 请求数的 19.7%,输入与输出 Token 的比例高达 9,000:1;由于后台任务往往直接继承主模型,这部分花费中有 96% 发生在使用成本最高的 Opus 模型上。
这并非单一团队的孤立观测。在 2026 年 8 月 15 日创建的 GitHub Issue #86879 中,多名开发者提交了幅度在 18% 至 26% 之间的同款损耗报告:一位使用 v2.1.233 版本的开发者在 4 小时内运行了 27 个子 Agent、发起 1,496 次请求,其中状态栏摘要调用达 339 次,吞掉了 6,276 万原始 Token,占成本加权 Token 的 18%;另一位 v2.1.276 用户在 1 小时 45 分钟的会话里触发了 103 次摘要调用,读取了 2,180 万缓存 Token,占整个会话缓存读取量的 26%。
即便大约 98% 的摘要请求命中了 Prompt 缓存(Cache Read),高频轮询叠加庞大的上下文基数,依然让这笔开销难以忽视。对于按量付费的 API 用户,这直接体现为账单膨胀;对于购买 Pro、Max 或 Team 订阅的开发者,这笔消耗则会悄悄挤占每几小时重置一次的速率限制(Rate Limit)配额。
官方文档承诺用 Haiku,底层代码却在静默刷 Opus
比算力浪费更让开发者困扰的,是 Anthropic 官方文档与实际运行机制之间的严重背离,以及这笔开销在常规统计工具中的「完全隐身」。
查阅 Claude Code 官方文档(code.claude.com)关于后台视图(agent-view)的说明,官方给出的承诺相当克制:行摘要默认由廉价的 Haiku 级别模型在每轮结束时生成,长轮次中每隔几分钟才重写一次,期间仅用近期输出更新文本而不发起模型请求;只有当第三方网关未配置 Haiku 模型时,系统才会回退使用主会话模型。
账单上跑的是昂贵的 Opus,文档里写的却是廉价的 Haiku。
实际代码走出了另一套逻辑。自 v2.1.232 默认开启后台子 Agent 继承完整对话与缓存后,系统在触发状态栏定时器时,直接分叉了子 Agent 的主模型,并以服务端下发的最小间隔(30 秒)高频运行。更隐蔽的是,Issue #86879 的报告者扒出这些请求携带了 skipTranscript: true 参数,不会写入磁盘上的本地会话日志;同时官方监控文档只列出了 main、subagent 和 auxiliary 三类查询来源,根本没有披露 agent_summary 这一标签。
这意味着,除非团队像 Flamerix AI 一样专门搭建了 OpenTelemetry 遥测管道,否则市面上所有依赖读取本地对话记录(transcript)的第三方算力统计工具,都完全看不到这笔占了近两成的开销。这种账单黑盒并非孤例——2026 年 9 月 29 日开启的另一个关联 Issue #98193 在统计了约 29,000 次请求后指出,Claude Code 的汇总成本指标是按单次 api_request 事件累加成本的 1.64 倍,说明在主对话之外,还有更多未充分披露的辅助请求在后台悄悄跑表。
80 行补丁能止血,但运行时注入并非无代价
面对截至 2026 年 10 月 29 日仍无官方维护者回应的 Issue #86879,Flamerix AI 给出的自救方案是一份约 80 行代码的 MIT 开源脚本 no-agent-summary.js。
之所以不能直接修改配置文件,是因为 Claude Code 的关闭通道被层层堵死。在提取出的代码中,SDK 的 agentProgressSummaries 选项虽然默认值为 false,但在打包逻辑里处于「或(OR)」运算的一端,其他写入路径均将其设为 true,导致该开关只能开启不能关闭;社区常传的 DISABLE_NON_ESSENTIAL_MODEL_CALLS 环境变量在二进制文件里根本不存在;而 2.1.310 版本虽然内置了一个仅发送约 2,000 Token 笔记、可用小模型处理的 short 廉价模式,却被服务端标志位默认关闭。
此外,Claude Code 采用预编译的 Bun 单文件字节码分发,直接修改内部 JS 文本无效,且其 API 客户端绕过了全局的 globalThis.fetch。Flamerix AI 的脚本利用了 Bun 运行时的一个特性:即便代码从字节码运行,Function.prototype.toString 依然能返回回调函数的源码文本。通过设置全局环境变量 BUN_OPTIONS=--preload 在进程启动时注入脚本,拦截器会检查所有 setTimeout 和 setInterval 回调,一旦匹配到 [AgentSummary] Timer fired 等源码锚点,就返回一个延迟长达 2³¹−1 毫秒(约 24.8 天,Node 与 Bun 允许的最大非溢出延迟)的惰性句柄,从而在不改动二进制文件、不影响子 Agent 正常并发的前提下,将 agent_summary 的开销精准归零。
- 风险.在生产环境或企业开发机上全局配置
BUN_OPTIONS=--preload并直接从外部链接拉取脚本,相当于允许外部代码在已认证的编程 Agent 进程启动时无条件执行,存在供应链安全隐患;且该方案尚未在 macOS 与 Windows(其/$bunfs/路径门控大概率失效)上充分验证,一旦后续版本重命名日志字符串或改用fn.bind(...)传递回调,拦截就会静默失效。
对于不想冒代码注入风险的团队,目前有两个更稳妥的排查与止损方向。一是检查网关与环境变量中的 ANTHROPIC_DEFAULT_HAIKU_MODEL 配置,排查是否存在因 Haiku 路由缺失而触发的 Opus 昂贵回退;二是紧盯 10 月 22 日开发者在二进制文件中新扒出的未公开变量 CLAUDE_CODE_AGENT_PROGRESS_SUMMARIES(目前仅确认可强制开启),看 Anthropic 接下来是会借此正式放开本地关闭权限,还是直接在服务端开启 2.1.310 已备好的 short 轻量模式,把原本属于开发者的那五分之一算力还回来。
