Claude Code 开始替你压缩空闲会话了:54 分钟到底省了什么
Claude Code 2.1.299 起,200K+ token 会话空闲约 54 分钟会自动压缩——卡在 1 小时 prompt cache 过期之前。这是成本工程的一步,但压缩是有损的:它到底丢了什么、什么时候该关掉。

用 Claude Code 写代码的老手们,大概都见过这样的场景:你让它处理一个大型重构,上下文一路堆到 20 万 token,然后你去开个会、吃个饭、回两封邮件。回来时对话框还停在那里——模型还在,上下文还在,可你心里隐隐觉得,刚才那笔钱其实已经花了一半。
这周的 Claude Code 更新,正是冲着这个隐形账单来的。
在 2.1.299 到 2.1.302 的连续四个版本里,Anthropic 上线了一个叫 idle compaction(空闲自动压缩) 的功能。规则很简单:一个超过 200K token 的会话,如果空闲大约 54 分钟没有新消息,Claude Code 会在它下一条消息到来之前,自动把整个对话压缩成一份摘要。这不是一个「贴心小功能」,这是一次上下文经济学的重写。
为什么偏偏是 54 分钟?
这个数字选得非常讲究。Claude Code 的 prompt cache 有效期是一小时:同一个前缀的上下文,在一小时内复用时按缓存价计费,过期之后再用就要按全价重新处理。如果你去开 50 分钟的会,回来继续发消息,缓存还在,账单一切正常。但如果你去开一个半小时的会,回来时缓存已经过期,模型要把 200K+ token 的完整上下文重新「读一遍」——按 Opus 5.5 的定价,那一下就是几十美元凭空蒸发。
Idle compaction 就卡在 54 分钟这个时间点:赶在缓存过期之前,先把上下文总结成摘要,让你回来的第一条消息只带着摘要而不是 20 万 token 的原文。省钱的原理就这么直白:摘要比全文便宜得多,而且摘要的缓存重新计时。
自动压缩到底丢了什么?
这才是真正值得较真的问题。压缩不是免费的午餐,它把「对话层」替换成了一份摘要。按照官方文档和发布说明的描述:
CLAUDE.md本身不受影响,压缩后会从磁盘重新读取;- 模型因为
CLAUDE.md指示而读过的文件内容,会被折叠进摘要里,但不再以原文形式存在; - 对话里那些「你其实没让它读、它自己摸过去看」的文件,可能只在摘要里留下一句带过。
换句话说,压缩之后,你的会话从「全知视角」降级成了「听过汇报的视角」。继续聊日常需求没问题,但如果你正在做的事情高度依赖精确的上下文——比如逐行调试一个竞态条件、对照着三份 diff 找回归——压缩后它对某些细节的「记忆」已经是你无法验证的转述了。
Anthropic 给了完整的退出机制:"idleCompaction": false 写进设置就能关掉,/config 里现在也有一个可视化的开关行(2.1.302 新增),压缩完成后弹出的提示会直接告诉你怎么关。阈值也可以调:CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS 能改掉 200K 的触发线(从 2.1.290 起可用)。默认开着,但选择权在你手里。
同批上线的,还有两颗「上下文螺丝」
这周的更新不止空闲压缩。同样值得注意的是 CLAUDE_CODE_DISABLE_FILE_MENTIONS:开启后,你用 @ 引用大文件时,模型只拿到路径而不是全文,由它自己用文件工具按需读取。这解决了一个老大难问题——以前 @ 一个 5000 行的文件,一整份就被塞进上下文,现在改成「先给目录、要看再翻」。另一个是 CLAUDE_CODE_AUTO_MODE_MODEL,指定客户端自动模式分类器用的模型,不影响服务端行为。
把这几件事放在一起看,方向非常一致:2026 年下半年的 coding agent 竞争,已经从「谁的上下文窗口更大」转向「谁的上下文花得更值」。模型厂商不再比拼 1M、2M 窗口的数字,而是开始帮你管账——自动压缩、按需读取、缓存对齐,每一招都是在回答同一个问题:怎么让 20 万 token 只花该花的钱。
先算一笔账:缓存过期到底有多贵?
要理解这个功能为什么重要,得先理解 prompt caching 的计费逻辑。Anthropic 的缓存分三档:cache write(第一次写入缓存)、cache read(命中缓存时读取)、以及缓存过期后的全价重读。对于一个 200K token 的会话,cache read 的价格通常只有全价的零头——这就是为什么「让缓存一直命中」是所有重度用户的基本功:保持会话连续、避免长时间中断、必要时手动 /compact。
但现实是,人总要离开电脑。以前的应对方式有两种:要么回来手动 /compact 一下再继续(但这时缓存可能已经过期,压缩本身也要花一次全价读取),要么干脆 /clear 开新会话(代价是丢失全部上下文,得重新讲一遍需求)。Idle compaction 其实是把第一种做法自动化了,并且把时机提前到了「缓存过期之前」——它解决的不是压缩本身,而是压缩的时机。早 6 分钟压缩和晚 6 分钟压缩,差的可能就是一次 200K token 的全价账单。
这也是为什么阈值设在 200K token 而不是更低:小会话压缩省不了几个钱,还徒增摘要的信息损耗;只有上下文真正贵到值得「抢跑」的时候,自动压缩才划算。这个 200K 的默认值,本身就是一次成本收益权衡的结果——Anthropic 替你算好了盈亏平衡点。
值得观察:压缩提示的「知情权」设计
还有一个容易被忽略的细节:2.1.302 特意让压缩完成后的提示直接告诉你「怎么关掉它」。这个 UX 选择很有意思——Anthropic 明明希望你开着省钱,却坚持把关闭路径放在最显眼的位置。这说明他们自己也清楚,自动替用户做「有损」操作,必须配上充分的知情权。压缩是有损的,摘要再好也不是原文;工具可以默认帮你省钱,但不能悄悄替你决定丢什么。
接下来值得观察的是两件事:第一,Anthropic 会不会把 idle compaction 的经验搬到云端会话和 API 侧——如果云端 agent 也开始自动管账,整个行业的定价模型都可能跟着变;第二,其他厂商会不会跟进类似的「空闲成本管理」,比如 Codex 的云端任务、Copilot 的 agent 会话。谁先让用户「敢一直开着」,谁就拿到了下一轮留存的关键筹码。
给你的三条实操建议
第一,默认开着别动。除非你有明确理由,否则 idle compaction 是在替你省钱,关掉它等于主动选择多付账单。
第二,长任务回来先问一句「你还记得什么」。压缩后的摘要质量通常不错,但涉及精确细节的工作(比如「刚才那个函数的第三个参数是什么」),先让它复述确认,比直接假设它记得更稳。
第三,关键调试会话手动关掉它。如果你正在追一个需要完整堆栈和多文件对照的 bug,在开始前把 idleCompaction 关掉,或者用 /compact 手动控制压缩时机——自己决定什么时候「结账」,总比让它在你开会时替你做决定强。
工具开始替你管账了,这是好事。但账本的主人,还得是你自己。
一个更大的信号:agent 工具进入「成本工程」时代
如果把视线拉远一点,idle compaction 其实是 2026 年 coding agent 竞争转向的一个缩影。上半年大家还在比谁的上下文窗口更大、谁支持的模型更多;到了下半年,战场悄悄变成了成本工程:自动压缩、按需读取、缓存对齐、空闲会话管理——每一项都是在回答「怎么让 token 只花该花的钱」。
这背后有个残酷的现实:agent 越好用,用户越敢给它堆上下文;上下文越长,账单越吓人;账单越吓人,用户越不敢长时间用。厂商如果不主动帮用户管账,增长就会撞上自己的定价天花板。所以你看,Claude Code 这边在做空闲压缩,Codex 那边在做 Daybreak 和沙盒成本优化,Copilot 在做预算过期管理——大家修的都是同一条护城河:让用户敢把 agent 一直开着。
对独立开发者来说,这意味着选型标准要更新了。以前我们问「这个 agent 聪不聪明」,现在还要问「它替我省不省钱」。一个会在你开会时默默把 20 万 token 账单砍掉的工具,和一个只会堆上下文的工具,长期用下来的成本差可能是一个数量级。下次评估 coding agent,不妨把「上下文成本管理」单独列成一行打分项——这可能是 2026 年最被低估的选型维度。
评论 (0)
原始来源
相关文章

GitHub 企业级许可证合规检查 GA:ruleset 合并门禁 + 专供 coding agent 预查包许可证的新 API。合规从「事后审查」转向「事前策略」。

Replit CEO 在 TC Disrupt 宣布 OpenAI 取代 Anthropic 成为 Replit Agent 默认模型:成本、合作、性能三重理由,Claude 仍在菜单上。为什么真正的故事不是「分手」而是「默认位」。

为 Obsidian 而造的开源 Mermaid 转 SVG 渲染器 Pele 登上 HN(460 分):零依赖、gzip 后 230 kB、自称渲染仅需 0.05–0.3 毫秒。最优雅的设计是用 CSS 变量换主题——换色无需重渲染。性能数字均为项目自报、未经独立验证,本文拆解它背后的取舍。