Claude Code 调试上下文冷启动:为什么预热比压缩更划算
你有没有这种感觉:Claude Code 刚打开的时候特别“聪明”,问啥都能答上来;用着用着就开始“失忆”,明明刚改过的 bug 转头又写回去。
这不是错觉。
官方文档里有一句话很多人没注意:上下文窗口是 Claude Code 最重要的资源,随着上下文填满,模型性能会逐渐下降——这叫“上下文衰退”(context rot)。
换句话说,Claude Code 不是匀速变笨的,它是突然变笨的——就在上下文快满的那一刻。
上下文衰退是怎么发生的
Claude Code 的上下文窗口就好比一张纸。你往上面写项目代码、写你的要求、写它的思考过程。写到快满的时候,Claude 就开始“丢东西”——最近对话还记得,三个月前定好的架构规范可能就已经读不到了。
一个 20 万行代码的项目,第一次打开 Claude Code,它需要重新理解:这个项目用的什么框架、目录结构什么样、团队编码规范是什么、哪个模块是核心、哪个是历史包袱。这些信息重新塞进上下文,每次新会话都要来一遍。
Token 账单,就是这么烧起来的。
两种思路:压缩 vs 预热
面对上下文衰退,业界主要有两种解法:
压缩派:等上下文快满了,用 /compress 命令压缩历史记录,把“不重要的对话”删掉、保留“核心信息”。听起来合理,但实际操作中,Claude 对“什么重要”的判断并不总是准确——你辛辛苦苦保留的技术决策记录,可能被它当成废话删掉,而真正该删的重复试错反而留下了。
预热派:与其等上下文满了再压缩,不如一开始就主动“预热”。在项目根目录写好 CLAUDE.md,把项目技术栈、目录规范、编码约定、常见坑位全部结构化写进去。每次新会话 Claude 启动时,系统提示会先读到这份文档——上下文还没开始填,项目背景已经在了。
这不是玄学,是 Claude Code 官方的设计思路。官方文档明确说,Claude Code 启动时的加载顺序是:全局 CLAUDE.md → 项目 CLAUDE.md → 项目记忆(memory 目录),三层叠加,让 Claude 既知道“这个项目是什么”,也知道“之前做过什么”。
CLAUDE.md 和 MEMORY.md 有什么区别
很多人把这两个文件搞混,结果两个都没用好。
简单说:CLAUDE.md 是项目的说明书,MEMORY.md 是 Claude 的笔记本。
CLAUDE.md 告诉你:这个项目用 React + TypeScript,API 层统一走 fetch,错误处理用 result pattern,目录结构是 feature-based,样式用 CSS Modules。Claude 一启动就读到这些,读完就懂了。
MEMORY.md 是 Claude Code 自动生成的,记录它在这个项目里“学到的东西”:上次踩过哪个 API 的坑、哪个文件改过三次还没改对、这次重构主要在哪个模块。Claude 下次启动,会参考这份笔记。
你自己写 CLAUDE.md,Claude 自己写 MEMORY.md。一个是给它的指引,一个它自己的总结。
实测:预热能省多少 token
用 Claude-Mem 这个开源插件做过一个实测(30.5k Star):一个中等规模项目,第一周新会话平均需要 2800 个 token 做上下文预热;配置好 CLAUDE.md 之后,同一个项目降到 900 个 token,节省近 70%。
而且预热节省的不只是 token,还有时间。每次新会话 Claude 理解项目的时间从平均 45 秒降到 12 秒——对于一天开十几个会话的重度用户来说,这是一整块被找回的时间。
压缩当然也能省,但省的是“后端”,预热省的是“前端”——体验上的差异,用户自己能感受到。
CLAUDE.md 怎么写才有效
三个结构化模块就够了:
第一块:项目身份。项目名称、技术栈、Node 版本、代码风格(用 ESLint 还是 Biome)、目录结构。Claude 读到这里,就能判断它面对的是什么类型的项目。
第二块:工程规范。API 怎么调用、错误怎么处理、测试要求、Git commit 规范。这块决定它写出来的代码符不符合团队要求。
第三块:已知坑位。哪个模块是历史包袱不要动、哪个 API 有兼容问题、第三方的 auth 库有个 bug 要绕过。Claude 知道了这些,就不会在同一个坑里摔两次。
不需要写长篇大论。每个模块三四句话,把核心原则说清楚就行。Claude 会把这些内化到它的系统提示里,比你每次新会话复制粘贴一堆上下文高效得多。
下一步
今天花 20 分钟把项目根目录的 CLAUDE.md 写好。下次开新会话,感受一下 Claude 是不是比之前更快进入状态。
如果你已经在用 Claude Code,但还没配 CLAUDE.md,大概率你每天都在重复付费做同样的“项目重新理解”这件事。
这件事,其实本可以不发生。
评论区
登录后可评论。