CLAUDE.md 太大时,不会有任何报错。Claude Code 会老老实实加载一个 4000 词的文件,表面上什么都没坏。这正是陷阱所在:一个超大 CLAUDE.md 的成本是隐形的,每一轮对话一点一点地付,等你真切感觉到的时候,你已经习惯性地把锅甩给模型了。
那么,多大算太大?没有硬性上限,谁要是给你报一个精确的 token 阈值,那是在猜。但只要把”体积”的两重成本拆开看,这个问题就有了真实的答案。
成本一:每一轮你都在为它付费
CLAUDE.md 不是加载一次就忘掉。它在会话开始时被注入到上下文靠顶部的位置,并在整段对话里一直驻留——从第一个 prompt 到最后一个。你每走一轮,整个文件都是模型回答前要读的内容的一部分。
也就是说,token 成本会被三件事同时放大:每个 session 的轮数、每天的 session 数、团队的工程师人数。一个 2000 词的根文件大约是 2600 个 token。在一个 40 轮的 session 里,这就是约 104,000 个 token 的纯开销——还没等有人敲下问题、模型读到一行代码。乘以整个团队,它就是一笔账上的固定支出。
token 这一面我们在5 个偷烧 token 的坏习惯里讲透了——臃肿的示例、互相矛盾的过期规则、模型本就知道的套话。如果你还没做过那一遍清理,先做它,这是桌上最快的钱。本文要讲的是另一重成本,那个大多数人从没想过的。
成本二:它在和你真正的工作抢注意力
如今的 Claude 模型都带着很大的上下文窗口——标准 200K token,扩展上下文 beta 可达 1M。很自然的结论是:几千个 token 的 CLAUDE.md 是个零头,体积无所谓。这个结论是错的,而研究现在已经把”为什么错”讲清楚了。
窗口的容量,和模型均匀利用整个窗口的能力,是两回事。这里有两个被反复证实的效应:
Lost in the middle(迷失在中间)。 Liu 等人(2024)发现:当相关文档被放在长输入的中间时,多文档问答的准确率相比放在最开头或最结尾会下降 30% 甚至更多。注意力呈 U 形:上下文开头和结尾的 token 拿到过高的权重,中间被冷落。这不是某一个模型的 bug——它源自当前多数 LLM 所用的旋转位置编码(RoPE)对位置的编码方式。
Context rot(上下文腐化)。 Chroma 在 2025 年的研究把更宏观的规律形式化了:在 18 个前沿模型上——包括 Claude Opus 4、GPT-4.1、Gemini 2.5 Pro——可测量的性能会随输入变长而退化,而且远在窗口被填满之前就开始了。这是 transformer 注意力的架构属性,不是下一次训练能补上的能力缺口。窗口里塞得越多,模型对其中任何一段的注意就越不可靠。
这和 CLAUDE.md 的关系在于:文件坐在顶部的高注意力区,所以它自己的指令被读得很好——这一部分没问题。问题是它把其它所有东西往下挤。一个臃肿的 CLAUDE.md 会把你真正的代码、目前为止的对话、你正在改的那个文件,统统往窗口深处推,逼近被冷落的中段,同时还抬高了驱动整段会话 context rot 的总长度。你没丢掉 CLAUDE.md,你丢掉的是对”CLAUDE.md 本该帮上忙的那项工作”的注意力。
更讽刺的版本是:一个为了让 Claude 更小心对待你代码库而写的 3000 词 CLAUDE.md,反而可能让它更不用心地看你的代码库——因为文件挤占了它本要在其中推理的那个窗口。
嵌套文件的乘数效应
Claude Code 会沿目录树自上而下合并 CLAUDE.md——一个根文件,加上 packages/api/ 里的一个,再加上你恰好正在工作的那个目录里的一个。它们会叠起来。一个把每个单独文件都控制在”还算合理”的 800 词的团队,在很深的 monorepo 里,照样可能往一个 session 里加载 3000 词以上的合并指令,而且没人会察觉这个合计值,因为单看任何一个文件都不大。
如果你维护嵌套的 CLAUDE.md,真正要看的数字是你最深的工作目录里被加载的那个合计,而不是任何单个文件的大小。
一份可操作的体积预算
没有可测量的悬崖,所以把下面这些当成编辑判断,而不是物理定律:
根 CLAUDE.md 体积 | 会怎么样 |
|---|---|
| 约 100 行 / 800 token 以内 | 健康区。每轮便宜、注意力代价可忽略、也容易保持无矛盾。往这里靠。 |
| 约 100–250 行 | 只要每一行都对得起自己的位置就还行。这个体量的文件多半有 40% 可删。每月重读一遍。 |
| 250–500 行 | 几乎一定臃肿了。你在付实打实的每轮 token,也开始挤占窗口。审一遍。 |
| 500 行以上 | 在主动跟你作对。模型在调和矛盾,你真正的工作正被推向中段。狠狠砍。 |
这些是针对根文件的。如果你有嵌套,再在上面叠加乘数。
“约 100 行以内”为什么反复出现——本文和偷烧 token 的坏习惯那篇都是——并不是因为这是个魔法数字。而是因为:几乎每个代码库里真正非显而易见、反直觉、非知道不可的规则,差不多就这么点篇幅装得下。超出的部分,通常是该放进代码注释的示例、模型本就知道的套话,或是该放进你个人的 ~/.claude/CLAUDE.md 里的偏好。
怎么实际量一量你的
不用靠猜,两个快速检查:
- 数 token,不是数词。 把文件丢进任意一个分词器(或者直接用词数 × 约 1.3)。这就是你每轮要付的数字。如果光根文件就超过约 1500 token,你就有了一个清理目标。
- 读出声测试。 一口气从头到尾把整个文件读一遍。每读到一行你会羞于对一个能干的新同事说出口的话(“写干净的代码”),或一条和前面矛盾的规则,就标记下来。把标记的删掉。多数文件第一遍就能砍掉三分之一长度,而指导力毫无损失——通常更好,因为信噪比提升了。
留一行的标准,和写作指南里那条一样:一个全新的、训练良好的模型,本来就会这么做吗?如果会,那这行不管听起来多有道理,都是废重量。对得起位置的,是那些模型猜不到的——你特定的框架、你那个谁都不许动的函数、那个每个新人都会踩的部署坑。
一句话版本
大上下文窗口并没有让 CLAUDE.md 的体积变成免费。它只是把成本从”塞不下”挪到了”悄悄拖垮窗口里其它所有东西”。一个紧凑的文件既被读得好,又给模型留出推理你真实代码的空间。一个臃肿的文件付两遍钱——每轮的 token,加上每轮的注意力——只为了换来你本可以用四分之一篇幅写完的指导。
如果想让人帮你把把关,那就是我们在本站提供的 CLAUDE.md 审计:90 分钟、一份”什么在烧你钱”的书面诊断、一个重写好的根文件,外加五套可复用模板。个人 $299,2–10 人团队 $799。体积、以及体积背后的那些习惯,正是我们查出来的大头。
延伸阅读
- CLAUDE.md 中 5 个偷烧 token 的坏习惯 —— 每轮 token 的那一面,附前后对比重写。
- 如何写好一份 CLAUDE.md —— 一开始什么该写进文件。
- 团队规模 5 人以上时的 CLAUDE.md 难题 —— 当不止一个人编辑文件后,体积和漂移如何叠加恶化。
资料来源:Liu et al., “Lost in the Middle: How Language Models Use Long Contexts” (2024);Chroma, “Context Rot” (2025);Anthropic Claude Code 关于 memory 与 CLAUDE.md 加载的官方文档。