Claude Code 离开一小时回来对话被「压缩」了:Idle compaction 是什么、条件、怎么关

Claude Code 的 idle compaction 会在你离开约一小时后,把 200K token 以上的长对话先压缩成摘要,下一条消息就不用重新处理整段历史。本文按官方文档讲触发条件、看到什么提示、用 /config 或 idleCompaction 关闭、调阈值,以及恢复旧对话的用量警告。

NNathaniel bigo··原创首发·AI 辅助撰写
10 分钟读完
资料核对于 2026-11-06 · 依据官方文档与公开资料整理 Plus 账号
本文根据 Claude Code 官方文档《Settings reference》《Prompt caching》和更新日志(2.1.299、2.1.302、2.1.304、2.1.314)整理,资料核对于 2026-11-06。配图为本站整理的示意图,不是界面截图。本站(bigolab.com)不是 Anthropic 官方网站。

适用于谁

  • 开着一个很长的 Claude Code 对话去吃饭、开会,回来发现出现了一行「Compacted ...」提示的人;
  • 担心「被自动压缩会不会丢上下文」,或者想知道怎么关掉的人;
  • 用订阅套餐(Pro / Max),在意额度被长对话快速消耗的人。

结论先说

  1. Idle compaction(空闲压缩)默认开启:对话够长、你离开约一小时,Claude Code 会趁提示缓存还没过期,先把它压缩成摘要。你回来发下一条消息时,发出去的是摘要,而不是整段历史。
  2. 它是自动压缩(auto-compact)的一个分支,不是新的删除功能;你能在 /config 里关,或在 settings.json 里写 "idleCompaction": false。
  3. 只有长对话才会触发:默认阈值是 200,000 token,可以用环境变量 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS 改,最低 100000。
  4. 版本要求:设置键需要 Claude Code v2.1.290 或更新;/config 里的 Idle compaction 那一行需要 v2.1.302 或更新。

idle compaction 的触发条件

图:本站根据 Claude Code 官方《Settings reference》 整理的示意图

一、它为什么存在

先要知道一个背景:Claude Code 用「提示缓存」(prompt caching)让重复发送的前缀更省时间和用量,缓存有存活时间(TTL)。官方文档说,缓存过期后,你再发消息就要把整段输入重新算一遍,所以离开一阵再回来的第一轮会明显更慢;更详细的机制见 /guides/claude-prompt-caching。

Idle compaction 做的事是:在缓存还热的时候就把对话压成摘要。官方在更新日志里的说法是,离开约 54 分钟的 200K+ token 对话会在一小时缓存过期前被压缩,这样下一条消息就不用把整段历史重新处理。

二、什么时候会触发

官方 Settings reference 列出,下面这些条件同时满足时默认触发:

  • 会话类型:交互式终端会话、VS Code 扩展的聊天面板,或桌面应用 Code 标签页里在你本机或通过 SSH 运行的会话;
  • 自动压缩已开启:autoCompactEnabled 为开。官方还写明,如果你把自动压缩关了,空闲压缩也一起关;
  • 提示缓存是一小时 TTL:官方说明,不另外设置时,只有在 Claude 订阅套餐包含的用量额度内,Claude Code 才会请求一小时的缓存;超过套餐额度开始使用额外用量(usage credits)后,主对话会降到五分钟 TTL。API Key 或云厂商用户可用 promptCacheTtl 自己选一小时;
  • 长度:上下文达到阈值,默认 200,000 token;
  • 空闲时间:距离上一次请求约一小时,并且这期间你的电脑一直没休眠。

时间线上:终端版 2.1.299 加入,随后 2.1.302 增加了 /config 开关,VS Code 与桌面版在 2.1.314 加入,之后还扩展到关了遥测的订阅用户,以及 Bedrock、Vertex、Foundry 和 LLM 网关在启用一小时缓存的情形。

三、压缩之后你会看到什么

不同位置的提示不一样:

  • 终端:一行以 Compacted while idle, before the prompt cache expired 开头的提示;
  • VS Code 聊天面板:包含 a summary written while you were away 的提示;
  • 桌面应用:同样的提示,放在标有 Claude Code notice 的行里;看不到这一行时,官方建议切到 Verbose 视图模式。

VS Code 和桌面版的完整提示类似「Compacted using a summary written while you were away」,后面跟着如何关闭的说明。官方说你不需要做任何事。

压缩本身的细节、摘要里保留什么,见 /guides/claude-code-context-compact。

四、怎么关闭

三种方式,效果一样:

  1. 终端里:运行 /config,改 Idle compaction 这一行。官方说明选择会保存到用户设置并立即生效;
  2. 改 settings.json:写入
json
{
  "idleCompaction": false
}

放在 ~/.claude/settings.json(会话运行所在的那台机器或 WSL 里),或其他设置文件,设置文件的层级见 /guides/claude-code-settings-json;

  1. 临时覆盖:环境变量 DISABLE_AUTO_COMPACT 会把自动压缩和空闲压缩一起关掉。

如果 /config 里看不到那一行,官方列的原因有两个:托管设置、--settings 参数或项目 / 本地设置文件里已经设置了这个键,会覆盖你的用户设置,要去那个来源改;或者在 v2.1.314 之前,如果 Claude Code 取不到 Anthropic 的功能开关(feature flags),空闲压缩根本不会运行,也就没什么可关。早于 v2.1.290 的版本不认这个键,需要关掉 autoCompactEnabled 才能停止它。

五、调整阈值

默认 200,000 token。如果你想让更短的对话也被压缩,在设置里加:

json
{
  "env": {
    "CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"
  }
}

官方说低于 100000 的值会被抬到 100000。官方的举例是:在 200K 上下文窗口的对话里,自动压缩会在接近 200,000 之前发生,所以把阈值降到 150,000 后这些对话才算够条件。

六、关于额度与恢复旧对话的警告

  • 官方的费用文档提醒:会话回顾(session recap)和空闲压缩在你离开时也可能消耗 token;
  • 订阅用户还有一个相关的新提示:从 2.1.304 起,在 Pro 和 Max 套餐上,恢复一个已不活跃的对话如果会用掉你 5 小时用量限额中可观的一部分,会给出警告,让你选择仍然恢复,或开启新对话,并在你提到之前的对话时让 Claude 去查。恢复旧会话的基本做法见 /guides/claude-code-resume-history。

要不要关 idle compaction

图:本站根据 Claude Code 官方《Settings reference》 整理的示意图

七、该不该关

官方没有给「应该关」的建议,只说默认开启。可以这样判断:

  • 经常离开又回来、对话很长,并且不想回来第一轮就把整段历史重新算一遍——保持默认;
  • 希望对话里的每个细节都原样保留、不想被摘要替代——可以关,同时手动在任务间隙用 /compact 选择压缩的时机;
  • 用量紧张时,选套餐可以参考 /guides/claude-code-pro-max-or-api,订阅入口见 /chongzhi/claude-code,价格以官方页面当前显示为准。

常见问题

Q:对话没满 200K,为什么没压缩?

默认阈值是 200,000 token,另外还要满足离开约一小时、缓存是一小时 TTL 等条件。

Q:压缩后能撤销吗?

官方文档没有给出撤销空闲压缩的操作;想回到更早的节点,可以看 /guides/claude-code-rewind-checkpoints-undo 里的回退方式是否适用。

Q:VS Code 里也有吗?

有,从 2.1.314 起,VS Code 的聊天面板和桌面应用 Code 标签页都支持,见 /guides/claude-code-vscode。

参考资料

  • Claude Code 文档:Settings reference(idleCompaction)— https://code.claude.com/docs/en/settings-reference
  • Claude Code 文档:Prompt caching — https://code.claude.com/docs/en/prompt-caching
  • Claude Code 文档:Changelog — https://code.claude.com/docs/en/changelog

Nathaniel 的更多内容

  1. 01

    Claude Personal Finance 是什么:连银行账户问花销、怎么开、只读权限、谁能用、怎么解除

    Claude 的 Personal Finance(beta)通过 Plaid 只读连接你的银行、信用卡、贷款和投资账户,在一页里看余额和花销并用自然语言提问。本文按官方帮助页讲谁能用(仅美国、Pro/Max/Ultra)、连接与解除步骤、Claude 能看什么,以及它做不到的事。

    Claude0
  2. 02

    ChatGPT Computer History 是什么:Mac 桌面端的活动记忆怎么开、怎么暂停和清除、谁能用

    Computer History 是 ChatGPT macOS 桌面应用里默认关闭的可选功能,把你在应用和网站里的活动整理成记忆和时间线,供 ChatGPT 与 Codex 引用。本文按官方文档讲怎么开、记录什么不记录什么、怎么暂停与清除、数据存哪、谁能用,以及提示注入风险。

    ChatGPTCodex0
  3. 03

    Codex 输入框出现灰色建议:Composer predictions 是什么、Tab 接受、怎么关、谁能用

    Codex 桌面 App 的 Composer predictions(beta)会在 Codex 回完后,根据当前对话在输入框里给出下一条消息的建议,按 Tab 接受、不会自动发送。本文按官方帮助页讲谁能用、哪些线程支持、怎么关、算不算额度,以及没出现时怎么查。

    ChatGPTCodex0
  4. 04

    ChatGPT 隐私中心(Privacy Center)在哪里:隐私设置入口、三大分类和哪些套餐有

    ChatGPT 的 Privacy Center 把记忆、广告、位置、临时对话、锁定对话、两步验证、模型改进、数据导出和删号等入口集中到一页。本文按官方帮助页讲怎么打开、三大分类各有什么、哪些套餐有,以及它不会替你改任何设置。

    ChatGPT0
  5. 05

    Claude Code 处理大仓库:怎么让它只看需要的目录(子目录 CLAUDE.md、claudeMdExcludes、deny 规则)

    仓库太大,Claude Code 总在读无关文件、读进别的包的规则?本文按官方大仓库指南讲:从哪个目录启动、子目录 CLAUDE.md、claudeMdExcludes、Read 的 deny 规则、worktree.sparsePaths、additionalDirectories,以及一份合并后的配置示例。

    Claude0
  6. 06

    Claude Code 在 CI 里跑:从本机 claude -p 到 GitHub Actions 的完整例子(自动审 PR、控成本)

    一条线走完 Claude Code 的 CI 用法:先在本机用 claude --bare -p 配 --json-schema 跑通,再写进 GitHub Actions 用 claude-code-action@v1 自动审 PR,最后加上 --max-turns、超时、并发限制来控成本,并附上常见故障的排查顺序。

    Claude0

同产品的其他教程

  1. 01

    Claude Code 自定义 subagent 实例:测试员、调试员、只读调研员、只读数据库员怎么写

    四个可直接改的 subagent 实例:跑测试的 test-runner、找根因的 debugger、只读调研员、用 PreToolUse hook 限成只读 SQL 的 db-reader;讲 tools、disallowedTools、model、maxTurns 怎么配,怎么点名调用。

    Claude0
  2. 02

    Claude Code 的 CLAUDE.md 模板:前端、后端、数据分析各一份,附拆分与自检方法

    直接拿去改的三份 CLAUDE.md 模板(前端、后端、数据分析),每份都控制在官方建议的 200 行以内;再讲怎么用 .claude/rules 的 paths 拆出专属规则、用 @ 导入长文档,以及用 /context all 和 /doctor prompt-audit 检查是否生效。

    Claude0
  3. 03

    Claude Code 自己写一个插件并发布到 marketplace:plugin.json、marketplace.json、validate 到团队安装的完整流程

    想把自己写的 Skill、Hook 打包给团队用?按 Claude Code 官方 Plugins 文档,从目录结构、plugin.json、claude plugin validate,到写 marketplace.json、推到 Git、让同事一条命令安装,再到版本更新,走完一遍完整流程。

    Claude0
  4. 04

    Claude Code 写一个会自动触发的 Skill:从需求到触发,用 description、when_to_use 和 paths 控制它什么时候出场

    写好的 Skill 总是不触发,或者什么都触发?本文按 Claude Code 官方「Extend Claude with skills」走一遍完整实例:把「改数据库迁移前先检查」写成一个会自动出场的 Skill,包含 description、when_to_use、paths、附带脚本、触发测试和评估。

    Claude0
  5. 05

    Claude Code 配 Sentry MCP 排查线上报错:添加命令、浏览器授权、贴 issue 链接修 bug 和插件子智能体

    线上报错只能手动复制堆栈给 Claude Code?Sentry 官方提供 MCP 服务,可以让它直接读 issue、堆栈和 trace。本文按 Claude Code 官方 MCP 文档和 Sentry MCP 官方说明,讲添加命令、/mcp 授权、典型排查流程、插件方式和自托管注意事项。

    Claude0
  6. 06

    Claude Code 配 Context7 MCP 查最新文档:两种安装方式、use context7 怎么写、指定库和版本

    Claude Code 写出来的代码用了旧版 API?Context7 是一个把库的最新文档喂给编程助手的 MCP 服务。本文按 Context7 官方仓库和文档,讲两种安装方式、在 Claude Code 里的添加命令、use context7 与 library ID 的写法,以及使用时的注意事项。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~