Claude Code 账单爆炸?先算清三笔账,再谈怎么省
Claude Code 用着用着,额度先见底了——这几乎是每个重度用户都撞过的墙。有人第一反应是升级套餐,有人换便宜模型,有人干脆少用。但在掏钱之前,先把账算清楚:钱到底花在哪了?一位用户 11 月 6 日贴出的实测拆解很能说明问题:他一个 subagent 跑了 79 回合,总用量约 1190 万 token,其中 1168 万是 cache 读取——也就是反复重读前面已经发过的对话历史;而模型真正新写出来的内容,只有约 5.4 万 token。
换句话说,账单的大头不是模型写了多少代码,而是你让它把旧对话读了多少遍。 不搞清这个,换什么套餐都治标不治本。这篇文章先把三笔账算明白,再给六个能直接落地的方法。
一、三笔账:输入、缓存、输出
Claude Code 的每一回合,账单都由三部分组成,价格逻辑完全不同。
第一笔:输入。 每发一次消息,都要把整段对话历史再发一遍。系统提示、之前读过的文件、工具返回的结果、你提过的每一句话,全都在内。对话越长,每回合的输入量越大。那位 79 回合的 agent,平均每回合要重读约 14.8 万 token——回合数一多,输入费用是指数级往上爬的。
第二笔:缓存。 好消息是,重读历史可以走缓存价。Anthropic 的规则是:缓存写入按 1.25 倍输入价(5 分钟有效期;1 小时有效期是 2 倍),缓存读取只要 0.1 倍。也就是说,同一段历史第一次写进缓存要贵 25%,之后每次重读只要一折。写一次、读两次就回本:1.25 + 0.1 = 1.35,不到两次不缓存的价格(2.0)。缓存只对 1024 token 以上的前缀生效,太短的对话享受不到。
第三笔:输出。 模型新写的内容,包括正文和思考过程,按输出价计费,而且输出无法缓存。以 Sonnet 5.5 为例,输入 $2/百万 token,输出 $10/百万 token——输出单价是输入的 5 倍。写得多、想得久,输出这笔账就压不住。
拿一个具体场景算给你看。假设你的会话上下文稳定在 10 万 token,用 Sonnet 5.5 跑 20 回合:
- 不开缓存:每回合输入 10 万 token × $2/百万 = $0.20,20 回合就是 $4.00,这还只是输入部分。
- 开缓存:第一次写入 10 万 token × $2.50/百万 = $0.25;之后 19 回合每次读缓存,10 万 × $0.20/百万 = $0.02,合计 $0.38。输入总成本 $0.63。
同样的 20 回合,$4.00 和 $0.63,差了八成多。省钱的第一性原理就在这里:别为同一段历史反复付全价。
二、六个方法:从最见效的开始
1. 模型按任务分档,别全程上 Opus
Opus 5.5 输入 $4/百万、输出 $20/百万,Sonnet 5.5 是 $2/$10,正好贵一倍。Sonnet 能处理绝大多数写代码的工作——实现功能、修 bug、写测试、重构;Opus 留给真正需要判断力的活:复杂架构决策、多步推理、数学计算。日常任务默认 Sonnet,卡住再切 Opus,一句话的事,账单直接打对折。
在 Claude Code 里用 /model 就能切换,不用退出重进。更彻底的做法是把分工写进规则,让不同任务自动走不同模型。
2. 长会话及时压缩,换任务就新开
对话历史是最大的隐性成本,控制它有两个命令:
/compact:对话太长时手动压缩,保留关键结论,丢掉中间过程。压缩本身也要花一点 token,但比起之后每回合重读几十万 token,划算得多。/clear:换任务直接新开会话。旧会话留着不删,每回合还在为它付缓存读取的钱。开新会话前,把要点写进一个交接文件(比如handoff.md),新会话读它就行,比整个旧对话便宜得多。
想看自己的用量构成,在 Claude Code 里输入 /usage,能看到会话用量、套餐用量上限和各类活动的占比;网页端在 claude.ai 的 Settings > Usage 里看 5 小时窗口和每周额度的进度条。先看构成,再决定省哪。
3. 先定方案再动工,返工是最贵的消费
79 回合的案例里还有一个教训:那位用户同一份内容反复改了好几轮,一天就用掉当周额度约一半。模型返工一次,前面所有的历史重读、重新生成都要再付一次钱。
做法很简单:名称、文案写法、版面、接口形状这类容易改口的东西,先用一句话确认,或者按已经写好的规则做,确认完再整批做。需求没想全也别一句一句往里塞——agent 还没做到那一块时,先在主对话记下来,收齐后一次交代。每一句单独发过去,都是一次唤醒加一次全量重读。
把这两条写进 Claude Code 的全局规则文件 ~/.claude/CLAUDE.md,每个新会话都会自动载入。规则文件本身要精简,控制在 200 行以内——它自己也是每回合都要重读的上下文。
4. 长工作拆成短 agent 并行
一个 agent 包办需求、实现、测试、部署全流程,对话会越跑越长,每回合重读的量也越来越大。拆开就不一样:修代码、补数据、验收分给不同的 agent 并行跑,每个 agent 的对话都短,每回合要重读的内容也少。
但注意一个边界:并行 subagent 每个都是独立的上下文,同时开很多个,消耗是叠加的。拆,是为了让单个对话变短;无节制地多开,反而把总量推上去。三到四个并行是比较稳的区间,超过这个数先想想能不能合并。
5. 缩小上下文:只给它需要看的东西
很多人习惯把整个仓库、整本 PDF 一股脑塞给模型。这是最直白的浪费:
- 指名道姓给文件和函数名,少让模型自己全库搜索。搜索本身要读大量文件,读到的每一行都计费。
- PDF 先转纯文本再喂进去,别直接扔原始文件。转换后的文本通常只有原体积的几分之一。
- 工具返回的大段日志、测试输出,用完就及时
/compact,别让它在历史里躺一整天。
原则就一句:上下文是按 token 论斤卖的,给多少,花多少。
6. 控制输出和思考强度
输出单价最高,又无法缓存,所以要从源头节流:
- 明确说“只改动的部分”“不要重复贴完整文件”,让模型少写废话。
- 不需要深度思考的任务,用
/effort low把思考强度降下来——思考 token 也按输出价计费。 - 审查环节让模型只输出结论和差异点,而不是把全文再复述一遍。
这三条看着琐碎,但输出一旦占到总量的三成以上,它们省下来的钱比缓存还多。
三、额度撞线了怎么办
就算用法再省,重度用户还是会撞线。先分清撞的是哪道闸,处理方法完全不同:
- 5 小时会话额度:从第一条消息开始算,5 小时后整体重置。等到提示里写的时间就行,换模型没用。
- 每周额度:在账号固定的时间每周重置一次,具体时间在 Settings > Usage 里看。
- 某个模型系列的额度(比如提示
You've hit your Opus limit):用/model换到别的系列可以继续。
撞线后的选择,按成本从低到高:等重置($0)、开启用量额度 usage credits(撞线后按 API 标准价继续用,在 Claude Code 里运行 /usage-credits 设置)、升级套餐、或者把 Claude Code 切到 API Key 上走按量计费——订阅额度和 API 按量是两套账,切到 Key 上就不占订阅的 5 小时限制和周额度,适合周额度用完又不想停工的时候。切 Key 的方法是把 ANTHROPIC_AUTH_TOKEN 和新的 Base URL 写进 settings.json;想切回订阅,删掉这两行再 claude login 就行。
订阅档位本身也可以对照一下:Pro $20/月、Max $100/月、Ultra $200/月,周额度分别是 Pro 的 1 倍、5 倍、10 倍。如果每个月都撞周额度,先算一笔账:升级多花的钱,和切到 API 后按量花的钱,哪个少。
四、一个自查清单
下次觉得烧得快,先对这八项:
/usage看一眼:用量大头是输入、缓存读取还是输出?- 当前会话多少回合了?超过 30 回合还没
/compact过,先压一次。 - 是不是全程 Opus?日常任务切回 Sonnet。
- 有没有反复改口、返工?先定方案再动工。
- 是不是一个 agent 跑全流程?拆成短任务并行。
- 上下文里有没有整库、整本 PDF?只给相关文件。
- 输出是不是太啰嗦?要求只给改动部分,思考强度按需调低。
- 撞线的话,撞的是 5 小时、周额度还是模型专属额度?对号入座再处理。
省 token 不是抠门,是把每一分钱花在真正产生新代码、新结论的地方。重读历史的钱能省八成,返工的钱能省一半,模型选对档又省一半——三笔账加起来,同一个任务,花费常常能差出 3 到 5 倍。先算账,再动手,账单自己会瘦下来。
更多推荐



所有评论(0)