全球程序员都在浪费 token 白送钱,Anthropic 分享 Claude Code 六大省钱技巧

发布于

就在刚刚,Anthropic 发了一篇博客。核心信息就是:**各位,别再烧冤枉 token 了,我们都看不下去了!**

![](http://pic.zhso.org/2026/08/15/a00c979bbe10.png)

为此,官方详细列举了六条省钱心法,先贴为敬:

1. **任务做完就 /clear。** 修完一个 bug 就清掉当前对话,别让上一个任务读过的文件和命令输出拖进下一个任务里,白白占着上下文。

2. **开局就定好模型和推理强度(effort level)。** 中途切换的话,之前积累的提示缓存会全部失效,整段对话历史要按全价重新计算一遍。

3. **用 @引用文件,别手打路径。** 用 @直接把文件附到消息里,Claude 不用再花一次工具调用去读。如果你只打文件名,Claude 可能先搜一圈再打开好几个文件试探,这些操作全部会进入对话历史,之后每一轮都带着。

4. **给输出多的命令加静默参数(quiet flag)。** 在 [CLAUDE.md](https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions) 里写一句类似--reporter=dot 的配置,让测试输出只打印几行摘要,不是几百行详情。输出越短,占的上下文越少。

5. **/compact 在休息前做。** 对话还在缓存里的时候压缩,成本只有正常的十分之一。等你回来缓存过期了再压,就得按全价重新读一遍再压缩。

6. **大输出任务扔给子 Agent。** 子 Agent 在一个独立的上下文窗口里运行,做完只把结论传回来,过程中读的文件和跑的命令输出不会进入你的主对话。

![](http://pic.zhso.org/2026/08/15/b915ce4cb592.png)

### 一个 token 的前世今生

用 Claude Code 干活,API 按量走,订阅制月费从 20 美元到 200 美元分三档。

根据官方推算,开发者日均消耗 13 美元 token,月均花在 150 到 250 美元之间。

这还只是平均水平。同样修一个 bug,问法不同,花费能差出好几倍。

而且每一轮对话都在拖着前面所有轮的全部内容重新发送,会话越长,每一轮就越贵。

这些钱花在哪,得从 token 的计价逻辑说起。

![](http://pic.zhso.org/2026/08/15/6cad56cfebe5.png)

每次你在 Claude Code 里输入一条指令,背后发生两件事。

第一件叫**预填充(prefill)**,也就是模型一口气读进你的整个请求,包括系统提示词、[CLAUDE.md](https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions)、你的消息,以及之前对话里积累的一切。这些都是输入 token。

第二件叫**解码(decode)**,也就是模型一个字一个字往外写的过程,包括它的思考、工具调用和你最终看到的文字。这些都是输出 token。

关键区别在这里。

预填充是**并行**的,一次性把所有输入 token 过一遍 GPU。解码是**串行**的,每吐一个 token 都要跑一次模型。200 个 token 的回复,就是 200 次独立运算。

所以也就不难理解,为什么输出 token 要比输入 token 贵 **5 倍了**。

![](http://pic.zhso.org/2026/08/15/d9934c0c9855.png)

在这个基础上,最终账单取决于两件事。

第一是模型,决定每个 token 的单价。
- Opus 5,输入 5 美元 / 百万 token,输出 25 美元。
- Sonnet 5,输入 2 美元,输出 10 美元。
- Haiku 4.5,输入 1 美元,输出 5 美元。

第二是推理强度,决定 token 的数量。

一个会话里大部分输出 token 都是思考 token,推理强度控制的就是这个量。推理强度越高,模型想得越久,输出的思考 token 越多。max 和 low 之间能差好几倍。

简单活用 Sonnet,硬骨头才上 Opus。牛刀杀鸡的钱,花得最冤。

![](http://pic.zhso.org/2026/08/15/6b35f1b28bb8.png)

### 提示缓存,是最大的省钱利器

token 定价里还有一个巨大的变量,就是**缓存**。

Claude Code 的每次请求都从相同的前缀开始,也就是系统提示词、工具定义、[CLAUDE.md](https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions) 和对话历史。

如果这次请求的前缀和上次逐字节一样,服务器就不重新算,直接加载上次的计算结果。

缓存读取只要正常输入价的 **0.1 倍**,直接省掉 90%。

写入缓存贵一点,最高 2 倍。但写入只发生一次,后面每一轮都享受 0.1 倍读取。

举个例子。

假设你的对话历史有 5 万个 token。不走缓存的话,每一轮光是重读这 5 万 token 就得付全价。但只要命中缓存,同样的 5 万 token 只需要花十分之一的钱。

一个会话跑二三十轮,缓存命中攒下来的折扣是天文数字。

这是你最大的薅羊毛杠杆。

![](http://pic.zhso.org/2026/08/15/77d50fe90b2b.png)

但缓存有个致命弱点。它必须从请求的第一个字节开始连续匹配,中间任何地方变了,从那里往后全部作废。

具体来说,一共有六种情况:

1. **/model 切模型:** 每个模型的缓存独立。从 Sonnet 切到 Opus,整个对话历史按 Opus 的价格重新预填充,没有折扣。
2. **/effort 切推理强度:** 推理强度也是 cache key 的一部分,切换之后整个对话历史都要重新计算。
3. **开关 Fast mode:** 效果和前两种一样,缓存直接失效。
4. **/compact 压缩对话:** 对话被重写成摘要,原来的内容全部对不上,旧缓存直接作废。
5. **时间过期:** 订阅用户的缓存保活 1 小时,API 用户默认 5 分钟。超时后下一轮全量重算。
6. **恢复旧会话:** 隔了太久缓存早就没了,几乎 100% 要全价重新计算。

坏消息是,只要中一个就意味着整个对话历史从 0.1 倍打回原价。

好消息是,当你知道什么会让缓存失效时,就能知道怎么保住它。

比如,会话开头就锁定模型和推理强度,全程不切。不在缓存还热的时候做 / compact,等到准备休息的时候再跑。

这里,还有个隐藏坑。

opusplan 模式**每次进出 plan 都切模型。** 进一次,缓存失效一次。出来,又失效一次。来回跳的话,每跳一次都是一笔全价 prefill。

### 你的会话,正在偷偷变胖

缓存帮你把重复发送历史的成本压到十分之一。

但有一件事它帮不了。你的历史本身在一轮一轮地膨胀。

每次 Claude 读一个文件,文件内容追加到对话里。每次 Claude 跑一个命令,输出也追加进去。从追加那一轮起,后面每一轮都带着。

第 40 轮对话在重新发送第 1 到 39 轮的全部累积内容。

这种增长,是接近平方级别的 **O(n²)**。

![](http://pic.zhso.org/2026/08/15/8330f8d7cbbb.png)

CC laude Code 有个兜底机制。

命令输出超过 30000 字符,就不往对话里塞了,而是写到一个临时文件里,对话里只放一句摘要。但 30000 以下的输出没人管。

比如一个测试框架跑完,打印 400 行通过记录,每行几十个字符,总量不到 3 万,够不上这个阈值。

于是这 400 行就原封不动地留在了对话历史里,后面每一轮都跟着重新发送一遍。

对此,Anthropic 博客里给了几招很实用的瘦身方法。

1. **@引用文件。**
不要手动输入路径让 Claude 自己去找。@引用会把文件直接附到消息里,省掉一次读取操作。

2. **给 noisy 命令加 quiet flag。**
在 [CLAUDE.md](https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions) 里写一句「run tests with npx vitest run <file> --reporter=dot」,以后每次跑测试只输出几行点状结果,不是几百行详情。一分钟的配置,以后每个会话省几百行上下文。

3. **subagent 隔离大输出任务。**
subagent 在自己独立的上下文窗口里跑,做完只传答案回来,过程中读的文件和命令输出全部丢弃。适合「去翻翻日志有什么异常」「帮我过一遍这个大文件」这种活。你只要结论,不要过程。

4. **/clear 切任务。**
修完一个 bug 就 / clear,开始下一件事。上一个 bug 的文件、命令输出、中间探索,全部和下一个任务无关,但如果不清,它们在后面每一轮都占着位置、吃着 token。

不想彻底清空的话,/compact 可以把对话压成摘要。一万到两万个 token 能压到一千到三千。

![](http://pic.zhso.org/2026/08/15/0839ad9857de.png)

此外,博客里还提了一个冷门但免费的操作,**/rewind**。
如果最后几轮跑偏了,/rewind 直接砍掉那几轮,前面的缓存完全不动。

### 管 token,也是一种开发者素养

上面这些操作拆完,你会发现一个规律。写代码的人正在长出一套新技能。

跟框架和语言没关系,而是知道该选什么模型、怎么管上下文、怎么保住缓存、推理强度开多高合适。

这些能力一年前并不存在。但它现在却决定了你在同一个任务上,是花 3 美元还是 30 美元。

Anthropic 自己就是最好的例子。

他们 80% 的代码靠 AI 写,代码合并量一年翻了 8 倍,基准测试加速 52 倍。AI 用到这个强度,如果没人管 token,光推理成本就能把预算吃穿。

从这个角度看,与其说这篇博客讲的是省钱技巧,不如说是 AI 时代写代码的人需要长出来的一种新本能 ——

知道你的每一个操作在消耗什么,知道怎么让同样的预算干出更多的活。

读懂它的人,薅到的不只是几美元的 token。

### 参考资料
- [https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions](https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions)

---

原文链接:[点击查看](https://www.ithome.com/0/990/072.htm)

评论

暂无评论。

0.059052s