Skip to content

访问受限

会员专属内容

Claude Code 上下文管理

课程导读

这节课主要讲 Claude Code 的“记忆空间”怎么管理:如何查看上下文占用,什么时候使用 /compact 压缩,什么时候用 Summarize from here 折叠一段对话,什么时候用 /clear 开启空白上下文,以及如何恢复历史会话。

一、什么是上下文

在模型选择界面中,模型名称后面可能会标注上下文长度,例如 1M

你可以把上下文理解成模型的“记忆上限”。它决定了模型一次最多能记住和处理多少内容。

Claude Code 会把很多信息放进上下文中:

内容说明
历史对话你和 Claude Code 前面说过的话
任务说明当前任务目标、约束和计划
文件内容Claude Code 读过的代码和文档
工具结果命令输出、搜索结果、读取文件结果等
系统信息系统提示、工具定义、技能说明等基础开销

上下文空间不是无限的。随着对话越来越长、读取的文件越来越多,模型对早期内容的把握可能会变弱。

二、查看上下文占用

查看当前上下文使用情况:

text
/context

常见信息可以这样理解:

项目含义
模型名当前使用的模型,例如 Sonnet 4.6
28.3k/200k tokens (14%)已使用 28.3k token,总窗口 200k,占 14%
System tools系统提示、工具定义等基础开销
Skills当前加载的技能说明占用
Messages对话、工具结果、文件内容、命令输出等累计内容
Free space当前还能继续使用的空间
Autocompact buffer系统为自动压缩和回复生成预留的缓冲区

不要把 Autocompact buffer 当作普通可用空间。它更像是 Claude Code 为自动压缩和后续回复保留的安全垫。

三、自动压缩

当上下文快满时,Claude Code 会自动管理上下文。

通常会经历类似过程:

  1. 清理较早的工具输出。
  2. 如果仍然不够,就把长对话压缩成摘要。
  3. 保留关键内容,让当前会话继续进行。

需要注意:压缩的是对话上下文,不会删除项目里的代码文件。

四、compact

如果你觉得当前上下文已经比较长,可以主动使用 /compact

text
/compact

也可以附加压缩重点:

text
/compact 重点保留漏洞排查、最终修复方案和关键文件修改

/compact 的作用是在同一个对话里压缩上下文,让 Claude Code 保留重要信息,减少冗余过程。

压缩完成后,可以使用 Ctrl + O 展开查看压缩后的上下文内容。

适合场景:

  • 当前任务还没结束,但上下文已经很长。
  • 你希望继续同一个对话,只是压缩掉冗余过程。
  • 你想提醒 Claude Code 重点保留某些信息。

五、Summarize from here

Summarize from here 是回退界面里的一个选项。

它不会修改磁盘上的代码文件,而是从你选中的那条消息开始,把后续对话压缩成摘要。

可以理解为:

部分处理方式
选中消息之前的内容保持原样
选中消息及之后的内容替换成一段 AI 摘要
磁盘上的代码文件不修改
选中的原始消息回填到输入框,方便你重发或改写

适合场景:

  • 前面 20 条消息在定义需求和架构,很重要。
  • 后面 30 条消息主要是试错、调试、跑日志,比较臃肿。
  • 你只想保留最终结论、修复原因和关键修改思路。

可以把它理解为:前半段保留全文,后半段折叠成摘要,然后从这个分界点重新继续聊。

六、清空上下文:clear

/clear 会保存当前对话,然后开启一个新的空白上下文。

text
/clear

执行后,当前新对话里不会再带着之前那些旧上下文。

如果你连按两次 Esc 进入回退界面,也会发现旧对话记录已经不在当前新对话里了。

适合场景:

  • A 功能已经做完,准备开始完全无关的 B 功能。
  • 旧上下文可能干扰 Claude Code 的判断。
  • 你想让 Claude Code 从一个干净状态开始处理新任务。

需要注意:/clear 会重置当前上下文,不适合在任务还没收尾时随便使用。

七、会话和对话的区别

为了方便理解,可以先这样区分:

概念理解方式
对话你发一条消息给 Claude Code,它回复你,这就是一轮对话;继续追问、继续回复,就是多轮对话
会话从你启动 Claude Code 到退出,这一整段聊天叫一次会话;里面包含很多轮对话。退出后会保存到本地,之后可以继续或恢复

你退出 Claude Code 后,这次会话不会立刻消失,而是会保存在本地。

新开一个标签页,或者退出后重新进入,通常可以理解为进入另一次会话。

八、继续最近会话

如果你想继续最近一次会话,可以使用:

bash
claude --continue

简写是:

bash
claude -c

它会在当前目录中继续最近一次 Claude Code 会话。

适合场景:

  • 昨天工作到一半,今天想继续。
  • 关闭了终端窗口,但想回到最近那次对话。
  • 不想手动从历史会话列表中选择。

九、恢复历史会话

如果你想从多个历史会话中选择一个,可以使用:

bash
claude --resume

简写是:

bash
claude -r

它会列出当前项目里的历史会话,你可以选择想恢复的那一次。

也可以在 Claude Code 内部使用:

text
/resume

十、指定会话 ID 恢复

退出 Claude Code 时,终端里有时会提示一条恢复当前会话的命令。

这种方式会通过会话 ID 精确恢复某一次会话。

claude -c 的区别是:

方式区别
claude -c继续最近一次会话
指定会话 ID精确恢复某一次历史会话
claude -r打开会话列表,让你自己选择

会话 ID 通常比较长,日常使用中更推荐 claude -cclaude -r

十一、使用建议

场景推荐操作
只是想查看占用/context
当前任务还没结束,但上下文很长/compact
想保留前半段,压缩后半段调试过程Summarize from here
完成一个任务,准备开始无关任务/clear
第二天继续最近会话claude -c
从多个历史会话中选择claude -r/resume

不要等上下文彻底满了才处理。很多时候,使用到百分之六七十以后,模型对早期内容的把握就可能变弱,可以开始考虑压缩或拆分任务。

复杂项目里,比较推荐把任务拆成多个阶段。每完成一个相对独立的阶段,再根据情况使用 /compact/clear