Anthropic 工程师 Thariq 文章解读:删掉 80% 系统提示词后,Claude 5 反而更强了 Anthropic 做了一件听起来很疯狂的事。他们把 Claude Code 的系统提示词删了超过 80%。编程评测分数纹丝不动。发文的是 Thariq Shihipar。Anthropic 技术团队成员Claude Code 的主力工程师。一、80% 消失之谜先看一个数字超过 80%。这不是边角料模块的优化。这是 Claude Code 的系统提示词。定义着 Claude「是谁」「能做什么」「不能做什么」的关键指令集。删完之后Anthropic 的编程评估没出现可测量的损失。Thariq 在文章里写道我们发现我们把 Claude Code 约束过头了。不管是系统提示词还是 CLAUDE.md 文件、skills都是这样。他们翻了自己的内部使用记录。发现一个荒唐现象单次请求里同时出现多条互相矛盾的指令。一层说「酌情保留文档」。另一层说「不要添加注释」。系统提示词、skills、用户请求三方打架。Claude 得先花 reasoning token 解开这些死结才能开始干活。那些防止弱模型犯傻的护栏。到了 Claude 5 身上变成了税。二、六场范式革命Thariq 把 Anthropic 内部的经验总结成六组「过去 → 现在」的转变。第一场从规则到判断。旧系统提示词写着「默认不写注释永远不要写多行注释块」。新版本只有一句话「写出来的代码要读起来像周围的代码匹配其注释密度、命名方式和风格习惯。」模型自己读代码库自己决定。不需要硬禁令。第二场从示例到接口设计。以前给 Claude 提供工具调用的完整例子。现在发现例子反而限制了模型的探索空间。与其写十段示例不如把工具参数设计好。一个status: pending | in_progress | completed的枚举比三段英文说明更管用。第三场从一次性塞满到渐进式披露。代码审查手册、验证步骤、部署规范。以前全塞进系统提示词每次启动都加载。现在拆成 skills只在需要时才拉取。工具也支持「延迟加载」。用到时才查完整定义。第四场从重复指令到单次描述。旧模型容易「忘记」前面的内容。同一条规则要在系统提示词和工具描述里各写一遍。Claude 5 不需要重复提醒。规则只写一次放在工具自己的描述里。第五场从手动记忆到自动记忆。以前用户得手动按#往 CLAUDE.md 里记偏好。现在 Claude 自动从对话里提取并保存。第六场从 Markdown 规格到丰富引用。规格不再只是 Markdown 计划文件。现在能引用 HTML 原型、测试套件、其他代码库的函数甚至评分标准rubrics。让验证 agent 按团队的品味打分。三、反转最佳实践如何变成了毒药六场变化背后有个更深的逻辑。被删掉的 80%不是垃圾代码。它们曾经必要。旧模型判断力不够。不加硬性约束会写出错误注释、删错文件、生成不合适的文档。所以 Anthropic 层层加码。「永远不要写注释」「不要创建计划文档」「不要……不要……」这些「防傻规则」堆了多年变成一份臃肿的保险单。它们覆盖每一种曾经发生的最坏情况。代价是模型还没开始干活就得先解一堆逻辑矛盾。写注释还是不写留文档还是不留每个请求里都有三四层互相冲突的指令。Claude 花额外的推理 token判断该听谁的。真正的任务反而被淹没在噪声里。这些约束曾经是避免最坏情况的必要手段。但我们发现可以删除其中许多让模型改为利用周围上下文和自身判断力。这不是 Anthropic 变懒。是模型变强了。「防傻」这件事。从提示词的职责变成了模型内置能力的一部分。四、CLAUDE.md 减肥指南Thariq 给的实操建议要点就四个字做减法。系统提示词定义 Claude 在什么产品里运行。大多数人不用碰。如果你自己搭 agent 框架这才是最值得花时间的地方。CLAUDE.md控制在 200 行以内。只写 Claude 从文件树里看不出来的东西。项目约定里的隐藏坑点。模型读代码就能发现的删掉。Skills长 skill 拆成多个文件。入口要薄详细内容按需加载。只在犯错代价很大的地方加约束。References用引用 HTML 原型、测试套件。比截图、文字描述精确得多。Thariq 还提了个自查技巧。搜一下 CLAUDE.md 里的「永远」「一定」「必须」。如果是关于代码风格和工作习惯的绝对规则考虑改成判断标准。涉及生产数据和安全边界的除外。在 Claude Code 里跑一次/doctor。它会自动标记冗余规则、互相冲突的指令。五、更大的问题Thariq 要说的不是怎么优化 Claude Code 配置。他在讲一个更根本的趋势模型能力每上一个台阶「告诉模型做什么」和「告诉模型怎么判断」之间的比例就会重新洗牌。旧模型时代上下文工程是防御性的。预判所有可能出错的地方提前堵住。Claude 5 时代上下文工程变成设计性的。给模型足够的上下文信号让它自己做出正确判断。约束从文字里移出来进入结构。枚举取代示例。schema 取代禁令。可执行的验证代码取代写死的检查手册。这其实和软件工程的演进是同一件事。70 年代写 Cmalloc/free 手动管内存。后来的语言有了垃圾回收。程序员不用再写「在第三行之后释放这个指针」。约束从代码注释放进了运行时。写 prompt 的历史可能也在走同一条路。那些「永远不要」的绝对禁令会慢慢被模型内置的判断力取代。剩下的上下文里存的是模型没法自己推断的东西品味、坑点认知、对「完成」的定义。Thariq 原文结尾有一句话值得钉在显示器旁边最强大的上下文越来越不是模型必须服从的文字而是它可以运行的代码。小结Claude 5 的上下文工程新规则能压成三句话少写禁令多给判断框架。把复杂的内容拆成按需加载的碎片。能变成代码的约束就不要留在文字里。Anthropic 删了 80% 的系统提示词。不是因为那些内容不重要。是因为模型已经不需要别人替它做决定了。