你的"完美Prompt",正在拖垮模型。
一个反常识的真相
Claude Code 核心成员 Thariq(Anthropic 创始团队、Agent SDK 负责人)前两天发了一篇复盘,干了一件很多人想都不敢想的事:
他们把 Claude Code 的系统提示词删掉了超过 80%。
不是随便删删,是拿编码评测验证过的。结果?没有任何可测到的损失。
删掉的是什么?是他们过去几年精心写下的规则——"不要加注释"、"文档酌情保留"、"绝不写多行注释块"……这些当年为了防模型翻车而设的"硬规则",现在成了累赘。
如果你也在用 Claude Code、Cursor 这类工具,大概率干过同样的事:给 AI 写规则,发现它不听就补一条,过几天又踩坑再补一条。规则文件越堆越厚,塞满了"必须""绝对""严禁"。
Thariq 的判断很明确:到了 Claude 5 这一代,你写的那堆规则,很多正在拖累模型。
为什么"规则"反而成了负担?
要理解这件事,得先看清模型每次干活时到底拿到了什么。
你以为你只输入了一句话,实际上模型拿到的是系统提示词 + Skills + CLAUDE.md + 历史记忆 + 你的当前输入的超级混合体。
Thariq 读团队的使用记录,发现同一次请求里经常有互相打架的指令:
系统提示词说:"文档酌情保留" 某个 Skill 规定:"不要加任何注释" 你的输入里又写着:"把这段逻辑解释清楚"
模型动手前,得先在这堆重叠又矛盾的"圣旨"里疯狂内耗,猜到底该听谁的。
早期模型判断力弱,不给硬规则确实会乱来。所以 Anthropic 宁可一刀切,写下"默认不写注释,绝不写多行注释块"。哪怕这话在某些场景下是错的。
但现在,Claude Opus 5 和 Fable 5 的判断力已经够强。 它们能自己处理这些决定,不再需要明确规则兜底。
原来那条"绝不写注释",现在改成一句话:
"写出读起来和周围代码一致的代码,匹配它的注释密度、命名和惯用写法。"
把决策权还给模型,效果反而更好。
6个必须抛弃的"AI使用旧习惯"
Thariq 把这次反转拆成了六组对照。每一组,过去都是广泛认可的最佳实践,现在都成了该改的习惯。
从"给死规则"到"给判断力"
❌ 旧做法:"必须用3个空格缩进""绝不写多行注释"
✅ 新做法:"写出与周围代码风格一致的代码,匹配当前的注释密度和命名习惯"
写死的规则在一部分场景里必然是错的。模型判断力上来后,宽泛的意图比僵硬的规则命中率高。
从"疯狂举例子"到"设计好接口"
❌ 旧做法:给模型写 9100 字的 Few-Shot 示例,演示工具怎么用
✅ 新做法:优化工具参数本身。比如 Todo 工具的状态枚举设为 pending、in_progress、completed,再加一句"保持只有一项处于 in_progress",模型瞬间就懂了
举例子会把模型框死在特定的探索空间里。设计好接口,比写例子更高效。
从"全塞前面"到"渐进式披露"
❌ 旧做法:把几万字的文档全堆进 CLAUDE.md,担心模型找不到
✅ 新做法:拆成文件树,需要哪块加载哪块。验证规则、代码审查规范拆成独立 Skill,按需调用
新模型很擅长在恰当的时机加载恰当的上下文,不用你一次性全塞给它。
从"反复强调"到"简洁的工具描述"
❌ 旧做法:系统提示词里提一遍,工具描述里再写一遍用法
✅ 新做法:用法说明直接写进工具描述本身,系统提示词里删掉重复内容
新模型不吃重复叮嘱这套。说一遍就够了。
从"手动记笔记"到"自动记忆"
❌ 旧做法:用 # 快捷键手动把信息存进 CLAUDE.md
✅ 新做法:让模型自动保存与当前工作相关的记忆,不用你手动干预
从"简单规格"到"丰富引用"
❌ 旧做法:写长篇文字规格说明
✅ 新做法:直接 @ 提及代码文件、HTML 原型、测试用例。代码是最高保真的引用,效果远超几百字描述或一张截图
你的 CLAUDE.md 明天该怎么改?
Thariq 给了分层重构指南,建议直接照做:
CLAUDE.md 保持极度轻量
简短说清仓库是干嘛的,然后把 80% 的篇幅留给"坑"。
比如:"本项目所有类型定义都在 types.ts 中,其他地方严禁新建类型"——这种反常规约定必须写。
而模型看一眼文件系统就知道的常识,一个字都别写。
Skills 当作"轻量级外挂"
适合沉淀团队特定的最佳实践。如果某个 Skill 太长,拆成多个小文件。别让它变成新的"规则牢笼"。
优先引用代码文件
养成用 @ 提及文件的习惯。给模型它最熟悉的语言(代码),而不是让它去猜你的自然语言描述。
别走向另一个极端
看到这里,千万别手滑把配置文件全删了。
"松绑"的前提是模型判断力足够强。 换成老模型,没有护栏照样翻车。
更重要的是,约束要分场景:
后果极其严重的领域,硬规则该留就留。 怎么做都不算错的风格问题,交给模型自己判断。
现在就打开配置开始删
如果你手里正好有一个越写越厚的 CLAUDE.md,或者一堆互相打架的 Cursor rules,第一个动作很简单:
试着删。
逐条问两个问题:
这条是不是模型看一眼代码就知道的显而易见的事?是,就删。 这条是不是怎么做都不算错的风格偏好?是,就换成一句宽泛的意图。
Anthropic 还推出了 claude doctor 命令,在 Claude Code 里用 /doctor,帮你把 Skills 和 CLAUDE.md 调整到合适的规模。
写在最后
模型在变强,输入给它的上下文也得跟着换写法。
过去那套"加规则、堆例子、全塞前面"的经验,很多到了 Claude 5 这代该退场了。下次再想给模型补一条规则前,先想想:它真的需要这条吗?
从"控制狂"变成"指挥官",把判断力还给模型,把精力留给真正的架构设计。
📎 原文参考:Thariq《The new rules of context engineering for Claude 5 models》
💬 灵魂拷问:
你的 CLAUDE.md 或 Cursor rules 有多长?有没有遇到过"规则打架"的坑?
如果这篇文章帮你理清了思路,点个「在看」转发给那个还在熬夜写 Prompt 的同事 😏
夜雨聆风