Claude Code /compact:释放上下文,不丢进度
什么是 /compact
用 Claude Code 的时候,你可能遇到过这样的情况:
- 聊了一阵子之后,Claude Code 开始”忘事”,明明刚才讨论过的内容它好像不记得了
- 让它改一个文件,它改错了位置,或者重复做了之前已经做过的事
- 感觉响应变慢了,Claude Code 似乎在处理大量信息
这些现象背后的原因都一样:上下文窗口快满了。
这就是 /compact 命令的用武之地。
/compact 是 Claude Code 的一个斜杠命令,用来压缩当前对话历史,释放上下文空间。它会把冗长的对话总结成精简的摘要,同时保留关键信息,让 Claude Code 重新”轻装上阵”。

先理解上下文窗口
要理解 /compact,先得知道上下文窗口是什么。
上下文窗口就像 Claude Code 的”工作记忆”——一个有限大小的空间,装着当前对话的所有信息:
- 对话历史 —— 你说过的每句话,Claude Code 的每个回复
- 文件内容 —— Claude Code 读过的每一个文件
- 命令输出 —— 执行过的每条命令的结果
- 系统信息 —— CLAUDE.md、auto memory、加载的 skills 等
随着对话进行,这些内容不断累积。一次 debug 会话可能读几十个文件、跑几十条命令,轻松产生数万个 token。
当上下文快满的时候,问题就来了:
- Claude Code 可能”忘记”对话早期的指令
- 推理质量可能下降,容易犯一些低级错误
- 不相关的旧内容会干扰当前任务的判断
上下文窗口是 Claude Code 最核心的资源,管理好它直接决定了使用体验。
怎么用
基本用法
在 Claude Code 交互模式下输入:
/compact
Claude Code 会自动总结当前对话,将冗长的历史压缩成精简的摘要。压缩后,关键的代码修改、文件状态和重要决策会被保留,而过程中的细节(比如中间的调试输出、已经解决的问题讨论)会被精简掉。
带聚焦指令
/compact 支持一个可选参数——聚焦指令,告诉 Claude Code 在压缩时重点保留什么:
/compact 聚焦 API 相关的改动
/compact 保留所有修改过的文件列表和测试命令
/compact 只关注认证模块的重构进展
这个参数非常有用。默认压缩时,Claude Code 会自己判断什么重要什么不重要。但如果你知道接下来要做什么,给一个明确的聚焦方向能确保关键信息不被丢掉。
局部压缩
如果你只想压缩对话的一部分,而不是全部,可以用 Esc + Esc 或 /rewind,选择一个消息节点,然后选择 Summarize from here。这会从那个节点开始压缩后续的消息,同时保留之前的上下文完整不动。
自动压缩 vs 手动压缩
Claude Code 有两种压缩机制:
自动压缩
当对话接近上下文上限时,Claude Code 会自动触发压缩。它会:
- 先清除较早的工具输出
- 如果还不够,再总结整个对话历史
- 保留你的请求和关键代码片段
自动压缩是一个兜底机制——你不用担心上下文爆了会怎样,Claude Code 会自己处理。
手动压缩(/compact)
但等到自动压缩触发,往往意味着上下文已经很满了,性能可能已经受影响了一段时间。
主动用 /compact 的好处是:你可以在问题出现之前就解决它。
| 自动压缩 | 手动 /compact | |
|---|---|---|
| 触发时机 | 接近上下文上限时 | 你随时可以触发 |
| 可控性 | Claude Code 自行决定保留什么 | 你可以指定聚焦方向 |
| 预防性 | 被动响应 | 主动管理 |
| 适用场景 | 兜底保障 | 精细控制 |
什么时候该用
任务切换时
你刚完成一个功能开发,准备开始做另一件不相关的事。之前的对话历史对新任务没什么帮助,反而占着上下文空间。
/compact 保留项目的整体架构理解,清理掉登录功能的开发细节
长时间调试后
debug 过程中会读大量文件、跑大量命令,产生很多中间输出。问题解决后,这些中间过程就不重要了。
/compact 保留最终的修复方案和修改的文件列表
读了大量文件后
让 Claude Code 探索一个不熟悉的代码库,它可能读了几十个文件。这些文件内容占了大量上下文,但你只需要它记住关键结论。
/compact 保留代码库的架构总结和关键文件路径
感觉 Claude Code 开始犯错时
如果 Claude Code 开始忘东西、重复操作、或者明显偏离你的指令,很可能是上下文太满了。这时候 /compact 能立竿见影。
实际使用技巧
技巧一:用 /context 监控上下文用量
在压缩之前,先用 /context 看看当前上下文的使用情况:
/context
它会用一个彩色网格可视化显示上下文用量,还会给出优化建议。比如告诉你哪些 MCP 工具占用了大量空间、是否有上下文膨胀的问题。
先看,再决定要不要压缩、怎么压缩。
技巧二:在 CLAUDE.md 里定义压缩策略
如果你有固定的压缩偏好,可以在 CLAUDE.md 里加一段 Compact Instructions:
# Compact Instructions
When compacting, always preserve:
- The full list of modified files
- All test commands that have been used
- Key architectural decisions made during the session
这样不管是自动压缩还是手动 /compact,Claude Code 都会按照这些指令来决定保留什么。
技巧三:用 /btw 问不占上下文的小问题
有时候你只是想快速确认一个小问题,但又不想让它占用上下文空间。用 /btw 代替正常提问:
/btw 那个配置文件叫什么名字来着?
/btw 的回答会显示在一个临时浮层里,不会进入对话历史,也就不会占用上下文。
技巧四:善用子代理分流探索任务
如果你需要 Claude Code 去探索一大片代码库,考虑让它用子代理(subagent)来做:
用子代理去调查认证模块的实现方式
子代理有自己独立的上下文窗口,探索完后只返回一个摘要到你的主对话中。这样既拿到了信息,又不会把主上下文撑爆。
/compact vs /clear vs /rewind
这三个命令都和对话管理有关,但作用完全不同:
| /compact | /clear | /rewind | |
|---|---|---|---|
| 做了什么 | 压缩对话历史为摘要 | 彻底清空对话,从零开始 | 回退到某个历史节点 |
| 保留信息 | 保留关键信息的摘要 | 什么都不保留 | 完整保留回退点之前的所有内容 |
| 代码状态 | 不影响代码 | 不影响代码 | 可以同时回退代码改动 |
| 适用场景 | 对话太长,需要减负 | 换一个完全不相关的任务 | 某次操作搞砸了,想回到之前 |
| 类比 | 整理笔记,精简要点 | 翻到新的一页 | 按 Ctrl+Z 撤销 |
我的经验:
- 同一任务内对话太长 →
/compact,保留关键上下文继续干 - 要做一个完全不相关的新任务 →
/clear,干干净净重新开始 - Claude Code 改错了代码或走错了方向 →
/rewind,回退到正确的节点重来 - 快速问个小问题 →
/btw,完全不占上下文
写在最后
/compact 是一个看起来不起眼但直接影响 Claude Code 使用体验的命令。它解决的问题很本质:上下文窗口是有限的,但你的工作需求是无限的。
长对话中 Claude Code 表现下降,往往不是模型能力的问题,而是上下文管理的问题。就像一个再聪明的人,桌子上堆满了无关的文件,也很难专注当前的任务。
/compact 就是帮你整理桌面的工具——把不需要的文件归档,把重要的留在手边,让 Claude Code 重新集中注意力。
下次用 Claude Code 聊到一半感觉它”不太对劲”的时候,先别急着重开对话,试试 /compact。很多时候,一次压缩就能让它重新”清醒”过来。
相关推荐
AI-first 创业公司,为什么只需要一种编程语言?
技术架构越简单 = AI Coding 效率越高。从 Java 的"防人"设计到 TypeScript 全栈通吃,聊聊 AI 时代创业公司的编程语言选择。
cc-ping:一行命令 Ping 所有 Claude Code 配置
用多个 Claude Code API Key 或中继?cc-ping 帮你管理配置、一键切换,还能并行 Ping 所有节点比速度。
震惊!程序员用这个工具,4分钟干完95分钟的活!效率暴涨24倍
躺床上发3条消息,4分钟搞定3个项目。传统方式需要95分钟,这就是冷兵器和热兵器的差距。
CCBot - 研发提效 24 倍
通过 IM 机器人控制 Claude Code,3 个项目 4 分钟全部搞定。传统编程需要 95 分钟,效率提升 24 倍。
Claude Code /add-dir:被低估的 Monorepo 神器
Claude Code 默认只能看到当前目录。/add-dir 打破这个限制——分享我每天跨 5 个仓库使用的经验。
Claude Code 省 Token 小技巧:感叹号的妙用
一个简单却容易被忽略的技巧——用感叹号直接执行命令,省 token、提速度、更可控。
我做了个机器人,让团队在飞书里用 Claude Code
CCBot 让你的团队在飞书群聊里直接用 Claude Code——不需要终端、不需要 SSH。开源、自部署、五分钟搞定。
Claude Code /btw 命令详解:不打扰主线的快问快答
详细介绍 Claude Code 的 /btw 命令——它是什么、怎么用、什么时候该用,以及它和子代理、/compact 的区别。
Claude Code /config:一文搞懂所有可调设置
用 Claude Code 却从没打开过 /config?这篇带你逐项拆解——从权限模式到自动压缩,从主题切换到通知配置,帮你打造最顺手的 AI 编程环境。
Claude Code /context:你的上下文都被什么吃了?
对话到一半 Claude Code 说上下文不够了?/context 用一张可视化网格告诉你:上下文被什么占了、占了多少、怎么优化。
Claude Code /diff:这次对话改了什么,一目了然
Claude Code 帮你改了一堆文件,但你不确定到底改了什么?/diff 用交互式界面展示所有改动——既有 git 视角的全量 diff,也有按对话轮次拆分的逐步 diff。
Claude Code /fast:同样的 Opus,两倍速——值不值?
/fast 不会降级模型,还是 Opus,只是更快。什么时候该开、什么时候该关,以及实际体验差异。
Claude Code 引用外部知识的最佳实践:GitHub MCP + Context7
用 GitHub MCP 和 Context7 MCP 两个工具组合,解决 Claude Code 知识过时导致的代码错误问题。
Claude Code /hooks:让 AI 按你的规矩办事
想在 Claude Code 执行命令前自动检查?想在任务完成后自动通知?/hooks 让你用脚本、AI 甚至 HTTP 请求,在关键节点插入自定义逻辑。
Claude Code /init:10 秒自动生成 CLAUDE.md
别再手写 CLAUDE.md 了。看看 /init 自动生成的效果、怎么自定义输出,以及一个让 Claude Code 效率翻倍的小技巧。
Claude Code MCP:让 AI 连接 GitHub、数据库等一切工具
MCP 把 Claude Code 从代码阅读器升级为全栈 Agent。哪些 MCP 服务器值得装、配置怎么写,实测分享。
Claude Code /memory 详解:让 AI 真正记住你的项目
详细介绍 Claude Code 的 /memory 命令和记忆系统——CLAUDE.md 手动指令、Auto Memory 自动记忆、模块化规则,让 Claude 跨会话记住项目规范和个人偏好。
Claude Code /model:Opus、Sonnet、Haiku 怎么选?
不是每个任务都需要 Opus。怎么切换模型、哪个场景用哪个、怎么省 token 又不掉质量。
Claude Code /permissions:谁能干什么,你说了算
每次 Claude Code 要跑命令都弹窗问你?嫌烦又不敢全放开?/permissions 帮你精细控制每个工具的权限——该放的放,该拦的拦。
Claude Code /plan 详解:先想清楚再动手
详细介绍 Claude Code 的 /plan 命令和 Plan Mode——只读规划模式,让 Claude 先分析代码、制定方案,确认后再动手,避免复杂任务翻车。
Claude Code + Playwright MCP:AI 终于能"看见"页面了
一个 Modal 溢出的 bug,Claude Code 反复修了 5 次都没搞定。直到接入 Playwright MCP 让它真正看到页面,一次定位,一次修复。
Claude Code /resume 命令详解:别让对话白聊
详细介绍 Claude Code 的 /resume 命令——恢复历史对话、管理会话、实用技巧,让你的每一轮对话都不浪费。
Claude Code /review:让 AI 帮你做 Code Review
提了 PR 没人看?想在合并前多一道把关?/review 让 Claude Code 像一个资深开发者一样审查你的代码——还有 /ultrareview 和 /security-review 两个进阶选择。
Claude Code Skills 详解:打造你的专属命令库
详细介绍 Claude Code 的 Skills 功能——创建自定义斜杠命令、复用提示词模板、共享团队最佳实践,让 AI 编程更高效更一致。
Claude Code /stats:看看 AI 到底帮你写了多少代码
好奇 Claude Code 到底写了多少行代码?/stats 给你完整数据——token、编辑次数、工具调用,教你怎么看。
Claude Code /status 命令详解:一眼看清会话全貌
详细介绍 Claude Code 的 /status 命令——它是什么、怎么用、能看到哪些信息,以及它在日常工作流中的实际价值。
Claude Code /tasks 命令详解:后台任务尽在掌控
详细介绍 Claude Code 的 /tasks 命令——查看后台任务、管理并行 Agent、掌控长时间运行的进程,让多任务开发井井有条。
Claude Code /usage 命令详解:你的额度还剩多少
详细介绍 Claude Code 的 /usage 命令——查看用量、了解限额、避免突然被限速,让你对自己的额度心中有数。
Claude Code /vim:在 AI 编程助手里用 Vim 键位
习惯了 Vim 的操作方式?/vim 让你在 Claude Code 的输入框里用 hjkl 移动、dd 删行、ciw 替换单词——不用改变肌肉记忆。
Claude Code 使用指南:从安装到实战,一篇就够(2026)
用了半年 Claude Code 的经验总结——5 分钟安装配置、最常用的命令、CLAUDE.md 编写技巧,以及没人告诉你的实战心得。
Claude 全家桶:从聊天到写代码到自动办公,一文讲清楚
一篇文章带你了解 Anthropic 的 Claude 全家桶——Claude.ai、Claude Code、Claude Cowork,以及 Opus、Sonnet、Haiku 三大模型家族。
Claude Code /agents 详解:自定义 AI 子代理,各司其职
详细介绍 Claude Code 的 /agents 命令——查看、管理和创建自定义 Agent,让不同任务由专门的 AI 角色来执行,从代码探索到架构规划各司其职。
Claude Code /doctor 详解:一键诊断你的开发环境
详细介绍 Claude Code 的 /doctor 命令——自动检测安装状态、API 连接、MCP 配置、上下文用量等问题,帮你快速定位和修复环境故障。
Claude Code /effort 详解:控制 AI 思考的深度
详细介绍 Claude Code 的 /effort 命令——调节 Claude 的推理努力程度,在速度和质量之间找到最佳平衡点,让每一次对话都恰到好处。
Claude Code /cost 详解:你的 AI 编程到底花了多少钱
详细介绍 Claude Code 的 /cost 命令——实时查看会话 API 成本,了解各模型定价和 Token 消耗明细,让每一分钱都花得明明白白。
Claude Code /export 详解:把 AI 对话带走
详细介绍 Claude Code 的 /export 命令——将对话导出为文件或复制到剪贴板,方便分享、存档和复盘,让每一次有价值的对话都不浪费。
Claude Code /rewind 详解:AI 改错了?一键回退
详细介绍 Claude Code 的 /rewind 命令——将代码和对话回退到任意历史节点,支持只回退代码、只回退对话、或两者同时回退,是你和 AI 协作时的后悔药。
Claude Code /plugin 详解:给你的 AI 编程助手装插件
详细介绍 Claude Code 的 /plugin 命令——管理插件的安装、启用、禁用和更新,通过插件扩展 Claude Code 的命令、技能、Agent 和 Hook,打造你专属的 AI 编程工具链。
Claude Code /theme 详解:给你的终端换个好看的皮肤
详细介绍 Claude Code 的 /theme 命令——6 种预设主题 + 自动模式,支持深色/浅色、色盲友好、ANSI 兼容,60+ 色值覆盖终端全部 UI 元素。
Claude Code /insights 详解:用 AI 分析你自己用 AI 的方式
详细介绍 Claude Code 的 /insights 命令——五阶段数据分析流水线、七大洞察章节、多维度会话统计,用 Claude Opus 生成专属 HTML 使用报告。
Claude Code /rename 详解:给你的会话取个有意义的名字
详细介绍 Claude Code 的 /rename 命令——手动命名、AI 自动生成(Haiku 模型)、启动参数命名、Plan 模式自动命名,以及双标题系统与 Bridge 同步机制。
Claude Code settings.json 详解(一):配置文件在哪里、谁说了算
全面介绍 Claude Code 的配置文件体系——五个配置来源的路径、优先级规则、数组合并与单值覆盖的区别、企业管理设置的多种下发方式。
Claude Code settings.json 详解(二):permissions 权限系统全解析
深入解析 Claude Code 的 permissions 配置——allow/deny/ask 三类规则、通配符语法、MCP 工具权限、defaultMode 各模式含义,以及 additionalDirectories 的作用。
Claude Code settings.json 详解(三):hooks 钩子全解析
深入解析 Claude Code 的 hooks 配置——四种钩子类型、核心事件(PreToolUse/PostToolUse/Stop/Notification)、stdin/stdout 协议、exit code 语义,以及实用配置示例。
Claude Code settings.json 详解(四):env、模型、认证与其他实用字段
全面介绍 Claude Code settings.json 中的 env 环境变量注入、模型配置、身份认证辅助、Git 提交署名、会话清理、语言与界面、思考深度、自动更新、记忆系统等实用字段。
Claude Code Agent Loop:拆解 AI 编程助手的心脏
Claude Code 是怎么一步步理解你的需求、调用工具、自我修复的?从源码角度拆解 Agent Loop 的核心架构——流式响应、并行工具执行、自动压缩、错误恢复,一次讲透。