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 后按量花的钱,哪个少。

四、一个自查清单

下次觉得烧得快,先对这八项:

  1. /usage 看一眼:用量大头是输入、缓存读取还是输出?
  2. 当前会话多少回合了?超过 30 回合还没 /compact 过,先压一次。
  3. 是不是全程 Opus?日常任务切回 Sonnet。
  4. 有没有反复改口、返工?先定方案再动工。
  5. 是不是一个 agent 跑全流程?拆成短任务并行。
  6. 上下文里有没有整库、整本 PDF?只给相关文件。
  7. 输出是不是太啰嗦?要求只给改动部分,思考强度按需调低。
  8. 撞线的话,撞的是 5 小时、周额度还是模型专属额度?对号入座再处理。

省 token 不是抠门,是把每一分钱花在真正产生新代码、新结论的地方。重读历史的钱能省八成,返工的钱能省一半,模型选对档又省一半——三笔账加起来,同一个任务,花费常常能差出 3 到 5 倍。先算账,再动手,账单自己会瘦下来。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐