45分钟完成 OpenAI 账单审计:Token 消耗分解(Retries、Tool Loops、Context Bloat)
发布: (2026年2月19日 GMT+8 00:23)
5 分钟阅读
原文: Dev.to
Source: Dev.to
关键思路
不要只从“每次请求的成本”来思考。改为衡量 每个成功任务的成本,并将总花费拆分为四个桶:
- 基础生成
- 上下文膨胀
- 重试与超时
- 工具/代理循环
通过识别哪个桶占主导,你就知道该先解决什么。 1
如何进行审计
收集你拥有的任意以下数据:
- 选项 A(最佳): 包含模型名称、令牌数、状态、时间戳的每请求日志
- 选项 B: OpenAI 使用导出 + 部分应用日志
- 选项 C: 每模型/每日的总费用(估算)
即使数据有限,你仍然可以发现最大的成本驱动因素。 2
定义成功任务
成功任务的示例:
- 有依据的答案且没有回退
- 没有重试/超时
- 工具工作流完成且没有循环
计算每个成功任务的成本
cost per successful task = total tokens / successful tasks
这为后续审计提供了可操作的基准。 3
将总支出拆分为各桶
| 桶 | 描述 |
|---|---|
| 基础生成令牌 | 提示词 + 正常输出 |
| 上下文膨胀令牌 | 系统提示、历史记录、RAG 上下文 |
| 重试与超时浪费 | 失败尝试中燃烧的令牌 |
| 工具/代理循环浪费 | 不必要的重复调用 |
对这些桶进行排序,看看哪个驱动了大部分支出。 4
示例分析(200–500 条请求)
- 计算输入令牌拆分:系统 + 历史 + RAG + 工具 令牌
- 汇总输出令牌总量
- 测量重试/超时浪费
即使是粗略估算也能揭示异常大的成本驱动因素。 5
请求排序依据
- 每请求成本
- 输入令牌最高的请求
- 重试率
- 工具循环次数
常见模式包括:
- 上下文膨胀
- 重试风暴
- 代理/工具循环
- 模型误路由
- 过度生成 6
按人群拆分成本
- 意图类别
- 客户层级
- 产品形态(聊天 vs. 代理)
- 语言
这可以发现具体的费用泄漏点。 7
优先修复顺序
- 停止浪费 – 限制重试次数,添加断路器
- 限制上下文 – 限制历史 + RAG 上下文
- 智能路由 – 对低风险意图使用更便宜的模型 8
即使是这些简单的改动,也能在不降低质量的前提下降低成本。
预期结果(45 分钟后)
- 展示四个桶的费用饼图
- 按成功成本排序的顶级人群
- 前 5 大“沉默支出”模式
- 3 条实用修复的排序列表
- 用于未来回归的验证检查与警报 9
常见陷阱
- 不要盲目缩短系统提示 – 先评估其影响
- 不要全局限制令牌数 – 按风险或意图层级进行限制
- 不要在没有评估保护的情况下切换模型 – 成本削减不应破坏准确性 10
资源
- AI 审计(完整流水线) – 在你的 AI 系统中衡量质量、延迟、成本和安全性
- LLM 与 RAG 审计中心 – 为 LLM 生产可靠性提供框架、基准和故障排查
- OptyxStack – 提供生产 AI 可靠性和优化的服务
在优化之前先审计你的支出——浪费往往隐藏在你最不期待的地方。