08-上下文管理

📅 2026/8/28 2:20:26
08-上下文管理
08 · 上下文管理:像 Git 一样管理你的对话——别让它一边改代码一边「忘事」你用 Claude Code 改一个支付模块,已经聊了 40 分钟,改了 6 个文件。突然你发现它开始不遵守之前说好的命名规则,甚至把一个你已经决定删掉的函数又「复活」了回来。它不是变笨了,是上下文窗口被塞满了——最老的那些约束,已经被挤出了它的「工作记忆」。一、上下文窗口为什么重要大语言模型没有硬盘,它只有一段固定大小的「工作记忆」,叫上下文窗口(context window)。窗口里能装下多少内容,直接决定它能「记住」多少。对 Claude Code 这种编程代理来说,窗口的压力尤其大。它每一轮要同时装下:你的所有指令和它的所有回复(对话历史);它用工具读过的文件内容(文件快照);命令输出,比如git status、测试结果、报错堆栈;项目记忆(CLAUDE.md 等,每次都加载)。窗口一旦被占满,最旧的内容就会被挤出去,或者模型开始模糊处理细节。表现就是:它开始「凭感觉」改代码,因为你最早给它的关键约束已经不在窗口里了。一个典型的翻车现场:你让它读了一个 800 行的大文件,又来回聊了十几轮,之后再让它改这个文件,它给出的代码和你开头定下的规范已经对不上——因为规范那条早就被挤掉了。所以「上下文窗口」不是玄学,是实打实的容量预算。管好它,就是管好 Claude 的产出质量。二、Claude 的「记忆」从哪来很多人以为 Claude 每次只看到你最后一条消息,其实不是。它会把几类东西拼进上下文:对话历史:本次会话里你和它的全部往返。