Anthropic 官方课程第 6 课,3 分 30 秒。上下文是 Claude 的工作记忆——它读的每个文件、跑的每条命令、你发的每条消息,都在占位置。
把上下文窗口想成 Claude 记忆里能装下的容量。你输提示、它读文件、发起工具调用、拿到返回,都在往里加。容量有限,所以尽量优化就变得很重要。
快到上限时,上下文窗口会自动压缩:把重要细节提炼成摘要、清掉不必要的工具调用结果,腾出大量空间。但要注意,这个过程可能丢掉之前对话里的一些细节。
你也可以用 /compact 手动压缩,它会把你到那时为止做的一切都压掉——想腾空间、又想保留之前做过什么的记忆时,这很好用。
想完全从头开始、不留之前的任何记忆,就运行 /clear,它把所有内容清掉。想看上下文状态就运行 /context:能看到整体有多大、哪些部分占得最多,还有一张图把这些画出来。
什么时候用哪个,一条通用原则:在做某个功能、快超出窗口但还得继续时,用 compact——继续开发时让上下文始终贴着这个功能很重要。做完计划、要开一个新功能时,用 clear——你不希望之前的对话给新东西带来偏见。想让 Claude 跨会话记住的,写进 CLAUDE.md,它就不必每次从头重新发现。
省空间的几条。第一,提示要具体。讽刺的是,写更短的提示长期反而更费上下文——你不说清楚,Claude 就得在代码库里四处翻、自己推理,这比你多写一两句话要多占很多空间。
第二,MCP 服务器默认会把所有可用工具都加载进上下文,所以如果装了一堆跟当前项目无关的,可以考虑关掉。也可以试试 skills,作用和 MCP 服务器相似,但不会把整套东西塞进上下文。
第三,子代理和主代理并行跑,但有完全独立的上下文窗口。那种只要答案、不要过程的任务——比如「身份验证端点在哪里」——交给子代理去做,只把摘要返回给主代理。
回顾:用 /compact 压缩长会话,用 /clear 重新开始;提示写具体,看清楚当前是什么在占上下文,把只要答案的任务交给子代理。
视频来自 Anthropic 官方频道 @claude《Context Management in Claude Code》,Claude Code 101 第 6 课,中文字幕是我做的。