你的 Token 账单其实只看一个数:未缓存输入
总 token 数会骗你。基于 Vibe Usage 真实数据,真正决定 AI 编程账单的不是你烧了多少 token,而是其中多少输入「没被缓存」。这篇教你只盯一个数,把账单看明白。
如果你只想记住一件关于 AI 编程账单的事,记这个:账单不看你烧了多少 token,只看其中有多少输入没被缓存。总量会骗你,未缓存输入不会。这篇用真实数据讲清楚为什么,以及怎么用这一个数管住开销。
先看一个夸张的数
过去 30 天,Vibe Usage 上被缓存命中的输入 token 约 1.33 万亿,而实际按全价计费的输入只有约 1478 亿。缓存的部分是计费部分的九倍多。
缓存输入的单价通常只有普通输入的十分之一左右。所以真实情况是:你界面上看到的「总 token 数」里,绝大部分是廉价的缓存命中,真正掏钱的是那一小块未缓存输入。盯着总数焦虑没意义,盯错地方了。缓存到底怎么回事,我们专门写过 缓存输入 token 是什么。
同样的工作量,账单能差一倍
各工具的缓存命中率差得很离谱:
| 工具 | 缓存命中率 |
|---|---|
| Codex | 约 92% |
| Claude Code | 约 91% |
| OpenCode | 约 67% |
| Gemini CLI | 约 59% |
| Hermes | 约 51% |
Codex 命中率 92%,意味着它的输入只有 8% 按全价算。某个命中率 50% 的工具,等额工作量下未缓存输入是 Codex 的六倍——账单直接翻几倍,而总 token 数看起来可能还差不多。这就是为什么单比「谁 token 多」会得出错误结论,得看 六个工具的缓存命中率实测。
你自己做的哪些事在打掉缓存
缓存是按「前缀是否一致」命中的。下面这些操作会让前缀变掉,缓存失效,未缓存输入飙升:
- 频繁开新 session / 清空上下文重来——最常见的钱坑
- 每轮往 system prompt 或工具列表里塞会变的东西(时间戳、随机 id)
- 挂一堆每次返回不同内容的 MCP,把稳定前缀冲掉
这些操作单看都「没烧很多 token」,但它们专门打在最贵的那部分上。省 token 的真正重点不是少干活,是别亲手把缓存毁掉,更多方向见 真正有效的省 token 方法。
怎么只用一个数管账单
别再看总 token 数了,太粗。每周看一次「未缓存输入」这一个数的趋势:
- 它平稳 → 你用法健康,不用管
- 它某周突然涨而你工作量没变 → 一定有东西在打缓存,去查 session 习惯和 MCP
- 它常年偏高 → 你的工具或配置缓存利用率差,考虑换或调
打开 Vibe Usage 盯住你的未缓存输入——它把缓存命中和未缓存输入分开列,你不用自己算,趋势一眼看得到。我把它当账单的「体温计」:总 token 数随便波动我不慌,只要未缓存输入这条线没异常拉高,账单就稳。
我的结论很硬:99% 关于「AI 编程太贵」的焦虑,都来自盯错了数。把注意力从总量挪到未缓存输入上,省钱这件事会立刻变得可操作。