---
title: "Claude Code 闲置压缩：离开 54 分钟后对话为何自动压缩，3 种设置方法"
description: "Claude Code 2.1.299（10 月 14 日）新增闲置压缩：20 万 token 以上的对话闲置约 54 分钟会先压缩，避开 1 小时缓存过期。讲清原理、费用差别，以及何时该关掉。"
url: https://cdnping.org/blog/claude-code-idle-compaction-prompt-cache
language: zh-CN
published: 2026-10-19
category: "AI 概念"
tags: ["Claude Code","提示缓存","自动压缩","额度","更新解读"]
source: cdnping.org
license: Free to quote and summarize with a link to the url above.
---
# Claude Code 闲置压缩：离开 54 分钟后对话为何自动压缩，3 种设置方法

Claude Code idle compaction（闲置压缩）是 2026 年 10 月 14 日发布的 2.1.299 版加入的终端功能：一个 20 万 token 以上的对话如果闲置约 54 分钟，会在 1 小时提示缓存过期之前先被压缩，这样你回来发下一条消息时，不用把整段对话重新处理一遍。它默认开启，可以用环境变量调阈值，也可以在设置里关掉。以下内容截至 2026 年 10 月，来自 [Claude Code 官方更新日志](https://code.claude.com/docs/en/changelog)，细节以官方文档为准。cdnping 是免费的网络观测站，文中的站内链接只是延伸阅读。

## 闲置压缩到底做了什么？

更新日志对 2.1.299 的描述是：200K+ token 的对话闲置约 54 分钟后，会在一小时的提示缓存过期前被压缩。

要理解这个设计，得先知道提示缓存的作用。每次发消息，Claude Code 都会把整段对话作为上下文发给模型。缓存命中时，这些前缀按较低的“缓存读取”价格计费，也更快；缓存过期后，下一条消息要把整段上下文重新写入缓存，按更贵的“缓存写入”价格处理。对话越长，这笔重新处理的成本越高。

所以逻辑是：反正缓存快过期了，与其让你回来后为 20 万以上的 token 重付一次，不如趁缓存还在，先压缩成摘要，之后的对话基于小得多的上下文继续。代价是细节会在摘要里丢失，这一点后面会讲。

## 缓存读写差多少？

以 [Anthropic 官方模型发布页](https://www.anthropic.com/claude-opus-5-5)列出的价格为例（每百万 token，具体数字以官方价格页当前显示为准）：

| 项目 | 价格 |
| --- | --- |
| 输入 | $4 |
| 缓存写入 | $5 |
| 缓存读取 | $0.20 |

这只是一个例子：该页面没有把缓存写入拆成 5 分钟和 1 小时两档，1 小时缓存的单价请以官方价格页为准。

按这几个数字粗算：一个 20 万 token 的上下文，缓存命中时读取约 $0.04；缓存失效后按页面列出的缓存写入价重新写入约 $1（1 小时缓存的写入价可能不同）。相差约 25 倍。订阅用户看的是额度而不是美元，额度的具体折算以官方说明为准，但长会话缓存失效后第一条消息通常更耗额度，原因大致在这里。缓存的标记与账单核对可参考我们的 [Claude prompt caching 怎么用才省钱](/blog/claude-prompt-caching-save-cost)。

## 怎么调整或关闭？

更新日志给出了三种方式：

1. 改阈值：设置环境变量 `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS`，改变默认的 20 万 token 下限。例如 `export CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS=150000`（数值只是示例）。
2. 关闭：在 settings.json 里写 `"idleCompaction": false`。
3. 菜单开关：2.1.302 在 `/config` 里加了闲置压缩的开关，具体选项名称以你本机界面为准。

更新日志注明，阈值变量和 `idleCompaction` 设置都要求 v2.1.290 或更高版本；闲置压缩本身随 2.1.299 加入，先用 `claude --version` 看看自己的版本。

## 什么情况该关掉？

闲置压缩不是在所有场景都划算，可以按下面的清单判断：

| 情况 | 建议 |
| --- | --- |
| 长会话，午休、开会后继续同一个任务 | 保持开启，省的是整段重处理 |
| 对话里有大量需要逐字保留的内容（日志、精确的报错、长段代码） | 考虑关闭，或者自己先把关键信息写进 CLAUDE.md 或文件 |
| 对话没到 20 万 token | 不触发，不用管 |
| 经常离开几分钟就回来 | 影响不大，没到 54 分钟 |

压缩是有损的，摘要不可能保留每个细节。如果你回来后发现模型“忘了”某个约定，先检查是不是被压缩了，再把约定补一句或写进项目文件。

## 同期更新里还有哪些相关改动？

- 2.1.300：OpenTelemetry 的 `api_request` 事件新增 `cache_creation_5m_tokens` 和 `cache_creation_1h_tokens`，把缓存写入按 5 分钟和 1 小时两种寿命拆开统计。自己做用量监控的团队可以据此看到长缓存写了多少。
- 2.1.301：切换到上下文窗口更小的模型时，如果对话对新模型太长，会先由原模型总结。

所以换到小窗口模型时，可能会触发一次总结，这次总结也是一次模型调用。

## 压缩了之后还会遇到别的问题吗？

压缩只解决“缓存过期后重新处理”的成本，不影响服务端的状态。如果回来后遇到过载或限流，另见 [Claude Code 529 Overloaded 与空闲压缩的配置](/blog/claude-code-529-overloaded-retry-idle-compaction)；怀疑是服务本身的问题，可以在 [/status/anthropic](/status/anthropic) 看 Anthropic API 入口的探测结果。觉得响应慢的话，[Claude Code 慢怎么办](/blog/claude-code-slow-response-fix)有一套判断方法；想了解额度怎么计，看 [Claude Max 5x 和 20x 的区别](/blog/claude-max-plan-5x-20x-claude-code)。

模型价格和缓存规则会变，我们的 [/changes](/changes) 页面会记录官方更新日志和价格页的增删，也有 RSS 可以订阅。

## 参考来源

- [Claude Code 更新日志（2.1.299 至 2.1.302）](https://code.claude.com/docs/en/changelog)
- [Anthropic 模型发布页（价格与缓存价格）](https://www.anthropic.com/claude-opus-5-5)
