Claude Code 上下文管理:/clear 与 /compact 的区别及其他命令
如何管理 Claude Code 的上下文窗口。/clear 与 /compact 的真正区别,以及 /context、/rewind、自动压缩和跨越所有重置仍然存活的记忆文件。

两个命令承担了核心工作。/clear 以空窗口开启全新对话。/compact 将当前对话压缩成摘要,然后继续运行。Claude Code 中其他所有上下文命令,要么是用来查看窗口里填充了什么,要么是在出错时用来恢复状态的。
这就是整张地图。真正的技巧在于,在指示器变红之前就知道自己需要哪一个。
如果你想先了解基础知识,这里有关于上下文窗口到底是什么的说明。本文是操作者版本:哪个命令、什么时候用、代价是什么。
什么实际上在填充你的上下文窗口
填充窗口的不只是你的聊天记录。Claude Code 会将文件读取、项目 CLAUDE.md、记忆条目、调用的技能体、MCP 工具定义、hook 输出以及对话本身都塞进窗口。
运行 /context(或 /context all)查看详情。它会按类别绘制一个彩色的 token 使用量网格,并给出优化提示和容量警告。
这就是为什么这一点很重要。如果你的 MCP 服务器和技能定义在你还没打一个字之前就吃掉了窗口的一半,压缩对话几乎帮不上什么忙。在决定如何削减之前,你必须知道什么是重的。

/clear 与 /compact,唯一重要的分叉点
/clear 会遗忘。/compact 会记住摘要。
/clear 以空上下文窗口开启全新对话。你之前的聊天不会被销毁,仍可通过 /resume 找回。
使用 /clear <name> 传入名称,为新会话打上标签。项目 CLAUDE.md 和记忆会从磁盘重新加载到新会话中。
/compact 让你保持在同一会话中。它将迄今为止的一切总结成一个精简的基线,然后从那里继续。根据 Claude Code 官方文档,这就是两者的区别:clear 用于新任务,compact 用于在当前任务中释放 token。
默认应该用 /clear。它比把一个任务积累的噪音拖入下一个任务更快、更干净。Claude Code 团队对此强烈赞同。Claude Code 团队的 @trq212 写道:"停止使用 COMPACT,用 /clear",他将团队工作方式与社区工作方式之间的差距,主要归结为各自清除会话的频率。
Medium 作者 Mubashar 得出了同样的规则:"默认用 clear,在需要连续性时才用 compact。"
Clear 会遗忘。Compact 记住摘要。知道自己需要哪一个,就是全部技巧所在。
想在设计实践中运用 AI? Brainy 帮助设计师在不失去工艺的前提下做到这一点。看看我们正在为创作者构建什么。
如何引导压缩
/compact 接受自由文本指令。好好利用它们。
单纯的 /compact 让 Claude 自己决定什么重要。/compact focus on the auth bug 或 /compact keep the database schema 则告诉它要保护什么。有引导的摘要远比通用摘要可靠得多。
这一点很重要,因为压缩本质上是有损的。盲目压缩可能会丢掉你需要的细节,这就是为什么交接往往比清理更好:把你需要的内容导出到一个 markdown 文件,运行 /clear,然后让新会话指向那个文件。
对于大多数同任务工作,有针对性的 /compact 就足够了。对于不能承受细节丢失的关键交接,先把内容写下来。

压缩后什么留存,什么悄然消失
有些东西会在摘要之后被重新注入。其他的则消失,直到你再次触发它们。
| 内容 | /compact 之后 |
|---|---|
| 系统提示和输出风格 | 重新注入(它们从未存在于消息历史中) |
| 项目根目录 CLAUDE.md 和无作用域规则 | 重新注入 |
| 自动记忆条目 | 重新注入 |
| 调用的技能体 | 重新注入 |
| 路径限定规则(带 paths 过滤器的规则) | 丢失,直到再次读取匹配文件 |
| 子目录中的嵌套 CLAUDE.md | 丢失,直到再次读取匹配文件 |
| 逐字对话、精确工具输出、原始措辞 | 丢失,被压缩进摘要 |
危险的行是那些安静的行。路径限定规则和嵌套 CLAUDE.md 文件在压缩后会从窗口中消失,只有当你再次读取匹配文件时才会回来。如果你的项目依赖于有作用域的规则,一次压缩可能会在不告知你的情况下改变 Claude 的行为。
自动压缩,你无法关闭的安全网
当对话接近上下文限制时,Claude Code 会自动压缩。行为与手动 /compact 相同。
你无法禁用它。没有任何设置可以关闭。围绕它制定计划,而不是与之对抗。
这没什么问题,因为更好的直觉是提早压缩,而不是到边缘时才压缩。Anthropic 的工具使用手册显示,在一次多票据代理运行中,自动压缩将输入 token 削减了约 58%,从大约 204k 降至 82k。hyperdev.matsuoka.com 的分析报告指出,在 60% 容量时主动压缩,而不是等到 95%,加上更好的上下文编辑,相比基线性能提升了高达 39%。
教训很简单。不要把窗口用到极限。干净的 /clear 或提早的 /compact,胜过思维中途慌乱的自动压缩。

查看与保存:/context、/cost 和 /export
在清除之前,用三个命令来检查和保留内容。
/context 按类别显示 token 网格。每当 Claude 感觉迟钝时就运行它。迟钝通常是窗口满了,而不是模型变笨了。
/cost(别名 /usage)显示会话费用和计划使用统计。在 Pro、Max、Team 和 Enterprise 计划中,它会按技能、子代理、插件和 MCP 服务器细分用量。对于 Max 和 Pro 订阅者,那个美元数字是计划用量,而不是额外的自付账单。
/export [filename] 将对话记录写入纯文本,可以写入指定文件或通过保存对话框保存。在需要记录时,在运行 /clear 之前执行它。
/rewind 与 /resume,无需从头开始的恢复
走错路了,不必从头开始。
/rewind(别名 /checkpoint、/undo)回滚到较早的检查点。它可以恢复对话状态、代码状态,或两者都恢复,也可以从你选择的某条消息开始总结。它有键盘快捷键。运行 /keybindings 查看当前绑定,不要靠猜。
/resume(别名 /continue)通过选择器、会话 ID 或名称找回过去的对话。这是 /clear 下面的安全网。清除从不删除,所以误清除只需一个 /resume 就能找回。

记忆文件比 clear 和 compact 都更持久
CLAUDE.md 是持久层。它能经受一切。
项目 CLAUDE.md 和记忆文件在 /clear 后会重新加载,在 /compact 后会被重新注入。每次会话都要重新解释的任何内容都应该放在那里,而不是在聊天中。/memory 打开这些文件进行编辑,并让你启用、禁用或查看自动记忆条目。
根据 Claude Code 文档,这就是为什么 CLAUDE.md 是存放不变规则的正确位置。"始终运行测试"或"永远不碰 schema"这样的规则在重置后仍然有效,并会影响未来的摘要。把事实写进去,你就不用每次会话都支付重新解释的代价。
当窗口仍然太紧时
削减对话不是你唯一的手段。还有三招可以处理其余情况。
子代理是最重要的一招。把一个自包含的任务交给子代理,它在自己的全新上下文中运行,只返回结果。主线程保持精简,繁重的工作在别处进行。对于大型任务,没有什么比这更能腾出空间了。
路径限定的 CLAUDE.md 和嵌套记忆将规则保存在它们所管理的文件附近,这样它们只在相关时才加载,而不是整个会话都坐在窗口里。
更大的窗口有帮助,但不是懈怠的借口。Claude 最新的模型,Opus 4.x 和 Sonnet 4.x 系列以及 Fable 5,支持高达 100 万 token 的上下文窗口。满窗口仍然更慢、读取成本更高,所以管理依然重要。这也是为什么无论窗口多大,高效使用上下文窗口都是值得的。
决策规则,一张表搞定
一张表。复制它。
| 情况 | 命令 |
|---|---|
| 完成了一个任务,开始一个不相关的任务 | /clear |
| 需要继续同一个长任务,空间不足 | /compact |
| 希望摘要保留特定内容 | /compact <instructions> |
| 感觉很慢,不确定是什么吃掉了窗口 | /context |
| 走错路了,想撤销代码或对话 | /rewind |
| 需要找回之前的对话 | /resume |
| 想在清除前保留记录 | /export |
| 每次会话都要重新解释同一个事实 | 通过 /memory 将其放入 CLAUDE.md |
| 大型自包含任务让线程膨胀 | 委托给子代理 |
默认用 /clear。只有在一个任务内的连续性才是关键时,才用 /compact。当事情拖沓时运行 /context,因为如果 MCP 服务器和技能是问题所在,再多的对话压缩也无济于事。
常见问题
我应该更频繁地使用 /clear 还是 /compact?
/clear,差距悬殊。Claude Code 团队的既定习惯,在 r/ClaudeCode 和 jdfiscus 的 LinkedIn 帖子中都有呼应,就是在任务完成时清除,将 /compact 保留用于在一个长任务内继续。依赖反复压缩的长时间对话每次都会丢失细节。
/clear 会删除我的对话吗?
不会。/clear 开启一个新窗口,但让之前的对话完整保留,可通过 /resume 找回。没有任何内容被销毁。
我可以关闭自动压缩吗?
不能。自动压缩在对话接近限制时运行,没有设置可以禁用它。解决办法是在到达极限之前主动清除或压缩。
/compact 实际上会丢失什么?
逐字细节。精确的工具输出、长文件转储和之前的精确措辞都会被压缩进摘要。盲目压缩可能丢失你需要的细节,这就是为什么有引导的 /compact <instructions> 或 markdown 交接优于默认方式。
我如何查看是什么在填充我的上下文?
运行 /context(或 /context all)。它按类别显示 token 使用量的彩色网格:文件读取、CLAUDE.md、记忆、技能、MCP 定义、hook 输出以及对话,并附带优化提示。
我应该把规则放在哪里,才能让它们在重置后仍然有效?
CLAUDE.md,通过 /memory 编辑。项目 CLAUDE.md 和记忆在 /clear 后重新加载,在 /compact 后重新注入,因此它们是唯一保证持久存在的上下文。
停止让你的上下文腐烂
无论你是否管理,窗口都会被填满。唯一的问题是你是有意识地清理它,还是让自动压缩在思维中途帮你做这件事。
任务之间默认用 /clear。在单个任务内用带指令的 /compact。拖沓时运行 /context,把持久性事实推入 CLAUDE.md,繁重任务依靠子代理。这就是完整的管理纪律。
如果你正在将 AI 融入设计实践,同样的直觉适用于任何地方:让机器保持专注,让工艺保持在你手中。这是面向设计师的 Claude Code 背后的赌注,如果你想了解更多,还有更多关于 AI 与设计的内容。
Brainy 帮助设计师将 AI 投入使用,同时不失去工艺。看看我们正在为创作者构建什么。
Brainy helps designers put AI to work without losing the craft. See what we are building for creators.
Get Started




