已核对 · 2026-10-19 · Claude Code 2.1.299 空闲自动压缩

Claude Code 空闲自动压缩:触发条件、阈值与关闭方法

想关掉空闲自动压缩:在 settings.json 写 "idleCompaction": false(这个键要 2.1.290 及以上),或用 /config 里的 Idle compaction 一行。空闲自动压缩是 Claude Code 2.1.299(2026-10-14 发布)加入的默认行为:上下文达到 token 阈值(默认 200,000)的会话,最后一次请求后空闲约 54 分钟且电脑没休眠,就会在提示缓存过期前被压缩;回到会话时界面显示 `Compacted while idle, before the prompt cache expired`,下一条消息发出去的是摘要而不是整段对话。截至 2026-10-19,npm 上 latest 是 2.1.303(2026-10-18 发布)。

更新于 2026-10-19

一把 Key 调用 Claude、GPT 与主流国产模型,按 token 计费,几分钟上手。

#默认行为#空闲判定#token 阈值#一行关掉

触发条件、阈值与关闭方法

开启条件

2.1.299 起的默认行为

官方写明:满足条件的会话默认开启空闲压缩,键名是 `idleCompaction`,默认 true,作用范围是 Any file。

空闲判定

空闲多久才算触发

空闲判定是最后一次请求之后过去约 54 分钟,且那一刻电脑醒着;上下文要达到 token 阈值,默认 200,000,可用环境变量 `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` 改,低于 100000 会被抬到 100000。

触发前提

官方列的触发前提

触发前提是交互式终端会话、对话在 1 小时提示缓存有效期上、客户端能取到功能开关、上下文已达阈值、空闲够久且电脑没休眠。

关掉它

官方给的几种关法

settings.json 写 "idleCompaction": false(2.1.290 及以上);更早的版本改 autoCompactEnabled: false;环境变量 `DISABLE_AUTO_COMPACT=1` 会把空闲压缩与接近上限时的自动压缩一起关,手动 /compact 仍可用。2.1.302 起 /config 里也有 Idle compaction 一行。

空闲自动压缩到底做了什么

它把一段你已经走开的对话换成摘要,原来的缓存前缀不再被复用。官方写明:空闲压缩发生在提示缓存过期之前,压缩之后你的下一条消息发的是摘要而不是整段对话。官方的另一处说明是:压缩会建一个新的缓存前缀,而 /rewind 是回到一个已经缓存过的前缀。缓存写入与缓存读取分开记账,各按自己的单价计;不同有效期档位的缓存写入单价差别见 /prompt-caching-cost-2026 那页。

官方 changelog 与文档现况(2026-10-19 核对)

截至 2026-10-19 核对 Claude Code 官方 changelog、设置参考与环境变量页:2.1.299(2026-10-14 发布)加入终端侧的空闲自动压缩,并带来可改阈值的 `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS`;2.1.302(2026-10-16 发布)给 /config 加了 Idle compaction 一行,空闲压缩之后的提示会说明怎么关;npm 上 latest 是 2.1.303(2026-10-18 发布)。

版本与日期

2026-10-14

Claude Code 2.1.299 发布,changelog 写明加入终端侧的空闲自动压缩:从这一版起,满足条件的会话会被自动压缩。

2026-10-16

Claude Code 2.1.302 发布,changelog 写明给 /config 加了 Idle compaction 一行,空闲压缩之后的提示会说明怎么关。

2026-10-19

截至 2026-10-19,npm 上的 latest 是 2.1.303(2026-10-18 发布),设置参考里的开关与触发条件没有变化。

官方写明的与官方未公布的

已确认(官方页逐字可核)

① 满足条件的会话默认开启空闲压缩;② 空闲判定是最后一次请求之后约 54 分钟,且那一刻电脑醒着;③ 上下文达到 token 阈值才适用,默认 200,000;④ 阈值低于 100000 会被抬到 100000;⑤ 更早的版本会忽略这个键,官方让改用 autoCompactEnabled;⑥ 压缩之后界面会有一条说明压缩发生在缓存过期之前的提示;⑦ 压缩会建新的缓存前缀,而 /rewind 回到已经缓存过的前缀;⑧ 提示缓存的有效期分五分钟档与 1 小时档,一小时档的缓存写入单价更高

官方尚未公布的部分

官方文档没有写明:空闲压缩对缓存计费金额的具体影响;空闲判定会不会随版本调整;以及在满足条件的会话上,它与接近上限时的自动压缩谁先发生。设置参考只分别写了两者的开关与条件,没有给出先后顺序。

留着默认还是关掉

留着默认

默认就是这样:满足条件的会话会被压缩,回来时界面有一条提示说明压缩发生在缓存过期之前,下一条消息发的是摘要。阈值可以按 `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` 调。条件本身也由缓存档位决定:官方 TTL 表写明,用量额度、API key 与云服务这一栏主会话默认是五分钟档,此时一小时缓存的条件不成立(想要一小时主会话缓存,需自己把 promptCacheTtl 设成 1h)。

关掉它

四种关法见上面那条:settings.json 里的开关、更早版本的 autoCompactEnabled、连自动压缩一起关的环境变量,以及 /config 里的开关行。关掉之后那段对话会一直留着,直到你手动 /compact 或上下文接近上限。

排查空闲压缩的顺序

① 先看版本:"idleCompaction" 这个键 2.1.290 起才认。② 确认是不是它:界面里那条说压缩发生在缓存过期之前的提示,才是空闲压缩的标记,手动 /compact 是另一回事。③ 对条件:交互式终端会话、一小时缓存有效期、上下文到阈值、空闲够久且电脑没休眠,都齐了才会触发。④ 想关:settings.json 里的空闲压缩开关,或者 /config 里的 Idle compaction 一行。⑤ 调阈值:`CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` 只接受正整数,低于 100000 会被抬到 100000。

用 QCode 的 Key 接 Claude Code

按 QCode 文档《环境变量配置》原文:ANTHROPIC_BASE_URL 填到 /api 前缀为止(https://api.qcode.cc/api),密钥放在 ANTHROPIC_AUTH_TOKEN(cr_ 开头,Claude Code 会把它作为 Bearer 令牌发出),只认 ANTHROPIC_API_KEY 的工具填同一把密钥也能用。QCode.cc 是预付制:先充值,再买套餐或按量包,购买款从余额里扣;并发 5,可用模型与个人套餐一致;按 token 计费,各模型单价见 /models。不想包月?按量包 ¥25 起买一笔额度,7–90 天内用完为止(人民币充值 ¥100 起)。

常见问题

空闲自动压缩是哪个版本加进来的?

2.1.299。官方 changelog 在这一版写明加入终端侧的空闲自动压缩,同一版带来可改阈值的 `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS`。npm 的 dist-tags 里 stable 通道还指向 2.1.292,通过 stable 装的人此刻可能还没有这个行为;latest 是 2.1.303(2026-10-18 发布)。

为什么回来一看少了一段上下文?

多半是空闲自动压缩:官方写明压缩后你的下一条消息发的是摘要而不是整段对话。触发的前提是交互式终端会话、上下文到阈值、空闲够久且电脑没休眠。手动 /compact 也会把对话换成摘要。

怎么关掉?

在 settings.json 里写 "idleCompaction": false 就能关;更早的版本改 autoCompactEnabled: false。环境变量 `DISABLE_AUTO_COMPACT=1` 会把空闲压缩与接近上限时的自动压缩一起关掉,手动 /compact 仍然可用。

会影响计费吗?

会影响缓存的读写方式:官方写明压缩会建一个新的缓存前缀,而 /rewind 是回到一个已经缓存过的前缀;提示缓存按 cache_creation_input_tokens 与 cache_read_input_tokens 分别记账,前者按缓存写入单价、后者按缓存读取单价。各模型的缓存单价见 /prompt-caching-cost-2026 那页。

用 API key 接入时为什么没触发空闲压缩?

官方 TTL 表写明:用量额度、API key 与云服务这一栏,主会话的缓存有效期是五分钟档;而空闲压缩的条件之一是对话在一小时提示缓存有效期上,所以用 API key 接入时这一条条件往往不成立。要一小时的主会话缓存,官方要求自己把 promptCacheTtl 指定成 1h(需要 2.1.242 及以上)。

官方最近改了什么?

/config 里多了一行 Idle compaction,可以随时把空闲压缩关掉再打开;changelog 还写明,空闲压缩之后给出的提示会说明怎么关掉它。其余机制没变:阈值、空闲判定与缓存有效期这些条件仍然是官方写明的。

信息来源

官方口径:Claude Code 官方 changelog(raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md,2026-10-19 抓取核对)、官方设置参考、官方环境变量页与官方提示缓存页(code.claude.com/docs/en,2026-10-19 抓取核对),以及 npm 上 @anthropic-ai/claude-code 的发布记录(registry.npmjs.org,2026-10-19 抓取核对:2.1.299 发布于 2026-10-14)。QCode 侧:docs.qcode.cc 的《环境变量配置》与《接入点与 API 格式》(2026-10-19 抓取核对),以及 qcode.cc 的按量包页(五语版本,2026-10-19 抓取核对)。

按量包跑 Claude Code

不想包月?按量包 ¥25 起买一笔额度,7–90 天内用完为止(人民币充值 ¥100 起)。

不确定从哪开始?

先试一周

周包 ¥25($30 额度,7 天)

每天都用

体验版 ¥60/月,比月包每 $1 约便宜一半(每天 $5 额度)