全文约 1800 字,阅读约 6 分钟。
Claude Code 的 token 到底花在哪了?为什么同样的任务,有人花 3 美元,有人花 30 美元?
Anthropic 官方博客发布了一篇「最大化你的 Claude Code 会话价值」,核心信息一句话:别再烧冤枉 token 了。
这篇文章把六条省钱方法逐条拆开,每条说清楚它省的是什么钱、什么时候用、有什么坑。
在讲省钱之前,得先明白 Claude Code 的计费逻辑。不然六条方法看起来就像六个孤立的操作,串不起来。
每次你在 Claude Code 里输入一条指令,背后发生两件事。
第一件叫预填充(prefill)——模型一口气读进你的整个请求,包括系统提示词、CLAUDE.md、你的消息,以及之前对话里积累的一切。这些都是输入 token。
第二件叫解码(decode)——模型一个字一个字往外写,包括它的思考、工具调用和你看到的文字。这些都是输出 token。
关键区别:预填充是并行的,一次性过完 GPU;解码是串行的,每吐一个 token 都要跑一次模型。所以输出 token 比输入 token 贵 5 倍。

根据官方推算,开发者日均消耗 13 美元 token,月均花在 150 到 250 美元之间。这还只是平均水平。
模型单价方面,Opus 5 输入 5 美元/百万 token、输出 25 美元;Sonnet 5 输入 2 美元、输出 10 美元;Haiku 4.5 输入 1 美元、输出 5 美元(根据 Anthropic 官方博客)。
下面六条来自 Anthropic 官方博客,顺序就是官方推荐的优先级。每一条都对应一个具体的浪费场景。
第一条:任务做完就 /clear。修完一个 bug 就清掉当前对话。别让上一个任务读过的文件和命令输出拖进下一个任务里,白白占着上下文。
这条最反直觉——多数人觉得「上下文留着,AI 更了解我在做什么」。但事实是,Claude Code 的每一轮对话都在重新发送前面所有内容。留着上下文,等于每一轮都在为无关的历史买单。
第二条:开局就定好模型和推理强度(effort level)。中途切换的话,之前积累的提示缓存会全部失效,整段对话历史要按全价重新计算一遍。
这条的关键词是「开局」。很多人用 Sonnet 写到一半觉得不够强,切到 Opus——这一刀下去,缓存全没了。
第三条:用 @引用文件,别手打路径。@引用会把文件直接附到消息里,Claude 不用再花一次工具调用去读。如果你只打文件名,Claude 可能先 grep 搜一圈,打开好几个文件试探哪个对。
这些试探操作全部进入对话历史,之后每一轮都带着。
第四条:给输出多的命令加静默参数(quiet flag)。在 CLAUDE.md 里写一句类似 --reporter=dot 的配置,让测试输出只打印几行摘要,不是几百行详情。输出越短,占的上下文越少。
官方博客里给的例子是 npx vitest run <file> --reporter=dot。
第五条:/compact 在休息前做。对话还在缓存里的时候压缩,成本只有正常的十分之一。等你回来缓存过期了再压,就得按全价重新读一遍再压缩。
这条的时机很微妙——不是「需要的时候才压缩」,而是「准备离开的时候顺手压缩」。
第六条:大输出任务扔给子 Agent。子 Agent 在一个独立的上下文窗口里运行,做完只把结论传回来,过程中读的文件和跑的命令输出不会进入你的主对话。
适合「去翻翻日志有什么异常」「帮我过一遍这个大文件」这种活——你只要结论,不要过程。
六条方法里,至少四条和「提示缓存」直接相关。这是 Claude Code 省钱的核心机制,也是最容易被无意间破坏的。
Claude Code 的每次请求都从相同的前缀开始——系统提示词、工具定义、CLAUDE.md 和对话历史。如果这次请求的前缀和上次逐字节一样,服务器就不重新算,直接加载上次的计算结果。
缓存读取只要正常输入价的 0.1 倍——直接省掉 90%。写入缓存贵一点,最高 2 倍,但写入只发生一次,后面每一轮都享受 0.1 倍读取。

假设对话历史有 5 万个 token。不走缓存,每一轮重读这 5 万 token 都得付全价。命中缓存,同样的 5 万 token 只花十分之一的钱。一个会话跑二三十轮,差距是天文数字。
但缓存有个致命弱点:它必须从请求的第一个字节开始连续匹配,中间任何地方变了,从那里往后全部作废。
官方列了六种让缓存失效的情况:/model 切模型、/effort 切推理强度、开关 Fast mode、/compact 压缩对话、时间过期(订阅用户缓存保活 1 小时,API 用户默认 5 分钟)、恢复旧会话。
还有一个隐藏坑:opusplan 模式。每次进出 plan 都切模型——进一次缓存失效一次,出来又失效一次。来回跳的话,每跳一次都是一笔全价 prefill。
缓存帮你把重复发送历史的成本压到十分之一。但有一件事它帮不了:你的历史本身在一轮一轮地膨胀。
每次 Claude 读一个文件,文件内容追加到对话里。每次 Claude 跑一个命令,输出也追加进去。从追加那一轮起,后面每一轮都带着。
第 40 轮对话在重新发送第 1 到 39 轮的全部累积内容。这种增长接近平方级别——O(n²)。

Claude Code 有个兜底机制:命令输出超过 30000 字符就不往对话里塞了,写到一个临时文件里,对话里只放一句摘要。但 30000 以下的输出没人管。
比如一个测试框架跑完,打印 400 行通过记录,每行几十个字符,总量不到 3 万,够不上阈值。于是这 400 行就原封不动地留在对话历史里,后面每一轮都跟着重新发送一遍。这就是第四条「加静默参数」的价值所在。
官方还提了一个冷门但免费的操作:/rewind。如果最后几轮跑偏了,直接砍掉那几轮,前面的缓存完全不动。比 /clear 温和,比 /compact 精准。
不是所有人都需要把这六条刻在桌上。
如果你每天用 Claude Code 超过两小时,或者月 token 账单超过 100 美元(约 ¥720),这六条值得逐条落实。尤其是 /clear 和 @引用文件——这两条零成本,当天就能见效。
如果你只是偶尔用 Claude Code 写个小脚本、改个配置,月花费在 20 美元订阅费以内,那这六条里只有第一条和第三条值得记住——其他几条的收益在低频使用下几乎感知不到。
Anthropic 官方博客里有句话值得放在最后:管 token 正在成为 AI 时代写代码的人的一种新本能——知道你的每一个操作在消耗什么,知道怎么让同样的预算干出更多的活。
同一个任务,花 3 美元还是 30 美元,差距不在模型,在你怎么管上下文。
下次打开 Claude Code 之前,花 30 秒过一遍:
☐ 上一个任务结束了,/clear 了吗?
☐ 模型和 effort level 一开始就定好了吗?
☐ 引用文件用的是 @ 而不是手打路径吗?
☐ 测试命令加了静默参数吗?
☐ 准备休息了,/compact 顺手做了吗?
☐ 大输出任务丢给子 Agent 了吗?
你每月 Claude Code 的 token 账单大概多少?评论区留个数字,看看谁最该看这篇。
#ClaudeCode #省钱技巧 #Token优化 #Anthropic #开发者工具