核心原则
模型成本评估的起点不是 token 单价、缓存命中率或单次请求费用,而是:
模型能否以可接受的质量完成目标任务?
如果一个模型无法完成任务,它的调用价格再低,也不能构成有效的成本优势。失败调用、反复重试、人工返工和最终切换模型都是真实成本。
因此,成本优化应该从任务结果向后倒推:
定义任务目标与质量门槛
→ 判断方案能否稳定达标
→ 计算完成任务的全部消耗
→ 比较每个成功任务的成本
→ 再优化 token、缓存、轮数和工具调用模型便宜不等于任务便宜,缓存命中率高也不等于任务便宜。以可接受质量完成同一任务的成功成本更低,才是真的便宜。
先把问题写成约束优化
模型选型不是无条件追求最低费用,而是在质量约束下寻找成本更低的方案:
在任务质量 ≥ 可接受门槛
且可靠性、延迟满足业务要求的前提下
最小化 Cost per Successful Task这条约束很重要。不同模型如果完成的目标、质量等级或可靠性要求不同,它们的成本就不能直接横向比较。
例如,小模型无法完成复杂代码修改,大模型可以完成。此时小模型的低单价没有比较意义,因为两者没有产生等价结果。反过来,简单分类任务由小模型一次完成,就没有必要为了更高缓存命中率使用成本更高的大模型。
三层成本模型
第一层:单次请求成本
Provider 的直接计费通常可以表示为:
Request Cost
= uncached_input_tokens × uncached_input_price
+ cached_input_tokens × cached_input_price
+ output_tokens × output_price这一层适合解释账单,但不能代表 Agent 完成任务的成本。
第二层:单个任务成本
Agent 通常通过多轮模型调用、工具执行和重试完成任务:
Task Cost
= Σ Request Cost
+ 工具调用成本
+ 检索与存储成本
+ 执行环境成本
+ 重试成本
+ 失败返工成本
+ 必要的人工介入成本同一个模型的请求单价很低,如果需要更多轮次、更长上下文或频繁重试,最终任务成本仍可能更高。
第三层:成功任务成本
业务真正需要的是成功完成的任务,而不是便宜的调用次数:
Cost per Successful Task
= 总任务消耗成本 / 成功完成的任务数如果任务分布和每次尝试近似稳定,也可以用下面的方式做快速估算:
Expected Cost per Successful Task
≈ 平均单次任务成本 / 任务成功率例如:
方案 A:平均每次尝试 1 元,成功率 40%
预期成功任务成本约为 2.5 元
方案 B:平均每次尝试 2 元,成功率 90%
预期成功任务成本约为 2.22 元方案 B 的单次成本更高,但成功任务成本更低。
Cache Hit Rate 只是局部系数
Prefix Cache 命中率影响的是请求成本中的输入部分:
有效输入单价
= (1 - cache_hit_rate) × uncached_input_price
+ cache_hit_rate × cached_input_price它不能单独回答整个任务是否便宜,因为任务总成本还取决于:
- 输入 token 总量。
- 输出 token 总量。
- 输入与输出单价。
- Agent 调用轮数。
- 工具、检索与执行成本。
- 重试和失败次数。
- 任务成功率。
- 结果质量与人工返工量。
- 延迟造成的业务成本。
所以更准确的定位是:
Cache hit rate 是输入成本的折扣系数,不是最终成本指标。
缓存命中率低的模型,如果上下文短、输出短、轮数少、成功率高,总成本仍然可能较低。缓存命中率高的模型,如果上下文巨大、输出冗长、轮数多或频繁失败,总成本仍然可能较高。
质量必须先变成可判断的标准
“先看任务质量”不能停留在主观感受,否则成本比较仍然没有共同基准。评估前需要先定义任务的验收条件,例如:
- 分类、抽取任务的准确率、召回率或格式通过率。
- 代码任务的测试通过率、需求覆盖率和回归错误数。
- Agent 任务的目标完成率、工具调用正确率和状态一致性。
- 内容任务的事实准确性、约束满足度和人工修改量。
- 生产任务的延迟上限、失败率和人工接管率。
质量不是越高越好,而是先确定业务真正需要的最低可接受门槛。超过门槛后的额外质量是否值得付费,需要另外判断。
正确的比较单位
模型成本实验应该固定或对齐以下条件:
- 相同任务目标:模型面对的是同一类业务问题。
- 相同验收标准:成功的定义一致。
- 相近运行条件:工具、上下文、超时和重试策略可比。
- 完整任务链路:记录所有模型请求和外部资源消耗。
- 足够任务样本:覆盖简单、常规、困难和异常场景。
然后同时记录:
任务成功率
质量指标
单次请求成本
平均任务轮数
重试与兜底次数
平均任务成本
成功任务成本
端到端延迟
人工介入时间只有这些指标放在一起,才能判断模型、provider 和 Agent 策略的真实经济性。
优化顺序
成本优化应遵循从结果到局部变量的顺序:
- 明确任务目标和质量门槛。
- 排除无法稳定完成任务的方案。
- 比较达标方案的成功任务成本。
- 找出成本主要来自请求、轮数、输出、重试还是工具。
- 再优化模型路由、上下文长度、Prefix Cache、输出长度和工具链路。
- 优化后重新检查质量与成功率,防止局部降本造成整体退化。
Prefix Cache、prompt 裁剪和小模型路由都只是第五步的优化手段。它们不应该反过来定义系统的根本目标。
最终判断
评估模型成本时,应始终保留三个层级:
请求便宜
≠ 任务便宜
≠ 成功任务便宜真正应该追求的是:
在达到质量、可靠性和延迟门槛的前提下,
用最低的完整成本成功完成任务。这是模型成本判断的第一性原理。Token 价格、缓存命中率、上下文长度和输出长度都重要,但它们只能在这个前提下被正确解释。