智能体越用越贵?一张成本核算表找出钱都花在哪

📅 2026/4/26 ✍️ 小文 📖 约 1 分钟

Agent 的单次成本经常是聊天机器人的几十倍。本文把成本拆成输入放大、工具往返、重试、缓存失效四个来源,给出核算公式和五项具体优化。

单次对话 0.02 元,单次任务 2 元

很多人第一次把聊天机器人升级成 Agent,账单涨了 50 倍,却说不清为什么。

原因在于运行模式完全不同:它不是”一问一答”,而是”读上下文—想—调工具—读结果—再想”。每一轮都要把历史全部重发一遍。成本随轮次近似二次增长。

四个真实的成本来源

1. 输入放大 第 1 轮输入 2000 token,第 20 轮可能是 40000 token。这不是模型的问题,是上下文累积的必然:轮次越多,每轮都在为”已经说过的话”重复付费。

2. 工具往返的隐性开销 一次工具调用 = 一次模型输出 + 一次工具结果 + 一次模型阅读结果。工具返回的大段 JSON 会完整计入输入。抓一个网页返回 8000 token 的 HTML,你就为它付了三次钱。

3. 重试与自我纠错 Agent 最常见的失败模式是”调错参数 → 报错 → 修正 → 再调”。好的一面是最终成功,坏的一面是成本翻倍。没有重试上限的 Agent,会陷入长时间空转。

4. 缓存失效 提示词缓存能显著降低重复输入的代价,但 agent 场景里两个动作会打穿缓存:工具调用插入导致前缀变化,以及上下文中途被裁剪或重排。缓存一旦失效,全量重算。

一张可套用的核算公式

不要凭感觉估。按任务记录四项数据:

单任务成本 = Σ(每轮输入 token × 输入单价)
           + Σ(每轮输出 token × 输出单价)
           + 工具调用费用(搜索/爬取/第三方 API)

然后用这个指标做横向比较:

成本/成功率 = 平均单任务成本 ÷ 任务成功率

这个指标比”平均成本”有意义得多:一个便宜但成功率 60% 的方案,实际每个成功任务可能比贵的方案更贵。

五项见效最快的优化

① 上下文压缩代替全量保留 每 N 轮把历史总结成结构化摘要(已完成、当前状态、待办),替换原文。实测可削减 40%~60% 输入量,质量几乎不降。

② 工具返回做结果裁剪 在工具层就把返回压到必要字段,而不是把原始响应丢进上下文。抓网页先做正文提取,列表接口只留前 N 条。

③ 分层模型 规划、总结用强模型;格式转换、字段抽取、简单分类用便宜模型。Agent 里大量调用并不需要强模型。

④ 硬性轮次与预算上限 设最大轮次和最大花费,超限就产出”部分结果”并告知用户。这比无限重试省钱,体验也更好。

⑤ 让缓存真正命中 系统提示词与工具定义放在最前且保持稳定,把所有动态内容(用户输入、时间戳)放到末尾。

上线前必须建立的三个观测

  • 每任务 token 分布:看 P95 而非均值。少数超长任务会吃掉大部分预算。
  • 轮次分布:轮次异常长的任务,往往是提示词或工具设计有缺陷。
  • 缓存命中率:连续两周低于 30%,就该检查上下文结构。

结论

Agent 的成本问题,80% 源于上下文管理,20% 源于定价。

在写下第一行业务代码之前,先把上面那张核算表建好。有数字,优化才有方向;没数字,你只会在”换个便宜模型”里反复打转。

📤 分享到