做 AI 应用一段时间后,很多团队都会遇到同一个问题:模型没怎么换,业务量也没有明显增长,但账单还是越来越高。
这时候大家第一反应往往是模型太贵了,于是开始横向比较价格。可真把线上链路拆开看,很多钱并不是花在单次调用上,而是花在调用怎么被组织出来。
一条普通请求,前面可能有任务分类和上下文拼装,中间有模型调用、超时控制,后面还有重试、fallback、结果修复。
单看模型单价,很容易误判;把整条调用链展开,问题才会出现。
很多团队先盯价格表,最后发现真正该看的,是调用链。
真正贵的,往往是结构性放大
拿一个内容生成请求举例,系统大概率会这样跑:
- 默认直接走高能力模型
- 把系统提示、历史记录、工具说明一次性全塞进去
- 输出过长,再做一轮压缩或后处理
- 超时后自动重试
- 主模型失败,再切备用模型
这种链路一旦跑得多,成本就不是一点点往上蹭,而是被一层层放大。
所以很多 AI 成本问题,说到底不是采购问题,而是工程问题。
常见的浪费,基本就藏在这几处:
- 没有任务分层,轻任务和重任务都走同一套模型
- 上下文长期冗余,稳定背景被反复发送
- 重试和
fallback没有边界 - 本该异步执行的任务,被塞进实时链路
成本治理不能只看模型账单
如果监控里只有“某模型花了多少钱”,这类数据其实只够看总账,不够拿来治理。
真正有用的,是把指标挂到调用链上,至少看这几项:
- 输入
token - 输出
token - 缓存命中率
- 重试率
fallback触发率- 单位业务动作成本
最后这一项很关键。
业务买的不是 token,而是一次“完成问答”“生成摘要”“输出审核结果”的能力。只有看到单位业务动作成本,团队才能知道究竟是哪一段流程在持续漏钱。
更有效的治理顺序
如果真要动手优化,我更建议按这个顺序来。
第一,先做任务分层。
简单改写、轻量总结、分类判断,不该和复杂推理、长文生成走同一条链路。
第二,再清理上下文。
系统提示、角色描述、工具说明里很多内容是稳定的,能缓存就缓存,能裁剪就裁剪,不要让重复背景一直消耗输入 token。
第三,重新划分实时和异步任务。
批量生成、离线分析、夜间处理,只要业务允许稍后返回,就不要持续占用实时链路。
第四,最后再收紧重试和 fallback。
稳定性当然重要,但也要有预算意识,不能默认一路重试到底、兜底到底。
多模型场景为什么更难控成本
当团队同时接入多个模型时,麻烦往往不在“怎么接”,而在“怎么管”。
接口格式、日志口径、错误码、计费方式一旦不统一,后面就很难把一条链路的成本完整拼出来。
所以从治理角度看,先把入口收拢,往往比继续增加模型数量更重要。
像 147API 这类统一接入层,放在这里就比较合适。它的意义不只是多接几个模型,而是把入口先收起来,后面的日志归集、路由切换、预算控制和成本分析才有机会放到同一层处理。
写在最后
AI 成本治理当然要看单价,但不要只盯单价。
真正决定成本走势的,往往不是你买了哪个模型,而是系统让模型怎么工作。
把调用链拆开后,问题通常会一下子具体起来:任务有没有分层、上下文是不是太重、重试是不是过多、fallback 有没有失控、哪些任务其实根本不需要实时执行。
先把这些结构问题处理好,通常比单纯换一个便宜模型更有用。