ai for designersJune 25, 20269 min read

Claude Code 上下文管理:/clear 与 /compact 的区别及其他命令

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

By Boone
XLinkedIn
claude code context management

两个命令承担了核心工作。/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 就足够了。对于不能承受细节丢失的关键交接,先把内容写下来。

体素分割图,展示 /clear 从空白开始与 /compact 保留摘要的对比。
体素分割图,展示 /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

More from Brainy Papers

Keep reading