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,看:
- compact 本身花多少
- 之后下条消息的 input 降多少
- 整体净节省怎么算
/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 节奏,找到平衡点。