Codex CLIClaude Code通用

AI Agent 为什么这么烧 Token?Agent 调用 vs 单次 LLM 调用对比

你让 ChatGPT 写一段代码花 5000 token,让 Codex 改同样的事可能花 5 百万 token——差了 1000 倍。本质区别在哪?这篇把 Agent 模式的 token 放大效应讲清楚。

很多人第一次跑 Agent 任务都会被账单吓到。「我就让 Codex 改个 bug,怎么烧了 5 美元?」

5 美元等于多少 Token?按 Sonnet 价格大概 200 万。这个数字比你直接问 ChatGPT 同样问题的 5 千 Token 多了 400 倍。差距从哪来?

这篇把 Agent 模式的 Token 放大机制讲清楚。

单次 LLM 调用结构

最简单的场景:你直接问 ChatGPT「帮我写一个 React 倒计时组件」。

你 → [prompt: 200 token] → 模型 → [response: 1500 token] → 你

总消耗 1700 Token。一次请求一次响应,结束。

Agent 模式的工作流

让 Codex 做同样的事:

你 → [prompt: 200 token] →
      Agent 决定 [thinking: 800 token] →
      调用 list_directory [input: 5K token, output: 800 token] →
      Agent 决定 [thinking: 1200 token] →
      调用 read_file (App.jsx) [input: 8K token, output: 600 token] →
      Agent 决定 [thinking: 800 token] →
      调用 read_file (package.json) [input: 8K token, output: 200 token] →
      Agent 决定 [thinking: 1500 token] →
      生成代码 [input: 12K token, output: 1500 token] →
      调用 write_file [input: 14K token, output: 1500 token] →
      调用 run_tests [input: 16K token, output: 800 token] →
      测试失败,调用 read_file (test.log) [input: 18K token, output: 400 token] →
      调用 write_file (修复) [input: 20K token, output: 1500 token] →
      调用 run_tests [input: 22K token, output: 200 token] →
      返回结果给你

每次"Agent 决定"和"工具调用"都是一次完整的 LLM 请求,每次都把当前累积的上下文 + 新工具结果一起发给模型。

总消耗大约 13 万 Token——比单次问 ChatGPT 多了 75 倍。这还是比较顺利的情况。如果 Agent 跑岔了再多跑几个循环,到 50 万 Token 也不奇怪。

三个放大因子

Agent 比单次 LLM 烧 Token 的本质是三个放大因子叠加:

因子 1:循环次数(10-200 倍)

单次调用 = 1。Agent 每个工具调用 + 思考都是一次。简单任务 5-10 次循环,复杂任务 50-200 次。

因子 2:每次调用的上下文都在涨(5-20 倍)

第 1 次调用上下文 5K,第 100 次调用上下文可能 200K——因为前面所有工具结果都在累积。即使有缓存(10% 价格),累计还是非常贵。

因子 3:思考链消耗(2-5 倍)

Agent 在每个决策点都要"思考"——分析当前状况、判断下一步。每次思考几百到几千 output Token,几十次累计起来不少。

三个因子相乘:单次调用 100 token → Agent 100 × 50 × 4 ≈ 20 万 token。

数据对比:实测各工具的"放大率"

我看 Vibe Usage 上不同工具的 session 平均累计 Token:

工具 平均单 session 累计 Token 平均 message 数
Gemini CLI 13.6 万 4.2
OpenCode 71 万 19.9
Claude Code 30 万 63.2
openclaw 81 万 39.1
Codex CLI 159 万 544.1

Codex 是最重 Agent 的——单 session 平均 544 条消息,是 Gemini CLI 的 130 倍。它的累计 Token 也是最高的。

但注意:Codex 的单次任务"产出价值"也最高。不是它"浪费",是它做的事更复杂。让 Gemini CLI 做和 Codex 一样的事,要么做不到,要么也得堆几十次循环。

什么时候用 Agent 划算

不是所有任务都该用 Agent。判断标准:

Agent 划算的场景:

  • 任务边界模糊——你不知道改哪些文件、要跑哪些测试、可能遇到什么问题
  • 需要自我验证——改完要跑测试看通不通过,失败要重试
  • 多步骤——读、改、测、再改,循环验证
  • 任务时间长——你不想盯着,让 Agent 自己跑

单次 LLM 划算的场景:

  • 任务边界清晰——你知道要写什么,要改什么文件
  • 不需要测试反馈
  • 单步骤——一段代码、一段说明
  • 任务短——一两分钟内能写完的

我自己的分工:日常 80% 用单次 LLM 调用(chat 模式),20% 大任务才上 Agent。Token 消耗比例反过来:Agent 的 20% 任务消耗了 70% 的 Token。

怎么不被 Agent 反噬

如果你要跑 Agent 任务,记住几件事:

  1. 设置时间上限——超过 30 分钟没结果,停下来检查
  2. 看消息数——超过 200 条工具调用还在跑,多半走偏了
  3. 写明确的约束——告诉 Agent 哪些文件不要碰、哪些命令不要跑
  4. 用便宜模型跑探索阶段——让 Sonnet 先调研,确定方案再让 Opus 实施

最关键的是数据。打开 Vibe Usage 看自己每个工具的真实消耗结构——你会知道哪些 Agent 任务是"高 ROI"哪些是"无谓循环",下次决策更快。

一个常见误判

很多人觉得"Agent 烧太多,我就不用 Agent"——这是因小失大。

Agent 替换的是几小时的人工时间。一次 5 美元的 Codex 任务,省你 2 小时手工编码——按工程师时薪 50 美元算,净赚 95 美元。

Agent 烧 Token 不是问题,滥用 Agent / 不监控 Agent 才是问题。把数据收集起来 用 Vibe Usage 看每天哪些 Agent 任务真值得跑,你会清楚 ROI 边界在哪。

相关阅读

相关阅读

AI Agent 为什么这么烧 Token?Agent 调用 vs 单次 LLM 调用对比