ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Anthropic 工程师 Thariq 文章解读:删掉 80% 系统提示词后,Claude 5 反而更强了

2026/8/5 3:11:30 拓冰建站 浏览量
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 年代写 C,malloc/free 手动管内存。后来的语言有了垃圾回收。程序员不用再写「在第三行之后释放这个指针」。约束从代码注释放进了运行时。

写 prompt 的历史,可能也在走同一条路。

那些「永远不要」的绝对禁令,会慢慢被模型内置的判断力取代。剩下的上下文里,存的是模型没法自己推断的东西:品味、坑点认知、对「完成」的定义。

Thariq 原文结尾有一句话,值得钉在显示器旁边:

最强大的上下文越来越不是模型必须服从的文字,而是它可以运行的代码


小结

Claude 5 的上下文工程新规则,能压成三句话:

  1. 少写禁令,多给判断框架。

  2. 把复杂的内容拆成按需加载的碎片。

  3. 能变成代码的约束,就不要留在文字里。

Anthropic 删了 80% 的系统提示词。不是因为那些内容不重要。是因为模型已经不需要别人替它做决定了。