跳到正文
sobolewski.pro今日 AI,每晚送达订阅

每天一封,一键即可退订。 隐私政策

Claude Code token 消耗:每五次请求就有一次用于智能体状态

Claude Code token 消耗偏高,原因之一是隐藏的智能体摘要:用户实测占会话成本的 16–22%。来看看它从何而来。

1 分钟阅读

本文的其他语言版本:العربيةDeutschEnglishEspañolFrançaisItaliano日本語Polski

本文内容
  1. Claude Code token 消耗从何而来?
  2. 要花多少钱?
  3. 这是新问题吗?
  4. 如何在自己的环境里检查?
  5. 能关掉吗?
  6. FAQ

Flamerix AI 发布了一份附有测量数据的 gist:Claude Code 把会话成本的 16.4% 花在了智能体面板里一条 3–5 个词的简短状态上。10 月 29 日,这篇帖子登上了 Hacker News 首页,一小时内获得了 130 多分。所有关心 Claude Code token 消耗的人都该留意,尤其是在后台同时运行多个智能体的用户。

Claude Code token 消耗从何而来?

问题出在一个名为 agent_summary 的机制上。据 gist 作者介绍,它的工作方式如下:

  1. 大约每 30 秒,Claude Code 会针对每个后台智能体分别把该智能体的完整对话记录发送给模型。
  2. 请模型“用 3–5 个词”描述最近的操作(原文为 “describe your most recent action in 3-5 words”)。
  3. 结果只会显示在智能体面板中,也就是一行简短的状态。

该机制从 2.1.232 版本(2026 年 8 月)起默认开启,且没有官方设置可以关闭。

要花多少钱?

gist 中的数据来自关闭摘要前一周的 OpenTelemetry 导出:

  • 估算成本的 16.4% 花在了 agent_summary 上,超过了主对话(15.7%),
  • 占全部 API 请求的 19.7%,大约每五次就有一次,
  • 其中 96% 的成本来自 Opus,
  • 输入 token 与输出 token 之比约为 9000 比 1。

有意思的是,这些调用中约 98% 命中了提示缓存,所以很便宜。问题在于剩下约 2%:没有缓存的这部分占了摘要成本的三分之一以上。

这些成本是 Claude Code 自己的估算(cost_usd 字段),并非账单,所以要谨慎看待。

这是新问题吗?

这个问题从 8 月就已为人所知。8 月 15 日,用户 @rflcrz 在 Claude Code 仓库提交了 issue #86879。在一次使用 27 个子智能体、持续 4 小时的会话中(1496 次请求),agent_summary 调用占了22.7% 的请求和 18% 的加权 token,每次平均返回约 65 个 token。

评论区里,其他用户也给出了类似结果:在超过 20 个子智能体的会话中占 15–22%,在 2.1.276 版本中占缓存读取 token 的 26%。其中一位用户发现,环境变量 CLAUDE_CODE_ENABLE_NARRATION=0 在 2.1.241 版本中可以关闭摘要,但到 2.1.245 就失效了。

该 issue 带有 area:cost 标签,目前仍未关闭。截至 10 月 29 日,Anthropic 方面没有任何人回复。

如何在自己的环境里检查?

Claude Code 内置了通过 OpenTelemetry 导出遥测数据的功能。用环境变量 CLAUDE_CODE_ENABLE_TELEMETRY=1 开启,并配置日志导出器。之后每次 API 请求都会记录为一个 claude_code.api_request 事件,其中的 query_source 属性说明是哪个子系统发出的。只需按 query_source 对事件分组并汇总 cost_usd——gist 作者正是这样发现问题的。

能关掉吗?

官方不能。gist 作者分享了一个变通方法:通过 Bun 预加载的脚本 no-agent-summary.js(BUN_OPTIONS="--preload …"),在不修改二进制文件的情况下,把摘要计时器换成一个不工作的计时器。在他那里,agent_summary 的成本占比从 16.4% 降到了零。

使用之前,最好先了解它的局限:

  1. 该脚本只在 Linux 上测试过,没有在 macOS 和 Windows 上测试。
  2. 它依靠匹配源代码来工作,因此 Claude Code 的任何一次更新都可能让它悄无声息地失效 (每次更新后都要检查是否仍然有效)。
  3. 智能体面板将不再显示状态。
  4. 这是一个采用 MIT 许可证的社区项目,与 Anthropic 无关。

如果不想往 Claude Code 里注入任何东西,更简单的办法就是减少同时运行的后台智能体数量,因为摘要的成本随智能体数量增长。关于如何使用 Claude Code,我在 Claude Code 教程中写得更详细;关于在 Opus 上预算能烧得多快,可以看 fast mode 那篇文章。

FAQ

为什么 Claude Code 这么耗 token?

主要是因为每次请求都会把对话上下文发送给模型。用户的测量显示,在后台智能体较多时,隐藏的 agent_summary 摘要也会吃掉相当大的一部分(成本的 16–22%),因为它大约每 30 秒就发送一次智能体的完整对话记录。

能在设置里关闭 agent_summary 吗?

截至 10 月 29 日,还没有官方开关。issue #86879 请求提供专门的标志、让 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 变量覆盖摘要,或者让间隔可配置。

如果我不用后台智能体,会受影响吗?

摘要是为后台智能体生成的,所以问题随其数量增长。最简单的检查方法是在遥测数据中按 query_source 对请求分组。

  • AI
  • Claude
  • Claude Code
  • AI 智能体

今日 AI,每晚送达

每晚送上当天最重要的 AI 新闻和博客新文章。简明扼要,附有来源。

每天一封,一键即可退订。 隐私政策