如何省token? - compact,压缩上下文
Claude Code 省 Token 终极指南:同样干活,3k 和 30k 的差距藏在这些细节里-CSDN博客
Claude Code Token 烧得太快?这8个方案帮你立省90%!前言 token越来越贵了,而且高等级模型消耗的 - 掘金
1. /compact
/compact 到底做了什么?
一句话:/compact 把你的整个对话历史压缩成一份精简摘要,然后用这份摘要替换原来的对话,作为新的起点继续工作。
效果有多明显?一个 15 万 Token 的对话,compact 后通常只剩 3 万到 5 万 Token。压缩率在 60% 到 80% 之间。
Claude Code 用了一天之后响应越来越慢、/cost 里 input 越来越高,不是 Claude 变笨,是 session 历史越堆越长。每一轮对话都要把从 session 开始到现在的所有消息作为 input 重新发一次。叠加前面讲过的 5 分钟 cache 过期,长时间挂着的 session 既贵又慢。
两个续命命令:
/compact:读完整段历史,写成一份摘要替换原来的消息(适合"想继续当前任务")
/clear:完全重置(适合"开新任务")
/clear 是免费的,没什么好说的。关键是 /compact,别当成无脑的"清爽一下"按钮来用。
compact 不是免费操作:Claude 要读完整段历史再写一份总结,这一步本身就要消耗一笔 output(output 单价还比 input 贵)。之后这份摘要要被后续轮次重复利用够多次,前面多付的这笔钱才摊得回来。如果你 compact 完下一秒就切到完全无关的话题,等于白白多付一次费用,还不如直接 /clear。
比较划算的 compact 时机:
历史已经很大(/context 占用明显、响应变慢),再带着它走每轮都在烧钱
当前任务要进入下一阶段,但还想保留前面的结论。比如做完方案调研要进实现、做完实现要进联调,前面的结论摘要一下继续用
compact 后还要连续对话多轮,轮数越多越能摊薄 compact 本身的成本
反过来,这些情况别 compact:
短时间内离开一下(去倒水、开个短会),cache 没过期前历史还能复用
彻底换主题 / 开全新任务 , 直接 /clear,不要 compact
每做完一两轮就 compact 一次 , 预付成本根本摊不回来
一句话:/compact 和 plan mode 一样,是工具不是习惯,别滥用。
| 上下文使用率 | Claude 的表现 |
|---|---|
| 0% - 50% | 正常水平 |
| 50% - 70% | 开始出现细节遗漏 |
| 70% - 85% | 明显忘记早期指令 |
| 85% 以上 | 频繁出错,方向偏离 |
高手的做法是:在上下文使用到 50% 到 60% 时,主动跑一次 /compact。 就像开车不等油灯亮了才去加油,而是看到剩半箱就加。
进阶用法:带指令压缩
这是 /compact 最强大的地方。你可以告诉 Claude,压缩时重点保留什么。
/compact 不是一个出了问题才用的急救命令。它是一个应该融入日常工作流的习惯。
就像程序员经常保存文件、经常提交代码一样,经常 compact 你的上下文,是一个好习惯。
推荐的节奏:每完成一个小任务,compact 一次。每工作 30 分钟,检查一次上下文使用率。上下文超过 50%,主动 compact。
2. 长会话在 20~30 回合主动执行 /compact
当前有 4 个会话超过 20 回合,且都没有压缩点。尤其是 45 回合会话,后续每次交互都可能重复携带早期上下文。
建议在以下时机压缩:
- 完成一个 ticket 后
- 需求边界发生重大变化后
- 开始修改代码前
- 对话达到约 20~30 回合时
压缩摘要应保留:目标、已确认决策、改动文件、测试结果、当前阻塞点和下一步。

浙公网安备 33010602011771号