
用 Claude Code 时间长了,你一定会遇到这个问题:对话越来越长,Claude 开始”忘事”——前面提到的要求后面就忘了,或者开始重复之前说过的话。
这不是 Claude 变笨了,而是上下文窗口被填满了。本文教你如何高效管理上下文,让 Claude Code 始终保持最佳状态。
什么是上下文窗口?
上下文窗口就是 Claude 的”记忆容量”。每次对话中,你发的消息、Claude 的回复、读取的文件内容、工具调用的结果,都会占用上下文空间。
关键问题:上下文窗口会被填充得很快。特别是读取大文件、运行命令输出大量日志时,上下文可能几分钟就满了。
上下文污染的危害
当上下文被无关信息填满后,会出现以下问题:
- 指令遵循能力下降:Claude 开始忽略你的要求
- 重复输出:Claude 反复说同样的话
- 质量下降:代码质量明显变差
- “上下文焦虑”:Claude 过早收尾,提前结束任务
上下文管理的五种操作
1. /clear——清空上下文
最直接的方式,清空当前对话历史,重新开始:
/clear
适用场景:切换到完全不同的任务时使用。
2. 自动压缩
Claude Code 会在上下文接近满时自动压缩对话历史,保留关键信息,丢弃冗余内容。
这个过程是自动的,但你需要注意:压缩可能会丢失一些细节。
3. 手动压缩
你可以主动触发压缩:
/compact
手动压缩的好处是可以在关键节点保存上下文,而不是等到自动触发时可能已经丢失了重要信息。
4. 临时提问
有时候你只想问一个简单的问题,不想污染当前对话的上下文。可以使用临时提问:
/temp 这个项目的入口文件是什么?
回答完后,这个提问和回答不会进入主对话的上下文。
5. 检查点和会话恢复
Claude Code 支持保存和恢复会话状态:
- 保存检查点:在关键节点保存当前状态
- 恢复会话:从之前的检查点继续工作
这对于长时间运行的任务特别有用——即使关闭了终端,下次也能从上次的位置继续。
CLAUDE.md 的上下文优化
CLAUDE.md 的内容会始终占用上下文空间,所以要注意:
- 只放关键信息:不要把完整的 API 文档放进去
- 使用条件规则:通过
@include按需加载详细规则 - 定期清理:过时的规范及时移除
❌ 错误做法:把 500 行的完整 API 文档写进 CLAUDE.md
✅ 正确做法:CLAUDE.md 只写核心规范,详细文档用 @include 按需加载
常见失败模式
上下文混乱
症状:Claude 混淆了不同任务的信息
解决:切换任务时使用 /clear,或为不同任务开不同终端
反复纠正
症状:同一个错误反复出现
解决:把纠正确认写入 CLAUDE.md,让 Claude 每次都能看到
过重的 CLAUDE.md
症状:Claude 的回复变短、变慢
解决:精简 CLAUDE.md,使用条件加载减少默认上下文占用
总结
上下文管理是 Claude Code 高级用户必备的技巧:
- /clear:切换任务时清空上下文
- /compact:关键节点手动压缩
- /temp:临时提问不污染上下文
- 精简 CLAUDE.md:只放关键信息,详细内容按需加载
- 检查点恢复:长时间任务保存进度
管理好上下文,Claude Code 就能始终保持敏锐和高效。
下一篇我们将介绍Claude Code 扩展能力全解析,敬请关注!
