Anthropic 的工程师做了一件让整个 prompt engineering 社区震惊的事:他们删掉了 Claude Code 系统提示词中超过 80% 的内容,针对 Claude Opus 5 和 Claude Fable 5 这一代新模型——代码评测分数没有任何下降。
这背后是一个根本性的转变:为前几代模型精心堆叠的那些约束、规则和示例,在第五代 Claude 上已经变成了"死重"。新模型足够聪明,可以靠自身的判断力处理大部分场景,而不需要你在提示词里事无巨细地规定每个行为。

Anthropic 技术团队成员 Thariq Shihipar 在 Claude 官方博客上发布了这篇指南,标题是《The new rules of context engineering for Claude 5 generation models》。文章的核心论点很直接:我们过去在系统提示词、CLAUDE.md 文件和 Skills 中堆砌的那些最佳实践,很多已经变成了"神话"。
冲突的上下文
Anthropic 在审查内部使用 Claude Code 的对话记录时,发现了一个典型问题:单次请求中,系统提示词、Skills 和用户请求会互相矛盾。

系统提示词说"保留文档",Skills 说"不要加注释",用户请求说"让它跟原来的一样"——这三条指令同时出现在一个上下文窗口里,模型必须反复推理才能调和冲突。老模型没有这些"护栏"就会出问题,但新一代模型的判断力已经足够处理这些决策。
六条新旧法则
文章用一组清晰的"Then vs Now"对照来展示变化:

1. 给规则 → 让模型判断
旧做法:系统提示词中写满硬性规则,比如"默认不写注释""绝不创建计划文档""注释不超过一行"。
新做法:只写一句"写代码时匹配周围代码的风格:注释密度、命名规范、习惯用法"。模型自己会根据上下文判断该不该写注释。
2. 给示例 → 设计接口
旧做法:为每个工具写详细的使用示例。
新做法:不用示例,转而优化工具的接口设计。比如 TodoWrite 工具,不再写 9100 字符的使用指南和示例,而是把 status 字段设计成 pending、in_progress、completed 三个枚举值,再加上"同一时间只保持一个 in_progress"的约束。模型从接口定义本身就能推断出正确用法。

3. 前置加载 → 渐进式披露
旧做法:把所有可能的指令一次性塞进系统提示词,以防模型需要时找不到。
新做法:把信息拆成多层文件,模型在需要时自行加载。Claude Code 把代码审查和验证流程移到了独立的 Skills 中,按需调用。工具也支持"延迟加载"——模型必须先通过 ToolSearch 搜索工具的完整定义才能使用,这让系统能支持更多工具而不挤占上下文窗口。
4. 重复指令 → 简洁的工具描述
旧做法:系统提示词和工具描述里重复写同一套指令,因为老模型对上下文末尾的指令更敏感。
新做法:指令只写一次,放在工具描述里。新模型不需要重复提醒。
5. CLAUDE.md 记忆 → 自动记忆
旧做法:用户手动按 # 键把信息写入 CLAUDE.md。
新做法:Claude 自动判断哪些信息值得记住并主动保存。
6. 简单规格 → 丰富的引用
旧做法:用 Markdown 文件写规格说明,模型按需查阅。
新做法:引用可以是 HTML 制品、完整的测试套件、另一个代码库中的函数。甚至可以给模型一个评分标准(rubric),让它启动验证 agent 按照你的品味来检查输出质量。
落地实践
对于使用 Claude Code 的开发者,文章给出了具体的分层建议:
系统提示词:与产品深度绑定,描述 Claude 在什么产品中运行、做什么。Claude Code 用户一般不会改这个。但如果你在构建自己的 agent 框架,这是你需要花时间打磨的地方。
CLAUDE.md:保持轻量。简要描述仓库是做什么的,大部分 token 应该花在代码库中的"陷阱"(gotchas)上——那些模型光看文件系统不容易发现的约定。比如"类型定义全部在一个文件里""验证脚本在 scripts/ 目录下"。
Skills:当作轻量级指引。让 Claude 在需要时找到信息,而不是事无巨细地约束每一个动作。长 Skill 应该拆成多个文件,用渐进式披露。Skill 最适合编码你或你的团队特有的意见、知识和最佳实践。
引用:用 @ 提及文件来引用。代码文件优于自然语言描述——一个 HTML 设计稿比一段设计描述或截图效果更好,因为代码是模型最擅长理解的语言。
claude doctor 命令
Anthropic 还推出了一个新命令来帮开发者自动完成这个过程。在 Claude Code 中输入 /doctor,它会检查你的 Skills 和 CLAUDE.md 文件,标记过度约束的部分,建议如何精简。
对开发者的启示
这篇文章的影响范围不限于 Claude Code 用户。任何在构建 agent 系统的人——无论用 Claude API、其他模型 API,还是在 Hermes、LangChain 等框架上做开发——都需要重新审视自己的上下文工程策略。
过去两年,prompt engineering 社区积累了大量"最佳实践":system prompt 里要加角色设定、输出格式示例、错误处理规则、工具使用示例……这些做法在弱模型时代确实有效,因为它们本质上是"补丁"——用人工规则弥补模型能力的不足。
但模型能力在快速逼近一个拐点:当模型本身的判断力足够强时,人工规则反而成了噪声。它们互相冲突、占据 token、降低响应速度,甚至限制模型探索更优解。Anthropic 的实验数据证明了这个拐点已经到来——至少对 Claude 5 这一代模型而言。
当然,这不意味着系统提示词应该完全留空。Anthropic 自己保留的 20% 内容,主要是产品上下文和少数确实需要硬性约束的关键区域。核心原则是:把"规则"换成"判断",把"示例"换成"接口",把"前置加载"换成"渐进式披露"。
对于还在给系统提示词写 500 行规则的开发者,也许是时候做一次大扫除了。