Claude Code

Claude Code 的 /compact 真的省 Token 吗?实测

/compact 把会话历史压缩——但 compact 本身要消耗 token,到底回不回本?我对一个 50 万 token 的会话做了 compact 实验,告诉你具体节省。

/compact 是 Claude Code 的会话压缩命令——把当前会话的全部历史压缩成几百字摘要。

听起来很美:长会话里冗余的对话被压掉,后续 input 能 down。但 compact 本身要让模型读全部历史 + 生成摘要——这是要花钱的。

到底是省还是亏?我做了一次实测。

实验设计

我打开一个我之前的真实长会话(修一个 React Router bug,跑了 2 小时多):

  • 当前累计 input:48 万 token
  • 消息总数:87 条
  • 当前 cost(按 Sonnet 计):约 2.1 美元(前面累计的)

/compact,看:

  1. compact 本身花多少
  2. 之后下条消息的 input 降多少
  3. 整体净节省怎么算

/compact 的真实成本

执行 /compact 时模型的工作:

  • 读完整 48 万 token 的会话历史(input)
  • 生成一段 1500 token 的摘要(output)

这一次调用本身的成本:

  • input 48 万 token × 0.3 美元/百万(缓存价)= 0.14 美元
  • output 1500 token × 15 美元/百万 = 0.022 美元

总 0.16 美元。

/compact 之后的状态

compact 完成之后,主线程上下文重置成:

  • 系统提示 + AGENTS.md:约 5K token
  • 1500 token 的摘要
  • 工具列表 + 缓存元数据:约 5K token

新的"基线 input" = 11.5K token(vs 之前的 48 万)。降幅 97.6%。

后续消息节省多少

我接着发了一条简单消息("看下 src/router.tsx 的最新版本"):

Compact 前:input 48.2 万 → cost 0.14 美元 Compact 后:input 1.6 万 → cost 0.005 美元

每条消息省 0.135 美元。

整体回本时间

compact 一次花 0.16 美元,每条消息省 0.135 美元——理论上 2 条消息就回本。

实际上要 5-10 条消息才完全平衡——因为新会话开始要重建一些缓存,前几条消息的"省"不到理论值。

但如果会话已经走完

这是 compact 的反例:如果你 compact 完之后只发了 1-2 条消息就退出了——你净亏0.10 美元。

这就是为什么 compact 不应该"想到就压"——而是看下面要不要继续干很多事再决定。

我自己的 /compact 规则

经过这次实测,我立了三条规则:

1. 单 session 累计 input > 30 万 token,准备压一压

低于 30 万 compact 的边际效用不大,没必要。

2. 跨阶段时 compact

比如你"找完 bug,开始改代码了"——前一阶段的探索过程在改代码阶段没用。

3. compact 之后至少要发 5 条以上消息才值

如果你 compact 完打算退出 session——别 compact,浪费。

/compact 的隐性副作用

实测过程中我发现一个事——compact 后的新会话往往"前情回顾不全"

模型生成的摘要会丢掉某些细节。我有一次 compact 之后接着说"那我们把上面那个方案 A 实施一下"——模型懵了,不知道方案 A 是哪个。

mitigation 简单:compact 之前自己把"关键决策"在最后一条消息里明确写一遍,这样它进摘要的概率高。

真实月节省

如果你每周 compact 5-10 次(跨长会话场景),按上面计算每次净省约 0.5-1 美元:

  • 每周 5 次 → 月节省 10-20 美元
  • 每周 10 次 → 月节省 20-40 美元

这是个值得做的优化——前提是你有长会话。

怎么知道值不值得做

打开 Vibe Usage 看自己 Claude Code 的会话长度分布

  • 如果 p90 累计 input > 30 万 token,compact 是个明显省钱杠杆
  • 如果 p90 < 10 万 token,你根本不需要 compact——会话已经够短

我自己的数据:p90 是 28 万——介于值和不值之间。我有选择性地 compact,月省约 12 美元。比"全程都 compact"或"从不 compact"都聪明。

一个反共识结论

很多教程说"长会话一定要 compact"——这是过简化的。

真正决定 compact 是否值的是接下来还要做多少事。后面没事了,compact 就是亏。后面还有大量交互,compact 立刻回本。

用 Vibe Usage 看自己每周的 compact 节奏,找到平衡点。

相关阅读

相关阅读

Claude Code 的 /compact 真的省 Token 吗?实测