AI Agent 的钱花在哪:99% 是输入 token,而不是它写出来的代码

原作者:Paula Hingel 原文链接:https://www.augmentcode.com/guides/ai-coding-cost-analysis-agent-token-spend


结论先行

AI 编码 Agent 的成本结构和一个直觉相反:钱不是花在模型写出来的代码上,而是花在它每一轮重新读回去的上下文上。Anthropic 自己的成本示例里,一个 Sonnet 会话的 996,500 个 token 中,输出只有 5,300 个(0.5%),缓存读取占 94.5%。OpenRouter 的数据更极端:Claude 4 Sonnet 在 2025 年 9 月的日用量达到 1000 亿 token,其中 99% 是输入 token。

由此得出三条可操作的结论:一是循环设计(上下文增长、重试、扇出)比模型选择更能左右成本;二是同一任务不同运行的 token 消耗可以差 30 倍,而准确性往往在中等成本处达到峰值,说明超支多半来自低效探索而非更深推理;三是「便宜执行者 + 昂贵审查者」的分层路由能把基准成本压到 1/14。

原文出处

作者:Paula Hingel 原文:AI Coding Cost Analysis: Where Token Spend Really Goes in an Agent Loop(Augment Code Guides) 发布:2026-07-24 链接:https://www.augmentcode.com/guides/ai-coding-cost-analysis-agent-token-spend

文章引用了 Anthropic 的 Claude Code 成本文档、arXiv 上关于 Agent 花费的研究、OpenRouter 的用量数据,以及 Bun 迁移项目的公开复盘。

要点解读

1. 一次真实会话的成本构成

Anthropic 文档里 claude-sonnet-4-6 的一个会话是这样分布的:

Token 类别数量占总量比例
缓存读取(cache reads)940,000~94.5%
缓存写入(cache writes)50,000~5.0%
输出(output)5,300~0.5%
未缓存输入(uncached input)1,200~0.1%
合计996,500100%

这个会话的总成本是 $0.55。也就是说,你为「模型写代码」付的那部分,几乎可以忽略。

另有研究指出,Agent 编码消耗的 token 比单轮推理多 1,000 倍以上,输入与输出的比例超过 150:1。

本站判断:这条对 Web3D 项目尤其致命。三维项目的文件普遍更大——一个 Three.js 场景文件动辄上千行,着色器、模型加载、后处理都堆在一起。如果 Agent 每次都要把这些文件完整读回上下文,成本不是线性增长,而是随轮次滚雪球。

2. 循环里的四类消耗

类别说明
上下文重读工具结果一旦进入轨迹,后续每一轮都会保留。打开一个大文件或跑一条冗长命令,代价会在之后每一步重复支付
系统提示与指令重注入系统提示、CLAUDE.md、仓库级指引每一轮都要重新注入
文件读取与工具定义缺乏相关性索引的 Agent 会读更广的项目上下文;Anthropic 的 computer use 工具定义每个请求就要消耗 735 个输入 token
压缩与扇出乘数压缩、摘要、并行子 Agent 会成倍放大开销,因为每个分支都要携带足够的先前状态

3. 循环设计比模型选择更重要

同一任务不同运行之间的 token 消耗可以产生 30 倍波动。文章给出的量化节省如下:

技术记录在案的节省
提示词缓存(prompt caching)长提示词的成本最多降低 90%
上下文编辑(清除过期工具结果)100 轮评估中, token 减少 84%
主动上下文压缩SWE-bench 任务节省 57%(4.0M → 1.7M token)
隔离子 Agent + 记忆工具相比基线性能提升 39%
编码化提示(codified prompting)输入 token 减少 55–87%

两个必须注意的反面:缓存的正确性和缓存存在与否同样重要(未命中会让同一长提示重新变贵);压缩可能适得其反,当摘要隐藏了后续轮次需要的状态时,Agent 会重新去查一遍。文章建议摘要在清晰的阶段边界使用,而不是持续压缩。 还有一条容易被忽略的前提:没有硬性停止标准,上面所有优化都保不住——Agent 会靠不断重试和重新生成代码一直跑下去。

4. 便宜执行者 + 昂贵审查者

分层路由是文章里回报最直接的一节:

模式配置结果
Aider architectDeepSeek R1 规划 + claude-3-5-sonnet 编辑64.0% 通过率,成本 $13.29;对比 o1 单机 61.7%、$186.50,便宜 14 倍
Anthropic AdvisorOpus 建议 + Haiku 执行SWE-bench 41.2%,是 Haiku 单机 19.7% 的两倍多
Anthropic AdvisorOpus 建议 + Sonnet 执行SWE-bench +2.7pp,每任务成本降低约 12%
BudgetMLAgent cascade免费基础模型 + 专家调用走 GPT-4每次运行 $0.054 vs $0.931,便宜 94.2%
RouteLLM 路由GPT-4 / Mixtral-8x7B成本降低超过 85%,同时保持 GPT-4 95% 的性能

代价是延迟:R1 + Sonnet 的组合在 Aider 中每个案例耗时 251.6 秒,而单机模型只要 12.4 秒。

本站判断:这个「规划很贵、执行却很便宜」的分工,和三维开发的实际形态很契合——因为真正的难点在架构决策(比如场景怎么切分、哪些走实例化、LOD 策略怎么定),而写一个加载器、一个材质配置,就属于机械劳动。把后者交给便宜的模型,是当前最划算的做法。

5. Bun 的 16.5 万美元重写:数字和限定条件

Bun 公开的 Zig → Rust 迁移是文章里最大的一个案例:

指标数值
迁移规模535,000 行 Zig 转 Rust
日历时间11 天
提交量6,778 次
并行度约 64 个并行 Claude Agent
Token 形态59 亿未缓存输入、6.9 亿输出、720 亿缓存读取
成本约 $165,000

缓存读取量约为输出 token 的 100 倍。团队的对照估算:3 名工程师掌握完整代码库上下文,手工做约需 1 年。

三个限定条件必须一起读:Bun 于 2025 年 12 月被 Anthropic 收购,重写用的是预发布版模型而非通用可用版本,所以成本与能力都不是标准情形;$165K 应视为高度并行迁移的 API 费率成本。此外 Zig 作者 Andrew Kelley 公开批评其中一部分是「未经审查的垃圾」——质量和 token 支出是两个独立维度。

6. 别把「2000 万美元」当规划基准

文章专门澄清了一个流传很广的说法:没有任何一手来源支持「公司在实现 ROI 前花费 2000 万美元 token」,不建议拿它当规划基准。

取而代之的是把支出和工程信号连起来审计:

ROI 信号测量层
Token 支出发票与 API 用量,按模型和循环拆分
被接受的工作已合并的变更
返工被回滚的变更
审查负担代码审查耗时
质量影响缺陷逃逸与维护负担

这里还有一个很值得记住的对照实验:METR 的随机对照试验发现,经验丰富的开源开发者使用 AI 工具后慢了 19%,但他们自己估计是快了 20%——感知与实测之间有 39 个百分点的差距。

7. 给 Agent 设 token 预算的五个步骤

背景数据:FinOps Foundation 报告显示,98% 的 FinOps 团队已经把 AI 支出管理纳入工作(两年前只有 31%),Token 成本管理被列为首要挑战。

  1. 从自己的遥测数据设定额度:按团队区分缓存读取、未缓存输入和输出,而不是拍一个数字。
  2. 先归因再控制:按团队或成本中心拆分 API Key,通过 OpenTelemetry 导出每用户 token 指标。
  3. 用供应商的硬停止,并知道它的局限:GitHub Copilot 提供预算开关,在 75%、90%、100% 处告警;OpenAI 的项目级预算是软阈值,超出后仍会继续处理请求。
  4. 在循环内部运行时强制预算:月度上限只能拦住下个月的账单,运行时控制才能在任务中途决定继续、收窄、要审批还是停。
  5. 按被接受的结果衡量:把所有支出(含失败尝试和升级)相加,除以达到质量标准的变更数。

代码与验证

文章没有给可直接运行的代码,但给了一个可以立刻执行的自查动作:

拉取一个团队一周的会话级 token 数据,拆成缓存读取 / 未缓存输入 / 输出三类,再对照路由层级为每一轮定价。

判断标准也很明确:如果大部分支出是在前沿模型上为机械轮次重读上下文,那么架构变更能挽回合同变更触及不到的预算。

适用场景与坑

该用:任何跑 Agent 编码的团队,尤其是长时间自主运行、多轮工具调用、大文件仓库的场景——三维项目基本都符合。

别用:不要把这套结论套到单轮补全或简单问答上,那里输入输出比例完全不同,优化重点也不一样。

已知的坑:

  • 缓存没命中的时候,同一个长提示会变得很贵,执行缓存的纪律比缓存开关要重要;
  • 如果持续压缩会隐藏后续需要的状态,摘要比较适合放在阶段边界;
  • 没有硬性停止的标准,Agent 就会一直重试,那么所有优化都白做;
  • 分层路由会显著增加延迟(251.6 秒 vs 12.4 秒),如果做交互式场景就要权衡了;
  • 「便宜模型执行」不等于「结果可接受」,质量和成本是两个维度的,必须分开度量。