/clear 的作用
/clear 会结束当前的对话,并开启一个具有空上下文窗口的新对话。在 Claude Code 的术语中,它开启了一个新会话。之前的会话并不会被删除。Anthropic 的会话文档指出:“Claude Code 会保存之前的会话;可以使用 /resume 恢复它”。
该命令有两个别名:/reset 和 /new,并且可以接受一个可选的名称。命令参考解释了名称的作用:“传递一个名称,以便在 /resume 选择器中标记之前的对话。”
同一份参考资料还指出了当你不想重新开始时的替代方案:“要在继续同一对话的同时释放上下文,请改用 /compact。”
/clear 后保留的内容
你的项目指令和记忆
Claude Code 有两套记忆系统:你编写的 CLAUDE.md 文件,以及 Claude 在工作时自动编写的 auto memory。Anthropic 的记忆文档称:“两者都会在每次对话开始时加载。” /clear 之后开始的对话是一个新对话,因此两者都会重新加载。
这就是实践中“保留项目记忆”的含义。项目根目录 CLAUDE.md 中的约定、你的规则以及 Claude 保存到 auto memory 的内容都会重新回到新对话的上下文中。如果你的仓库使用 AGENTS.md 而不是 CLAUDE.md,情况同样适用。
你清除的对话
旧对话仍然保存在你的机器上。Anthropic 的交互模式文档提到:“前一个会话的对话会被保留并可以恢复。”有两种找回方式:
/resume:打开会话选择器,之前的对话会出现在其中(如果你在执行/clear时传递了名称,则显示该名称)。- 回溯菜单 (rewind menu):如果你仍处于同一个 Claude Code 进程中。Anthropic 的检查点文档提到,菜单顶部会显示一个额外的条目,标记有前一个会话的 ID,用于恢复
/clear运行前活跃的对话。“该条目在退出 Claude Code 或恢复其他会话之前一直有效。”
关于查找和恢复 Claude Code 会话历史的指南 介绍了这些转录文件的存储位置。
你的会话名称(在特定情况下)
名称遵循特定规则。Anthropic 的会话文档指出:“如果不带参数,新会话将保留你通过 --name 或 /rename 设置的名称,但不会保留 AI 生成的会话标题。”如果你传递了一个名称,例如 /clear release-prep,该名称将赋予你正在离开的会话,而新会话将以未命名状态开始。
你的提示词历史
清除前输入的提示词仍然可以找回。Anthropic 的交互模式文档描述了提示词召回的行为:“运行 /clear 会开启一个新会话:召回功能会先列出新会话的提示词,然后是之前会话的提示词。”如果你想重用启动上一个任务的提示词,只需按上箭头键即可找回。
这是一种便利功能,而不是上下文。召回的提示词会停留在你的输入框中,直到你再次发送它。
不会结转的内容
对话本身
仅存在于对话中的所有内容都会从新上下文中移除:你的解释、Claude 读取的文件、你尝试过的方法,以及你达成但未记录下来的决定。新对话从你的项目文件和记忆开始,而不是从旧的讨论开始。
这就是该命令的意义所在。Anthropic 的上下文窗口指南解释了为什么这很有帮助:“旧对话会挤占你下一步需要的文件空间,并增加每条消息的 token 成本。”
会话计数器
Anthropic 的成本文档提到,当 /clear 开启新会话时,会话的成本总计会重置。在 v2.1.211 版本之前,它们会在 Claude Code 进程的生命周期内跨 /clear 持续累积。
启动钩子 (Startup hooks) 再次运行
如果你使用钩子,/clear 会被视为会话启动。Anthropic 的钩子参考将 clear 列为 SessionStart 钩子可以匹配的来源之一,此外还有 startup、resume、compact 和 fork。在启动时添加上下文的钩子在 clear 之后会再次添加。同一参考资料指出了一种边缘情况:“如果在后台钩子仍在运行时运行 /clear 或切换到另一个对话,它们返回的任何内容都不会应用于该会话。”
/clear、/compact 还是新会话
这三者很容易混淆,因为它们都能腾出空间。但它们保留的内容截然不同。
/compact 将对话保留为摘要
/compact 停留在同一个对话中,并用摘要替换其历史记录。Anthropic 的命令参考将其描述为一种“通过总结迄今为止的对话来释放上下文”的方法。运行后,Claude Code 会从磁盘重新注入项目根目录的 CLAUDE.md、未限定范围的规则和 auto memory,并重新读取最多五个最近修改的文件。
当你继续同一项任务并希望 Claude 保持思路连贯时,请选择 /compact。你可以通过焦点指令来引导它,例如 /compact keep the API changes and the test commands。关于如何将自动压缩瞄准你需要保留的内容的指南 进一步探讨了如何塑造摘要。
/clear 保留项目,而非对话
当下一项任务不相关时,请选择 /clear。Anthropic 的最佳实践明确指出:“在不相关的任务之间使用 /clear。它不消耗任何成本,这意味着下一项任务不需要为前一项任务的历史记录付费。”
成本说明对于长会话非常重要。Anthropic 指出,在长会话中,/compact “本身就是一个巨大的请求,因为它需要读取整个对话来进行总结”。/clear 不总结任何内容;下一个对话从启动时加载的内容开始。
退出并重新启动 Claude
启动一个新的 claude 会话同样会给你一个带有项目记忆的空对话。实际区别在于找回的方式。执行 /clear 后,回溯菜单可以将你带回同一进程中的前一个对话;退出后,你需要通过 /resume 或 claude --resume 来找回它。如果你在长时间中断后返回旧会话,关于 Claude Code 恢复旧会话前的警告指南 解释了相关的成本。
其他类似的命令
/rewind 将代码和对话回滚到早期的检查点,或者总结部分对话;我们的 Claude Code 会话回滚指南 介绍了哪些编辑会被恢复。/branch 为当前对话创建一个分支,以便你可以在不丢失原始对话的情况下尝试不同的方向。
何时使用 /clear 是正确之举
Anthropic 的最佳实践指出了两种情况。
在不相关的任务之间。 指南称:“在任务之间执行 /clear 仍然值得,因为专注的上下文能带给你更好的答案且成本更低。”
当修正不起作用时。 指南的建议很直接:“如果你已经对同一件事修正了两次但仍然错误,第三次修正大多只是在增加一个已经包含两次失败尝试的对话,让 Claude 不断重复读取。”其建议是:“/clear 加上一条包含你所学到的有效经验的新提示词,几乎每次都效果更好。”
第二种情况风险较高。你给出两次的修正正是新对话需要的东西,除非你把它记录下来,否则它就会消失。
人们常犯的错误
因为担心抹掉项目而避免使用 /clear。 它不会抹掉项目。CLAUDE.md 和 auto memory 会在新对话中重新加载。
在每个新任务前运行 /compact。 它会保留你不再需要的工作摘要,并读取整个对话来生成摘要。对于不相关的工作,/clear 更轻量。
在任务中途清除。 任何仅在对话中决定的内容在清除后都会脱离上下文。请改用 compact,或者先保存决定。
认为清除的对话已被删除。 它已被保存。使用 /resume 或回溯菜单的“前一会话”条目即可找回。
第三次修正同一个错误。 Anthropic 建议清除并编写一条更好的提示词。
解决方案:保存下一项任务所需的内容,然后清除
第 1 步:在清除之前,写下应该比对话更持久的内容
寻找任何你需要再次解释的内容:你修正过的约定、你发现的约束、一个决定及其原因。将约定放入项目根目录的 CLAUDE.md 中。对于其他要点,要求 Claude 记住它们;Anthropic 的记忆文档称 Claude 会将这些保存到 auto memory,它会在每次对话开始时加载。关于为什么 Claude Code 会忘记你的修正的指南 介绍了每种修正所属的位置。
第 2 步:带名称清除
运行 /clear 并为你离开的工作起一个简短的名称,例如 /clear oauth-migration。Anthropic 的最佳实践正是这样建议的,以便你以后可以找回它。然后用一条清晰的提示词开始新任务,其中包含之前任务所需的任何内容。
第 3 步:如果需要,请回溯
如果你清除得太早,在仍处于同一进程时打开回溯菜单并选择“前一会话”条目,或者使用 /resume 并选择命名的会话。对于接近上下文限制的长会话,关于 Claude Code 中 1M 上下文消息的指南 解释了压缩会保留什么。
在 MemoryLake 中设置
/clear 之所以有效,是因为你的项目记忆得以保留。薄弱环节在于你在对话中达成但未记录下来的决定。在一个仓库内,一旦你写下来,CLAUDE.md 和 auto memory 就可以保存它。当同样的决定在另一个仓库、另一台机器或另一个工具中也至关重要时,它们需要一个不绑定于单一项目的归宿。
MemoryLake 是一个记忆层,用于将这类上下文保存在你维护的一个列表中,供 Claude Code 和你连接的其他助手(如 ChatGPT 和 Codex)使用。
你自己编写条目,使用你自己的语言。不会从你的 Claude Code 会话、CLAUDE.md 文件、auto memory 或任何供应商的存储中读取、写入或删除任何内容。/clear 将继续按照 Anthropic 描述的方式工作。
第 1 步:创建 API 密钥
登录并从控制面板生成密钥。该密钥属于你的 MemoryLake 工作区,与你的 Claude 账户是分开的。

第 2 步:上传你的第一条记忆
从你在上述解决方案第 1 步中写下的、适用于多个仓库的内容开始:你原本需要重复的偏好、决定和约束。每个条目一个要点,并注明日期。

第 3 步:连接你的 AI 和代理
连接 Claude Code 和你使用的其他助手。在 /clear、新会话或切换到另一个工具后,同样的决定依然可用。

这在实践中改变了什么
第一个区别是 /clear 不再让人感到冒险。你知道它清空了对话,但保留了你的项目指令和记忆。
第二个区别是你学会选择正确的命令。/clear 用于不相关的工作,/compact 用于继续同一任务,/rewind 用于撤销。
第三个区别是重要内容不再仅存在于对话中。在清除之前记录下决定,这样下一项任务就能带着这些决定开始。
Claude Code 中 /clear 的最佳实践
在不相关的任务之间清除。 专注的上下文能提供更好的答案且成本更低。
任务中途使用 compact 而非 clear。 /compact 会保留当前工作的摘要。
清除前保存决定。 将它们放入 CLAUDE.md 或要求 Claude 记住它们。
为你离开的会话命名。 使用 /clear <name>,以便在 /resume 中找到它。
两次修正失败后清除。 然后编写一条包含所学经验的新提示词。
使用回溯菜单撤销清除。 在退出或恢复另一个会话之前,它一直有效。
检查你的 SessionStart 钩子。 它们在 /clear 后会再次运行。
结论
/clear 会开启一个具有空上下文窗口的新对话,同时保留你的项目记忆。CLAUDE.md 和 auto memory 会重新加载,清除的对话会被保存并可以恢复,你通过 --name 或 /rename 设置的名称也会结转。不会结转的是任何仅存在于对话中的内容。
在不相关的任务之间以及重复修正失败后使用 /clear,在继续同一任务时使用 /compact,并在清除前记录下你不想重复的决定。