上下文工程:渐进式披露与官方新规则
官方把 Claude Code 的系统提示词删掉了 80%,评测分数没掉。老经验里「多给规则」「重要的话说两遍」全都过时了。
上下文工程要解决的问题只有一个:
它这一轮能装的东西是有限的。你放进去的每一样,都在挤掉别的。
这一节讲怎么在 Claude Code 里落实这件事。原理层面的两篇在文章区:
第二篇尤其值得读——它列出的六条已经过时的老经验,很多人的配置正是照着那些写的。
一条会让你重写配置的事实
Anthropic 自己把 Claude Code 的系统提示词删掉了 80%,评测分数没掉。
这件事的含义不是「提示词不重要」,而是:
对新一代模型,「说得多」和「说得对」已经不是同一个方向了。多说反而稀释。
如果你的 CLAUDE.md 是照着「规则写得越细越好」「重要的话说两遍」这类老经验写的,现在该减肥了。
渐进式披露:这一节的核心手法
一句话:
不要一开始就把所有东西都放进去。放一个索引,让它需要的时候自己去取。
Claude Code 里到处都是这个设计,认出来之后你就能用它:
| 机制 | 一开始加载的 | 用到时才加载的 |
|---|---|---|
| 技能 | 只有一行描述 | 完整正文 |
| 技能的附件 | SKILL.md 里的一句指路 |
reference.md 的全文 |
| MCP 工具 | 只有工具名 | 完整的参数说明 |
| 带路径限定的规则 | 什么都不加载 | 读到匹配文件时才加载 |
子目录的 CLAUDE.md |
什么都不加载 | 读到那个目录时才加载 |
你自己写配置的时候,用同一套思路。
四条可以马上做的
① 把 CLAUDE.md 砍到 200 行以内
官方的建议数字。 理由不只是省地方:
更长的文件消耗更多上下文,并且降低遵守度。
怎么砍:
- 它能从文件里自己看出来的,删掉 —— 目录结构、有哪些文件、用了什么工具
- 多步骤的流程,挪去技能
- 只在某类文件上才需要的,挪去带路径限定的规则
跑一次 /doctor,它会直接给你精简建议。
② 技能主文件不超过 500 行
超了的部分拆成附件,在主文件里指路:
## 补充资料
- 完整编码规范见 [reference.md](reference.md)
- 输出示例见 [examples.md](examples.md)
指路这一步不能省。 不写清楚每份文件是什么、什么时候该读,它不会去翻。
还有一条细节值得知道:压缩之后重新附上的技能内容只保留前 5000 个 token——所以最重要的指令要放在文件开头。
③ 把「读一大堆」的活派出去
这是省上下文最有效的一招,没有之一。
子代理有自己独立的上下文空间。它读了三十份材料,回到你这边的只有一份清单。
④ 换任务就 /clear
最便宜、也最容易被忽略的一条。
做完一件事不清就接着做下一件,旧对话会一直挤占空间,而且每一轮都在为它付费。
什么活不过压缩
这张表决定了你该把重要的东西放在哪里。
| 内容 | /compact 之后 |
|---|---|
项目根目录的 CLAUDE.md |
在(重新从磁盘读) |
| 自动记忆 | 在 |
| 带路径限定的规则 | 丢 |
子目录的 CLAUDE.md |
丢 |
| 技能清单 | 丢(只有实际调用过的会保留正文) |
| 用过的技能正文 | 在,但有 5000 token / 每个的上限,总额 25000 |
一条实际的结论:
渐进式披露省的是上下文,代价是「用完可能就没了」。
必须一直生效的东西,还是要写在项目根目录的
CLAUDE.md里——那是唯一保证压缩之后还在的地方。
技能装太多会有反效果
这条不那么直觉,但很实际:
技能清单本身是有预算的——默认是上下文窗口的 1%。超了会从最少用的开始丢描述。
也就是说:你装了三十个技能,其中二十个从来不用,它们会挤掉你真正常用的那几个的描述。
而描述被丢掉的技能,它就想不到该用。
处理办法:
/skills
按 t 按占用大小排序,用空格把不用的关掉。
或者跑 /doctor——它会告诉你哪些装了从来没被调用过,并估算技能清单花了你多少上下文。
一个反直觉的取舍
渐进式披露不是免费的。
代价是「多一步」:它得先意识到需要那份资料,然后去读。这一步有时候会漏。
所以判断标准是频率:
| 用到的频率 | 怎么放 |
|---|---|
| 每次都要 | 直接放 CLAUDE.md —— 别搞渐进式 |
| 偶尔要 | 技能 / 附件 / 路径限定规则 |
| 几乎不要 | 删掉 |
把「每次都要」的东西做成渐进式加载,是过度设计。 它会让本该稳定生效的规则变成「有时候生效」。
一份自检
每隔一段时间跑一遍:
| 步骤 | 命令 | 看什么 |
|---|---|---|
| 1 | /context |
谁占得最多 |
| 2 | /doctor |
CLAUDE.md 有没有可删的、技能有没有没用的 |
| 3 | /skills 按 t |
哪些技能在白占地方 |
| 4 | — | 翻一下自动记忆,删掉已经不对的 |
第 4 步最容易被忘。 自动记忆是它自己写的,你从来没主动加过,但它一直在起作用,而且里面的东西可能是三个月前的情况。
本节事实查证日期:2026-08-05。 依据:官方 Explore the context window、 Extend Claude with skills 与 How Claude remembers your project。