Token 成本三刀归因
账单涨了三倍,先切三刀:第一刀输入侧还是输出侧,第二刀各侧内部再切(system 前缀、历史、工具结果、思考 token…),第三刀单价(模型、缓存命中、批处理)。降本动作有完整顺序与代价,四个反直觉的定价事实要记住,成本可观测有最低要求。
也叫:Token 成本 · 成本排查 · 三刀归因 · 账单异动 · 降本 · 批处理
第一刀:输入侧还是输出侧出自 T6-4
这一刀之所以排第一,是因为它决定了后面所有动作的方向,而且判据是一个可以直接算的公式:
单次调用成本 = I × 单价 + O × 单价 × k I=输入token O=输出token k=输出/输入倍数
缓存能省的比例(缓存把输入压到 0.1×):
节省率 = 0.9 · I / (I + k·O)
代入三种典型形态(k=5,Anthropic 口径):
| 形态 | 输入 | 输出 | 缓存节省率 |
|---|---|---|---|
| 长 prompt + 短答案(RAG 问答) | 50K | 2K | 67% |
| 长 prompt + 推理密集(Agent 多轮) | 50K | 20K(含思考) | 27% |
| 短 prompt + 长输出(代码/报告生成) | 2K | 20K | 1.5% |
这张表就是"上了缓存还是没省钱"的全部解释。 它兑现了一条已经冻结的判断:缓存只作用于输入侧被缓存的那一段;如果成本大头在输出或思考 token 上,缓存救不了,这时候正确动作是去看 effort 和输出长度。
所以第一刀的操作很简单:从账单或 trace 里拉出输入 token 总量和输出 token 总量,各自乘上单价,看哪边涨得多。 不要猜,这是一个查询就能出的数。
以上节选自T6-4 Token 成本治理:从账单异动到三刀归因,读全文能看到前后语境。
第二刀:各侧内部再切出自 T6-4
账单涨了 3 倍
│
┌────────────────────┴────────────────────┐
▼ ▼
输入侧涨 输出侧涨
│ │
┌──────┼──────┬──────────┐ ┌────────┼────────┐
▼ ▼ ▼ ▼ ▼ ▼ ▼
工具结果 上下文 缓存命中率 前缀低于 effort 输出 工具
累积 膨胀 塌陷 最小可缓存长度 档位 长度 调用次数
(静默失效) (静默不缓存)输入侧的四个成因,按发现难度从易到难:
- 工具结果累积。最常见,也最容易被低估。工具结果默认是永久居民,成本按剩余轮次复利。一个 4000 token 的返回体在 10 轮会话里被重复计费近 10 次。
- 上下文膨胀。检索条数调大了、few-shot 例子加多了、历史没有压缩。
- 缓存命中率塌陷。这是唯一会静默发生的一类——在缓存前缀里插入任何每次都变的东西(时间戳、随机 ID、用户名)都会让命中率归零,而账单上只表现为"输入侧变贵了"。排查方法是直接看响应里的缓存读取 token 数与创建 token 数的比值。
- 前缀长度低于最小可缓存门槛。截至 2026-08,Anthropic 按模型分四档:512 / 1024 / 2048 / 4096。低于门槛静默不缓存、不报错。 所以"我明明开了缓存"和"缓存真的生效了"是两件事。
输出侧的三个成因:
- effort 档位。这是 2026 年最大的一个隐形开关。官方对它的定位是"行为信号而非硬预算"——它缩放整个响应,包括思考。而 Anthropic 的默认值就是
high。 - 输出长度。
max_tokens设得过大不直接计费,但会让模型倾向于写更长;prompt 里"请详细说明"这类措辞的成本弹性极大。 - 工具调用次数。这条最容易被漏掉,而且它是输出侧影响输入侧的通道——effort 提高会让工具调用次数变多,每一次调用又把工具结果永久留在上下文里。开头那个故障的第 1 条和第 2 条就是这样耦合的。
因此有一条必须写进结论的约束:降 effort 会改变工具调用次数和轨迹,所以任何档位调整都必须重跑轨迹评测,不能只看最终答案。(承接 Q5-05 的轨迹评估与不变量断言)
以上节选自T6-4 Token 成本治理:从账单异动到三刀归因,读全文能看到前后语境。
延伸阅读
考这个知识点的题1 道
会连带问到15 道
- Q1-03temperature 和 top_p 分别在调什么?什么场景调低、什么场景调高?
- Q1-14Prompt 缓存是什么原理?怎么设计 prompt 才能「缓存友好」?
- Q3-02什么时候该用 workflow,什么时候该上 Agent?盲目上 Agent 会踩什么坑?
- Q3-23Agent 每轮都调大模型,太贵太慢,成本和延迟怎么优化?
- Q6-01直接调 API 和自建开源模型推理,这笔账怎么算?
- Q6-03KV Cache 是什么?为什么长上下文推理显存爆炸?
- Q6-05实时语音链路怎么搭?级联 ASR→LLM→TTS 和端到端语音模型的取舍?
- Q6-06什么是 LLM 网关?限流、降级、多模型路由怎么设计?
- Q6-07语义缓存是什么?什么场景省大钱、什么场景会答错话?
- Q6-08模型路由(简单问题走小模型)怎么判断「简单」?
- Q6-10高峰期上游 API 限流了,你的应用怎么优雅降级?
- Q7-01你平时怎么用 AI 写代码?讲一个省了一天的例子和一个翻车的例子
- Q7-02给 AI 编程工具喂上下文有什么讲究?为什么整仓塞进去反而更差?
- Q8-06设计一个代码库问答系统(对着私有仓库问)
- Q8-09你的方案预算砍一半,先砍什么?