上一课讲了上下文污染的问题和背后的原理,这一课我们来聊具体怎么解决。下面五个策略是我在日常使用中反复验证过的,从最重要的开始讲。
这是最重要的一条,也是最容易被忽视的一条。
一次对话只做一件事。听起来简单,但实际操作中你会不自觉地在一个对话里越塞越多——「帮我修完这个 bug 之后,顺便把那个接口也改一下」「另外,能不能再看看那个测试为什么挂了」。
每次你说出「另外」「顺便」的时候,其实就是一个信号:该开新对话了。
为什么要这么严格?因为 Claude Code 在上下文干净的时候表现最好。一个专注于修某个 bug 的对话,Claude 读取的文件、分析的报错、尝试的方案,全部都是围绕这一个问题的。你在同一个对话里插入另一个不相关的任务,这些新信息会稀释掉前面积累的上下文,两个任务的完成质量都会下降。
我的做法是:一个对话对应一个 git commit。如果你发现一个对话最后需要 commit 两个不相关的改动,那它大概率应该是两次对话。
# [反例]
"看看 src/modules/ 目录"
# [正例]
"看 src/modules/auth/service.ts 中的 validateToken 函数"
这两种写法的上下文消耗差距可能是十倍甚至几十倍。第一种写法让 Claude 读取整个目录下所有文件,其中大部分跟你当前的问题毫无关系。第二种写法精确到文件和函数名,Claude 只需要加载几十行代码就够了。
精确引用还有一个隐藏好处:它迫使你在提问之前先想清楚「问题大概在哪」。这个思考过程本身就能提升你跟 Claude 协作的效率。如果你自己都不确定要看哪个文件,可以先问 Claude 一个更高层的问题——「这个报错可能跟哪几个文件有关?」——拿到线索之后再精确引用。
有一次我在调一个 API 超时的问题,一开始图省事让 Claude 看了整个 services 目录。来回几轮都没找到原因。后来我自己先花两分钟看了日志,锁定了是 payment service 的问题,再让 Claude 去看 src/services/payment/client.ts 的超时配置,一轮就定位到了。
对话进行到七八轮以上的时候,你可能会发现 Claude 开始遗忘前面说好的事情,或者回复变得不那么精准。这时候不要硬撑,用摘要接力的方式切换到新对话。
具体做法是:在当前对话结束前,让 Claude 总结一下目前的进展——做了什么、还没做什么、关键的设计决定是什么。然后把这段摘要复制到新对话的开头,作为上下文的「种子」。
这个方法的精髓在于信息压缩。一段 200 字的摘要,传达的有效信息可能比前面 8 轮对话的全部内容还多,因为它过滤掉了所有的试错过程、重复讨论和无关内容,只保留了最终的结论和状态。
我在做稍微大一点的功能时会主动做这件事。通常的节奏是:开对话 → 完成 2-3 个小步骤 → 让 Claude 总结 → 新对话接力。这样每次对话的上下文都是新鲜的,Claude 的表现稳定很多。
这个策略的思路跟写代码很像:先给抽象层,再给具体实现。
在对话开始时,先告诉 Claude 高层信息:项目用什么技术栈、你这次要改的是哪个模块、改动的目标是什么。让 Claude 基于这些信息判断它需要读哪些文件,而不是你替它决定。
比如你可以这样开始一次对话:
“项目是 Express + TypeScript + Prisma,我需要给订单模块加一个退款功能。退款需要调用支付网关的 refund API,然后更新订单状态。你觉得需要看哪些文件?”
Claude 会告诉你它想看 order service、payment gateway 的客户端代码、还有 order 的数据模型。然后你再按需提供这些文件。这比一开始就把所有可能相关的文件都丢给 Claude 高效得多,因为 Claude 自己判断的加载范围往往比你预估的更精准。
/compact 是 Claude Code 自带的上下文压缩命令。当你感觉对话已经进行了不少轮、或者 Claude 的回复开始变得啰嗦、重复的时候,就是使用它的好时机。
它的原理是让 Claude 把当前对话的历史压缩成一个精简的摘要,然后在这个摘要的基础上继续对话。效果类似于策略 3 的摘要接力,但不需要手动开新对话,操作更方便。
不过 /compact 不是万能药。压缩过程中难免会丢失一些细节,如果后续对话恰好依赖这些细节,可能会出问题。所以对于特别重要或特别复杂的任务,我还是倾向于用策略 3 手动做摘要接力,这样我能控制哪些信息被保留。
五个策略讲完了,最后说一句优先级。如果你觉得一下子全用起来有点多,没关系——策略 1(单一职责)和策略 2(精确引用)能解决 80% 的上下文问题。先把这两个变成肌肉记忆,其他的慢慢加就好。
每周更新 Claude Code 实战技巧、工具对比、行业动态。回复「模板」获取 CLAUDE.md 模板合集。