跳到内容
AI

AI API 成本事故复盘:账单突然暴涨后怎么止血

AI

AI Cost Calculator

2 分钟阅读

AI API 成本事故通常不是“一夜之间发生”的。账单突然暴涨的背后,往往早就有信号:重试率升高、上下文越来越长、Agent 工具调用变多、批处理任务重复执行,或者某次模型切换没有同步预算上限。

真正的问题不是账单涨了,而是团队不知道为什么涨、谁触发了、怎么止血、怎样避免下次再发生。

什么算 AI API 成本事故

不是所有成本上涨都是事故。产品增长、用户变多、模型质量升级,都可能让账单增加。成本事故通常有三个特征:

信号判断方式
增长不可解释没有发布、活动或用户增长支撑
单位成本异常单次成功任务成本明显升高
影响预算决策已经超过日预算、月预算或客户毛利边界
无法快速归因不知道是哪个功能、用户、模型或任务导致

如果只是总成本高,但每个功能的请求量和成功任务成本都符合预期,那是预算问题;如果成本突然高且无法解释,那就是事故。

第一步:先止血,不要先复盘

账单正在失控时,第一目标是止血。

可以按优先级执行:

  1. 暂停低价值批处理任务;
  2. 降级非核心功能模型;
  3. 暂停 Agent 自动执行;
  4. 限制最大输出 token;
  5. 限制重试次数;
  6. 关闭长上下文模式;
  7. 给免费用户或内部测试加临时额度。

不要一边事故继续发生,一边慢慢查日志。先把增长曲线压住,再做复盘。

第二步:还原事故时间线

复盘不要从“谁写错了代码”开始,先还原时间线。

时间事件证据
T-7 天prompt 变长git diff / prompt 版本
T-5 天新增 RAG 检索片段release note
T-3 天Agent 加入工具调用配置变更
T-1 天重试率升高请求日志
T账单告警供应商账单 / 内部 dashboard

如果没有时间线,就容易把真正根因归咎到最后一个改动上。

第三步:做成本归因表

至少按这些维度拆:

维度问题
feature哪个功能变贵?
model哪个模型消耗最多?
user_tier免费用户还是付费用户?
input_tokens输入是否增长?
output_tokens输出是否增长?
retry_count是否重复请求?
tool_callsAgent 是否循环调用工具?
cache_hit缓存是否失效?
status成功还是失败请求在花钱?

成本事故复盘的关键,不是找到“贵模型”,而是找到“贵的成功/失败路径”。

常见根因 1:上下文慢慢变长

最隐蔽的事故来自上下文增长。

常见原因:

  • 聊天历史没有截断;
  • RAG chunk 数越来越多;
  • system prompt 越调越长;
  • 工具返回完整 JSON,没有摘要;
  • 每次请求都带上无关上下文。

排查方式:看事故前后平均 input tokens 和 P90 input tokens。

常见根因 2:输出没有上限

写作、报告、代码生成、总结类功能最容易输出过长。

止血方式:

  • 设置 max output tokens;
  • 默认给短回答;
  • 长报告需要二次确认;
  • 输出格式用表格或 JSON schema 收窄;
  • 对重复生成加冷却时间。

常见根因 3:重试率失控

失败重试是最直接的成本放大器。

真实成本 = 正常成本 × (1 + 重试率)

如果重试率从 5% 变成 40%,账单会明显上升,而且用户体验也会下降。

需要检查:

  • 是上游 timeout;
  • 还是 JSON 解析失败;
  • 还是工具调用参数错;
  • 还是应用层没有幂等控制。

常见根因 4:Agent 工具循环

Agent 事故最常见的形态是:模型不断观察、调用工具、再观察、再调用。

必须限制:

  • 最大轮数;
  • 最大工具调用次数;
  • 单任务预算;
  • 写操作人工确认;
  • 工具失败后的重试次数。

如果 Agent 没有停止条件,它就不是自动化,而是预算风险。

常见根因 5:批处理重复执行

后台任务也常导致成本事故。

例如:

  • cron 重复触发;
  • 队列消息没有 ack;
  • 失败重跑整批;
  • 同一文件被多次总结;
  • 多个 worker 处理同一任务。

这种事故不一定来自模型,而是任务系统没做幂等。

成本事故复盘模板

可以直接复制:

## 事故摘要
- 时间:
- 影响范围:
- 预计额外成本:
- 当前状态:已止血 / 仍在增长

## 时间线
- T-7:
- T-3:
- T:

## 成本归因
- 主要功能:
- 主要模型:
- 输入/输出 token 变化:
- 重试率:
- Agent 工具调用:

## 根因
- 直接原因:
- 系统性原因:

## 已采取措施
- 暂停:
- 降级:
- 限额:

## 防复发
- 日预算告警:
- 单请求成本上限:
- 重试上限:
- 上线评审清单:

预防清单

  • 每个 AI 功能有功能级预算;
  • 每次请求记录输入/输出 token;
  • 所有重试有上限;
  • Agent 有最大轮数;
  • 批处理任务有幂等键;
  • 日预算和周预算有告警;
  • prompt 变更需要记录版本;
  • 模型切换要重新估算成本;
  • 上线后一周必须复盘。

相关指南

FAQ

成本暴涨后第一步是查账单吗?

不是。第一步是止血:暂停低价值任务、限制输出、降低重试、暂停 Agent 自动执行。账单复盘放在止血之后。

成本事故一定是模型太贵吗?

不一定。更常见的是输入变长、输出变长、重试率上升、缓存失效、Agent 循环或批处理重复执行。

没有完整日志还能复盘吗?

可以,但会很慢。至少从供应商账单、应用访问日志、发布记录、队列任务和 prompt 版本里还原时间线。之后必须补请求级成本日志。

总结

AI API 成本事故不是单纯的财务问题,而是工程可观测性问题。只要团队能快速止血、还原时间线、归因到功能、限制高风险路径,并把复盘结果写进上线清单,下一次账单异常就不会再变成盲查。

推荐阅读