上下文工程:渐进式披露与官方新规则

官方把 Claude Code 的系统提示词删掉了 80%,评测分数没掉。老经验里「多给规则」「重要的话说两遍」全都过时了。

约 9 分钟

上下文工程要解决的问题只有一个:

它这一轮能装的东西是有限的。你放进去的每一样,都在挤掉别的。

这一节讲怎么在 Claude Code 里落实这件事。原理层面的两篇在文章区:

第二篇尤其值得读——它列出的六条已经过时的老经验,很多人的配置正是照着那些写的。

一条会让你重写配置的事实

Anthropic 自己把 Claude Code 的系统提示词删掉了 80%,评测分数没掉。

这件事的含义不是「提示词不重要」,而是:

对新一代模型,「说得多」和「说得对」已经不是同一个方向了。多说反而稀释。

如果你的 CLAUDE.md 是照着「规则写得越细越好」「重要的话说两遍」这类老经验写的,现在该减肥了。

渐进式披露:这一节的核心手法

一句话:

不要一开始就把所有东西都放进去。放一个索引,让它需要的时候自己去取。

Claude Code 里到处都是这个设计,认出来之后你就能用它:

机制 一开始加载的 用到时才加载的
技能 只有一行描述 完整正文
技能的附件 SKILL.md 里的一句指路 reference.md 的全文
MCP 工具 只有工具名 完整的参数说明
带路径限定的规则 什么都不加载 读到匹配文件时才加载
子目录的 CLAUDE.md 什么都不加载 读到那个目录时才加载

你自己写配置的时候,用同一套思路。

四条可以马上做的

① 把 CLAUDE.md 砍到 200 行以内

官方的建议数字。 理由不只是省地方:

更长的文件消耗更多上下文,并且降低遵守度。

怎么砍

  • 它能从文件里自己看出来的,删掉 —— 目录结构、有哪些文件、用了什么工具
  • 多步骤的流程,挪去技能
  • 只在某类文件上才需要的,挪去带路径限定的规则

跑一次 /doctor,它会直接给你精简建议。

② 技能主文件不超过 500 行

超了的部分拆成附件,在主文件里指路:

Markdown
## 补充资料

- 完整编码规范见 [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 /skillst 哪些技能在白占地方
4 翻一下自动记忆,删掉已经不对的

第 4 步最容易被忘。 自动记忆是它自己写的,你从来没主动加过,但它一直在起作用,而且里面的东西可能是三个月前的情况。

本节事实查证日期:2026-08-05。 依据:官方 Explore the context windowExtend Claude with skillsHow Claude remembers your project

← 回到手册目录