大部分团队遇到的情况是:月初上线一个 Agent 功能,月底看账单吓一跳——成本比预估高了 5-10 倍。
但成本失控从来不是”突然”发生的。上线后的第一周,你就能看到预警信号——只是大多数团队没建立监控,等到月底看账单时已经晚了。
这篇文章总结了 7 个最常见的早期预警信号,附自查清单。对照检查,你大概率能发现已经存在的成本隐患。
预警信号 1:单请求 Token 用量每周上涨 20%+
现象:同一个 API 端点,平均每次请求消耗的 Token,第一周 2K,第二周 3K,第三周 5K,还在涨。
为什么危险:
- 这是最常见的成本失控前兆,但 90% 的团队不会监控这个指标
- Token 用量上涨通常意味着:prompt 被不断”加固”(加了很多防止越狱的冗余内容)、context 窗口越塞越满、或者出现了”prompt 膨胀”——每加一个功能就往 system prompt 里塞一段说明
- 线性增长还好,可怕的是指数级增长:多轮对话越长,context 越积越多,每次调用都带上次的全部历史
自查:
单请求平均 Token 变化
第一周:_______
第二周:_______
第三周:_______
增长率:_______%
应对:
- 建立 prompt 版本管理,每次改动都记录 Token 变化
- 上下文滑动窗口:只保留最近 N 轮对话,或者按 Token 数截断
- 用 AI API 成本计算器 算清楚:Token 涨 20%,月度账单涨多少
预警信号 2:重试率 > 15%
现象:API 调用里,超过 15% 是重试请求——超时、限流、格式错误、工具调用失败。
为什么危险:
- 重试是”沉默的成本”——你花了钱,但用户看不到任何产出
- 更糟糕的是指数退避重试:第一次失败等 1 秒,第二次等 2 秒,第三次等 4 秒……很多 SDK 默认开启,但很少有人算过这在高并发下的成本
- 我们见过最极端的案例:一个团队 60% 的 API 调用是重试
自查:
总调用次数:_______
重试次数:_______
重试率:_______%
主要重试原因:
□ 限流 rate_limit_exceeded
□ 超时 timeout
□ 工具调用格式错误
□ 5xx 服务端错误
□ 其他
应对:
- 给重试加最大次数限制(建议 3 次,不要无限重试)
- 区分”可重试错误”和”不可重试错误”——格式错误再试也没用
- 用 cheaper 模型做格式校验,不要拿 Sonnet/Opus 做重试
预警信号 3:长尾请求占比 > 30%
现象:少数请求吃掉了大部分 Token。按 Token 用量排序,前 10% 的请求消耗了 70% 的 Token。
为什么危险:
- 这是 Agent 场景的典型问题——大部分请求是简单问答(几百 Token),但少数复杂任务会吃掉整个上下文窗口
- 更隐蔽的是”超级用户”问题:1% 的重度用户吃掉 50% 以上的成本,但你的定价可能是按平均用例算的
自查:
P50 单请求 Token:_______
P90 单请求 Token:_______
P99 单请求 Token:_______
P99 / P50 比值:_______ (> 10 倍就危险)
应对:
- 按用户级别设不同的 Token 上限:免费用户 4K,付费用户 32K
- 复杂任务走批处理 API(DeepSeek Batch、OpenAI Batch),成本砍一半
- 参考我们的 12 个任务成本对比,选性价比最高的模型
预警信号 4:缓存命中率 < 30%
现象:Claude Prompt Caching、OpenAI 缓存命中,用了但命中率很低。
为什么危险:
- 缓存命中的 Token 成本是原价的 10-50%,命中率低意味着你在浪费最大的成本优化空间
- 更糟糕的是:你可能已经加了缓存,但 prompt 拼接方式不对,导致缓存根本没生效
自查:
缓存命中 Token 数:_______
总 Token 数:_______
缓存命中率:_______%
□ 系统 prompt 经常变动
□ 用户输入拼接在 prompt 前面
□ 每次都带时间戳/随机数
□ 工具定义顺序不固定
应对:
- 把不变的内容(系统 prompt、工具定义)放在 prompt 最前面
- 动态内容放后面,时间戳只在真正需要时加
- 缓存命中率从 30% 提到 70%,成本直接降一半——这是 ROI 最高的优化
预警信号 5:模型升级但成本阈值没更新
现象:上个月从 Haiku 切到 Sonnet,能力确实提升了,但成本监控阈值还是按 Haiku 设的。
为什么危险:
- 这是最蠢的成本失控原因——完全可以避免
- 模型单价差 5 倍,但告警阈值忘了改,等于没设告警
- 我们见过不止一个团队:上线前做了详细的成本评估,然后就再也没看过
自查:
当前使用的模型:
1. _______ 单价:$_______ / 1M tokens
2. _______ 单价:$_______ / 1M tokens
3. _______ 单价:$_______ / 1M tokens
预算告警阈值:$_______ / 月
上次更新阈值时间:_______
应对:
- 每次换模型,同步更新成本阈值
- 按模型设独立的预算告警,不要混在一起
- 用 定价指南 对照最新价格,不要凭记忆估算
预警信号 6:“临时”代码上线超过 2 周
现象:代码里有很多这样的注释:
# TODO: 临时方案,上线后优化
# 先这么写,后面再改
# 性能不重要,先跑通再说
为什么危险:
- 没有”临时”的代码,只有”临时但永远在线上跑”的代码
- 开发时”先跑通再说”的写法,放到高并发场景下就是成本黑洞
- 一个没做缓存的循环查询,一天就能烧掉几千块
自查:
代码中标注 TODO / FIXME / 临时 的数量:_______
其中超过 2 周没改的:_______
□ 循环里调用 LLM 但没做结果缓存
□ 每次都重新生成,但结果可以复用
□ 全量用 Opus,但大部分任务 Haiku 就能搞定
应对:
- 设立”技术债务偿还日”,每月清理一次
- “临时”代码加过期自动告警:2 周后没改就发邮件
- 代码审查加一条:这个写法放到 100 QPS 下,成本是多少?
预警信号 7:只有月度账单,没有实时告警
现象:成本监控方式是”月底看云服务商账单”。
为什么危险:
- 等你看到账单时,钱已经花出去了——无法回滚
- 一个 Bug 跑 3 天烧掉几万块的案例太多了
- 更隐蔽的是”渐变式”成本上涨:每天涨 2%,月底就是 +80%,但你每天看不觉得,月底一算吓一跳
自查:
你有以下哪些告警?
□ 日成本超过 X 元告警
□ 单小时 Token 用量突增告警
□ 单用户 Token 用量超限告警
□ 重试率过高告警
□ 缓存命中率过低告警
□ 以上都没有 😅
应对:
- 至少要有日成本告警——5 分钟就能搭好
- 加一个”熔断开关”:成本超过月度预算的 80% 自动降级
- 参考我们的 AI API 账单核对指南,学会对账
快速自检清单
把这 7 个信号做成 checklist,每周查一次:
| 检查项 | 正常阈值 | 你的情况 | 是否危险 |
|---|---|---|---|
| 单请求 Token 周增长率 | < 10% | _______ | ⬜ |
| API 重试率 | < 15% | _______ | ⬜ |
| P99 / P50 Token 比值 | < 10 倍 | _______ | ⬜ |
| 缓存命中率 | > 50% | _______ | ⬜ |
| 成本阈值上次更新 | < 1 个月 | _______ | ⬜ |
| 过期 TODO 数量 | < 3 个 | _______ | ⬜ |
| 实时告警数量 | > 3 个 | _______ | ⬜ |
中了 2 个以上:你的系统已经有成本隐患,建议下周就处理 中了 4 个以上:成本失控的概率 > 80%,月底账单会给你惊喜
总结
成本失控的本质不是”模型太贵”,而是你没有建立反馈闭环。
Token 用量上涨、重试率高、长尾请求多、缓存没生效——这些信号在上线第一周就能看到。你不需要很复杂的监控系统,把上面 7 个指标记下来,每周花 10 分钟看一眼,就能避免 90% 的成本意外。
下一篇我们会讲:发现成本失控后,24 小时内可以落地的 5 个紧急止血措施。
延伸阅读: