Claude Code 的 /compact 该定期手动执行吗——从官方规格确定按下的时机
不少人按 Claude Code 的 /compact 时依据的是“每 30 分钟一次”“上下文超过 70% 就按”这类规则,但官方文档推荐的既不是时钟也不是百分比,而是工作的断点——“在工作的自然断点处运行 /compact,例如在任务与任务之间,而不是等自动压缩在任务中途触发”。本文以 2026 年 8 月 8 日的 Claude Code 官方文档(当时最新版 v2.1.226)为一手资料,从规格出发把“该不该手动压缩”这件事讲透。首先是机制:压缩分三层运转——①丢弃旧的工具输出、②自动压缩、③你按下的手动 /compact。②与③是同一套处理,因此自己按下换来的只有两样东西:挑选时机,以及指定保留什么。按得更勤并不会额外省出上下文。接着用一张表说明什么会留下:项目根目录的 CLAUDE.md 与自动记忆会从磁盘重新注入,而带 paths: 的规则和子目录里的 CLAUDE.md 要等匹配的文件被重新读取才回来,调用过的技能正文则受每个技能 5,000 token、合计 25,000 token 的上限约束,超出部分从旧到新丢弃,截断时保留文件开头。关于费用:一次压缩的价格不由上下文的大小决定,而由提示词缓存是否温热决定——工作中途按,前缀从缓存里读,很便宜;在超过缓存存活时间(订阅套餐 1 小时,API 密钥默认 5 分钟)的休息之后按,则要把整段历史当作未缓存输入重新处理,是这条命令最贵的时刻。此外还涵盖 /compact、/clear、/rewind、/recap、/context 的取舍,v2.1.221 起用 /autocompact 把自动触发点在 100K 到 1M token 之间移动的方法与四个设置来源的优先级,只有环境变量接受纯整数(写成 500k 会被读成 500 并被钳到 100K)这个坑,以及 Not enough messages to compact. 与 Autocompact is thrashing 这两条消息的含义和恢复步骤。