系统提示词砍掉 80%,模型反而更聪明了
最近看到Claude Code 团队的 Thariq 在 AI Engineer 大会上说了一个观点:他们把 Claude Code 的系统提示词砍掉了 80%,模型输出质量不降反升。
我细想了一下,之前大家都推崇harness,给模型加上各种功能限制,花很久打磨 CLAUDE.md,加了各种"不要做 X""注意 Y""必须 Z"的指令,只为了模型回答的质量更高,但是在模型能力越来越强的时候,这是不是反而限制了模型的能力。
所以我细细的看了下。
80% 精简到底砍掉了什么
Thariq 在 AI Engineer 大会上提到了两个关键点。第一,长提示词和过多示例会约束 agent 的能力,模型被你的指令"框住"了。第二,他们做了一个叫"blind pass"的操作------让模型自己审视提示词,找出哪些是多余的、哪些在限制它的发挥。
我发现砍掉的主要是这些东西。最典型的是防御性指令,也就是那些"不要做 X"的清单------之前的一堆边界条件,模型把注意力花在了"怎么不犯规"上,反而没精力做好正事。冗余示例也是重灾区,很多人觉得多给几个例子模型能理解得更好,实际上过多示例会让模型陷入"模仿模式",丧失了它本来的推理和创造能力。更夸张的是有人把整份文档、所有规范、全部上下文一股脑塞进去,模型在海量信息里找不到重点,就像你把一整本书塞给一个人说"帮我找第三章第二节的第三句话"。
为什么短提示词效果反而更好
这个现象背后有技术原因。大模型处理输入时,所有 token 都会参与注意力计算。你的系统提示词越长,模型需要分配给"遵守指令"的注意力就越多,留给"理解任务本身"的就越少。这就像你让一个人同时遵守 20 条规则去做一道数学题,他花在记规则上的精力可能比解题还多。
还有一点不那么直观:过多的"不要做 X"指令,实际上是在给模型"做 X"的暗示。心理学里有个经典的"不要想白熊"实验------你越说不要想白熊,脑子里就越会出现白熊。模型也类似,你反复强调"不要用 AI 套话",模型反而更容易在那些方向上产生联想。
而且别忘了,模型在预训练阶段已经读过海量优质文本和指令,"理解意图"这件事它本来就会。你给个简洁清晰的目标,它自己就能摸索出路径。指令塞太多,反而是噪音。
是越精越好
我自己试了下用我的一个项目的claude.md做了一个blind pass,500行瘦身到了100,有了点心得。
首先,"精简 80%"不是一个可以机械执行的数字。不是说你的 CLAUDE.md 有 1000 行就砍到 200 行,留下的就一定更好。关键是每一条指令都要有明确的目的,每一条都要在帮模型做更好的判断,而不是在限制它。
也不是什么都该砍。代码风格、项目架构、输出格式这些,模型没法自己猜到,你不说它就不知道。但"注意这个""小心那个"那类防御性指令,删了大概率没影响。