Anthropic 删掉 80% 系统提示词:Claude 5 上下文工程新规拆解

Anthropic 把 Claude Code 的提示词删除了 80%,跑完官方评测之后,成绩一点没有下降。这篇文章是《找到你的未知》的作者、Claude Code 的工程师写的,名称叫做《Claude 5 时代模型的上下文工程新规则》。这篇文章带你看一下它的内容,结尾说一下同步配套上线的 /doctor 命令,官方会建议你删什么,你自行判断是否值得使用。
上下文工程是什么:提示词管一次,上下文管每次

在文章的开头,他说上一篇《找到你的未知》讲的是如何向 AI 提问,怎么把你不知道的挖出来。你发给 AI 的每一句话,都只是它收到的内容的一部分,剩下的大头是系统提示词,加上 Skills、CLAUDE.md 文件、记忆,这些东西拼在一起,才是 AI 每次干活真正读到的全部。它们有一个名字,叫做上下文;管理这一堆东西,也有一个名字,叫做上下文工程。
他还点出了两者的区别:提示词只管这一次,上下文是跨越多次请求通用的。
| 提示词 | 上下文 | |
|---|---|---|
| 管多远 | 只管这一次 | 跨越多次请求通用 |
| 里面有什么 | 你发给 AI 的这一句话 | 系统提示词、Skills、CLAUDE.md、记忆 |
| 写错一句 | 影响这一次 | 拖累之后的每一次请求 |
反过来说,上下文写错一句话,拖累的是之后的每一次请求。这是整篇文章的核心。
为什么删:同一次请求里,指令在互相打架

根据这个核心,他们做了一个动作:针对 Opus 5、Fable 5 这一代模型,把 Claude Code 的系统提示词删掉了 80% 以上。删除之后跑评测,得到的结果是没有任何可以测出来的损失。
但这里有一个点需要声明:他跑的是他自己的官方评测。
导致他们删掉这些规则的原因,是他们在读取自己内部员工使用 Claude Code 的转写记录之后,发现同一个请求里面,AI 会同时收到互相打架的指令:一边是适当保留文档,一边是禁止写注释。系统提示词说一套,Skill 说一套,用户又说一套。模型通常猜得出你真正想要的是什么,但它需要先花费注意力调解这些矛盾,才可以开始干活。
这些规则是因为旧模型的判断力不够,所以需要强加一些规则,当时来看是特别有必要的束缚。现在的新一代模型不管是能力还是判断力,都已经足够把很多保险措施直接拆掉,让它自己根据现场情况来判断。
文章里还提到一个背景:早年 CLAUDE.md 身兼数职,又当记忆本又当说明书。现在不管是记忆还是 Skills 都各就各位,不用再什么都往里面塞了。
六条新规逐条拆

文中给到了六种解决办法。
第一条:给判断力
旧系统提示词里写了:代码里默认不写注释,永远不许写多段的注释块,不许自建规划、决策、分析文档。但这些禁令对于一部分场景其实没有任何用:用户可能有自己的文档偏好,特别复杂的代码才需要多行注释。在新系统提示词里,这一整段直接换成了一句话:写出来的代码要像周围的代码,注释密度、命名习惯都根据现场仓库的情况走。
第二条:设计接口
之前我们教 AI 使用工具的时候,头号法则是给它使用示例。他们在新模型上发现了一个相反的效果:我们给的示例会把模型框死在一个套路里,本来能够探索的空间就被示例锁住了。一个很简单的例子:之前我们给了它一种排版方式、一种设计风格,那么在新模型上,它就永远会被这一种设计风格框住。当你想让它发散思维的时候,它是被这个框架框死的。为什么在 Opus 5 的时候,我们想要它进行一些发散思维的对话,会发现它听不懂你说的话,就是这个原因。
解决办法是把工具本身设计得会说话。原文里的例子:待办工具状态就三个,待办、进行中、已完成,再加一条「同时只能有一项进行中」。状态值本身就告诉了模型应该怎么干,不需要再写什么示例说明什么是待办、什么是进行中、什么是已完成。
第三条:按需加载
这其实就是他们一直以来对 Skills 的用法。之前的做法是:代码审查怎么做、验证怎么做,全部写在系统提示词里,不管这一次到底用不用得上。现在他们把这些完全拆分成了独立的 Skills,要用的时候才加载。这个思路官方取了一个名字,叫做渐进式披露。这个称呼在之前 Skills 发布的时候就已经有了,它就是 Skills 的本质:按需加载,渐进式披露。这一部分我们反而不需要太过在意。
这里插一嘴:我之前有一条视频讲了我的 CLAUDE.md 是怎么做的(见《CLAUDE.md 分层架构》)。我的 CLAUDE.md 全部都是路由,规则、Hooks、Skills 全部分开存放。当时是我自己摸索出来的土办法,现在官方等于把这套做法写到了它的系统提示词里。
第四条:说一遍就够
以前重要的话需要说三遍,现在说一遍就够了。旧模型有个毛病:开头的指令记不牢,更喜欢听结尾的指令。所以官方自己写系统提示词的时候,也喜欢先写一遍用法,然后在每一个工具里再写一遍使用说明。现在把这些重复全部删掉了,工具怎么用只写在工具里,调用的时候才根据工具说明去调用,不会在上下文里占用过多的系统提示词。
第五条:自动记忆
以前是手动记笔记,现在全部自动记。这一条我觉得官方有一点把换汤不换药的东西又全部搬出来了。我们都知道记忆这个功能已经推出来很久了,它还推出了叫做自动 Memory 的记忆,本身就是由模型自己判断哪些值得存储。现在又把这一套重新单拎出来说了一遍。这一条我觉得有点无所谓。
第六条:给参照物
以前给简单的文档,现在给丰富的参照物。原文里说,以前计划模式是靠 Markdown 格式存计划、存规格,现在模型可以吃得下复杂得多的参照物,比如 HTML 原型、一套测试用例,甚至别的代码库里的一个现成函数,都可以直接当做规格来用。它还提到一种参照物叫做评分标准:把你的品位写成标准,让 AI 开个验证代理拿这个标准去验。
这个东西我感觉是已经听过的说法。上一篇文章里其实就已经提到了这一段:给参照物最好是给代码之类的东西。只不过现在把这一条直接写到了系统提示词里,所以我觉得这一段有一点冗余。
| 新规 | 旧做法 | 新做法 | 我的看法 |
|---|---|---|---|
| 给判断力 | 一整段禁令:不写注释、不建文档 | 一句话:像周围的代码走 | 该删 |
| 设计接口 | 给使用示例 | 工具本身会说话 | 解释了 Opus 5 听不懂发散对话的原因 |
| 按需加载 | 审查、验证全写在系统提示词 | 拆成独立 Skills,用时才加载 | 就是 Skills 的本质,不用太在意 |
| 说一遍就够 | 用法写一遍,每个工具再写一遍 | 只写在工具里 | 该删 |
| 自动记忆 | 手动记笔记 | 全部自动记 | 换汤不换药,无所谓 |
| 给参照物 | Markdown 存计划、存规格 | HTML 原型、测试用例、现成函数、评分标准 | 上一篇已经讲过,有点冗余 |
普通用户怎么用:四件事
这一套东西落到我们普通用户身上应该怎么用,博客里提到的很多技术参数应该怎么理解?
系统提示词:我觉得普通用户根本不需要管它的系统提示词是怎么写的,只有自建 Agent 的人才需要在这里重点下功夫。包括之前 Claude Code 的源码泄露,里面的工程全部都是提示词,这些提示词对普通用户来说感知没有那么强烈。你不去开发 Agent,根本用不到这些东西。
CLAUDE.md 轻量化:简单说清楚这个仓库是干嘛的,然后写一些只有你知道的东西,比如你要求它怎么称呼你、别样的癖好、名字这些。AI 看仓库代码能看出来的,就不需要再写进去了。这是他说的。
Skills 当作轻量的指南:别写成条例。最值钱的 Skill 是装你自己的观点和工作流的那一种。长 Skill 拆成多个文件,继续按需加载。
参照物:现在你可以把想给它的参照物直接用 @ 输入。虽然这个功能在 Codex 以及 VSCode 里很早就实现了,但到目前为止,这是第一次在 Claude Code 里提出来这个功能的使用。
/doctor 与总结:旧规则是补丁,该撕了

文章开头和结尾都提到,这一套最佳实践官方已经做了配套的命令:对话里输入 /doctor,这个命令就会自动给你的 Skills、你的 CLAUDE.md 文件瘦身。
整篇文章就是在强调:模型的能力强大之后,不需要那么多规则去束缚它。之前的另一篇文章《找到你的未知》,讲的是让 AI 把你不知道的挖出来,用来提升你自己;这一篇说的是把模型不需要的从上下文里删掉,用来提升你的 Agent 的能力。
我们写的规则本质上是在给旧的模型打补丁。模型升级之后,这些补丁就应该取消掉,因为它们会变成模型的绊脚石。
当然这是我自己的看法,如果你有别的想法,欢迎在评论区说出来。