当你想让AI变得更好,结果却把它变得更糟
原文:When Trying to Make AI Better Makes It Worse,作者 Katie Parrott / Every
众所周知,德语里似乎什么都有对应的词。Kummerspeck,字面意思是“悲伤培根”,指的是因为情绪化进食而长出来的体重。Torschlusspanik,“关门恐慌”,指的是害怕时间所剩无几、来不及做你本该在有生之年完成的事情。
最近,我又发现了一个绝妙的词:Verschlimmbesserung,可以译为“越改越糟”。它描述的是那种一心想要把事情变得更好、结果反而弄得更糟的冲动。用德语造句就是:“Ich habe meinen Kontext verschlimmbessert”——“我把我的上下文越改越糟了。”
这正是我在九月几周时间里,对自己驱动AI系统的那份“上下文”所做的事情。我所说的“上下文”,指的是那些告诉Claude和ChatGPT我是谁、我如何写作、我在做什么工作的风格指南、示例和指令。当我的上下文质量良好时,我的AI“助手”就能找到所需的信息,按照我希望的方式完成工作——包括按照我的风格写出文章草稿。
但几周前,我的上下文出了问题,工作也跟着出了问题。草稿变得拥挤、平淡。当我告诉模型哪里不对时,下一版草稿反而更糟。这个本来用来托住我的系统,开始把我一起拖下水。有一阵子,我不再相信自己的上下文。然后,我也不再相信自己。
你不需要一套复杂的设置就会遇到这个问题。你可能让AI保持回答简短,结果却要费劲跟它要一个详细的解释;或者你把一份成功的草稿存为示例,然后眼睁睁看着它的怪癖出现在之后所有输出里。某个对一项任务有用的偏好,到了下一个任务可能就成了阻碍——尤其是当它必须和你曾经让模型记住的所有其他东西共存的时候。
如果你还没建立自己的上下文,把这个故事当作一个前车之鉴。如果你已经建了,并且眼看着它失去控制,我会告诉你我是如何找出问题所在、如何推倒重来、以及现在用什么原则防止我的指南重新固化成规则。
当上下文还能用的时候,它是什么样子的
在讲毁掉它之前,我想让你看看它运转良好时的样子,因为它当时运转得非常好。这正是这个故事其余部分如此令人懊恼的原因。
那套安排很简单。我写的每个专栏(Working Overtime、Vibe Check、Context Window)都有独立文件夹,每个文件夹里放着同样的三样东西:一份描述我的句子应该听起来什么样的声音指南(voice guide)、一份说明这个专栏是做什么的、文章怎么写的风格指南,以及若干展示我所追求的写作效果的草稿。在这些文件夹之上,是我的“指挥中心”文件夹(Command Center),里面存放着关于我本人、我的工作和偏好的高层信息,以及指向其他所有内容的地图。
当我在其中一个文件夹里开始任务时,模型首先会读取一个名为AGENTS.md的简短指令文件,它告诉模型应该如何表现、还要读什么——比如,在我的写作文件夹里,就是告诉模型如何像我一样写作的STYLE.md和VOICE.md。然后模型会读取这些文件,并把它们视为任务的一部分。如果指令说“去读它”,模型就会去读。
厨师把这种准备工作叫做 mise en place(法式备餐):一切食材切好、分好、在第一张订单打出来之前就放在手边。我的系统就是我的备餐台,它让我能同时处理个人随笔、新闻综述和深度模型评测——大多数情况下,不会打翻任何一个盘子。
我有一个简单、自己完全理解的系统,它正以我职业生涯里最快的速度产出工作。一切都没有问题。于是很自然地,我决定要“修”它。
我用了三种方式,把一个好用的系统“变得更好”
Dan Shipper 有句话:不要在冥想静修、迷幻体验或遇见新一代前沿模型的30天内,做出重大人生决定。我觉得重组我的上下文算得上重大人生决定,而我在GPT-6 Astra发布后,并没有等够那30天,就开始做那些后来对我的工作方式产生了重大影响的决定。我看着那些整齐的小文件夹,问出了那个毁掉过多少好东西的问题:我怎么才能让它变得更好?
我得出三个答案,每一个我都确信是上下文工程领域的下一个大突破。而每一个答案都改变了模型开始工作之前所读到的内容——这是我当时没有想清楚的部分。
第一,我决定保存一切。如果AI记住一些东西就有用,那记住所有东西岂不是更有用?我在指令里加了两句话:“每个实验都必须留下持久记录……失败的、放弃的、中断的、没有结论的、以及被取代的尝试都算数。”还有一句:“反复出现的错误应变成审查清单项目。”
我的本意是让AI在未来的对话中,如果过去的输出变得相关,能够引用它们。但实际上,每篇文章都变成了一份持续更新的日志,记录着它身上发生的一切,而模型在回去工作之前会先读这份日志。我给的每一条备注都进了日志。任何重复出现过两次的备注,都会变成一条审查清单项目,之后的每一版草稿都必须通过。
接下来,我决定连接一切。大约在那段时间,我发现了Zettelkasten(卡片盒笔记法),一种让每个想法都与所有相关想法相连的笔记方法。于是很自然,我把它也加入了我要应用到上下文的方法清单。我把Working Overtime的一个想法连到Source Code的一个想法,把Context Window的一篇草稿连到Vibe Check的一个模板——直到我桌面上的385个文件都指向了其他文件夹里的文件。
最后,我让AI把一切规则化。每一个我注意到的模式、每一个感觉“应该成为原则”的观察,都被写进了我的风格指南和声音指南。一个好开头变成了一种开头的模板。光是这个专栏的风格指南,就从大约759个词膨胀到了3,855个词,其中有八种被认可的开头方式、六种被认可的结尾方式、两张核对清单。它本该描述我如何写作,却变成了一份不可能完成、自相矛盾、自我拆台的清单——每篇文章都得满足所有要求,而任何一篇文章都不可能合理地做到。
还记得这套机制怎么运作的吗:在写下一个字之前,模型会读取指令文件,以及那个文件指向的所有内容,并把它们全部视为任务的一部分。九月之前,模型需要过一遍的清单是:一份简短的声音指南、一份简短的风格指南、几篇草稿。现在呢?它还要读一份3,855词、满是“被认可”开头与结尾的风格指南,一份记录着当前这篇稿子所有实验与修改的持续日志,以及那385个链接把它带到其他文件夹里的各种内容。
而且这个堆栈每天都在增长。每次我纠正一版草稿,那条纠正就进了日志。我指令里的第二句话,“反复出现的错误应变成审查清单项目”,让我每给过两次的备注都变成之后每一版草稿必须通过的测试。模型分不清“记录”和“规则”的区别,所以它全都照做。我建了一个系统,把我对一版草稿的反应,变成了之后每一版草稿都必须遵守的法律。
唯一改变的东西,就是我的上下文
糟糕的上下文之所以很难被发现,是因为你永远看不到模型在背后处理的那一堆规则。你只看到它交回来的草稿——而一份糟糕的草稿看起来像是模型变笨了,或者是你自己变笨了。
我是在写上一期专栏——一篇关于玩AI教会了我什么关于工作的事的文章——的时候发现问题的。草稿从一开始就在跟我作对。读起来就像一个委员会写出来的,我提出过的每一点都被硬塞了进去,却没有一点得到足够的空间来讲清楚。有一天晚上,我告诉模型,它的提纲“相对于该技能所包含的指令来说,已经面目全非了”。另一个晚上我说:“我又在这里跟你解释那些你本应该能在上下文里找到的东西了。”每一次,下一版都更糟。
到最后,那篇文章的文件夹里存了127版草稿,超过100万个词——大约相当于整套《哈利·波特》——而这一切,都是为了写一篇你可以在午休时间读完的文章。
我知道不能再这样下去了,也开始怀疑问题出在上下文上。一天深夜,我告诉运行GPT-5.6 Sol的Codex,我们需要看看我的声音指南和风格指南,“看看这些文档里有没有可能导致这篇文章生成过程中出现冲突或混乱的指导内容”。我没有告诉它具体怎么做。Sol调用了Every的Compound Engineering插件里的文档审查工作流——这个流程会把一份文档交给一组AI评审员,每位评审员负责寻找不同类型的问题。
声音指南基本没问题。风格指南则充满了矛盾,Sol解释了为什么这些矛盾会造成这么大的破坏:“在代理工作流中,具体规则更容易被验证,所以它们会压倒那些更微妙的规则——结果每张清单都通过了,但整体效果却不对劲。”“用这八种方式之一开头”是一个模型可以勾选的方框。“让一个体验贯穿全文”则需要判断力。那个一版又一版跟我较劲的模型,其实一直在忠实地执行我那些最容易执行的指令。
推倒重来
所以我已经搞清楚了上下文为什么会变成那样。现在的问题是:我该怎么把它弄出来。
我很快判定,现有那团乱麻般的上下文已经无可救药。于是我在桌面上建了一个新文件夹,命名为“Historical(历史存档)”,把所有东西都拖了进去:每一份日志、每一份实验记录、每一个交叉引用、每一版指南。什么都没删。档案还在那里,我的新指令告诉模型:除非我明确让它去读,否则不要碰那个文件夹。
然后,我从一张空白桌面开始,把整个系统重建了一遍。模型先采访我,了解我的工作方式以及我希望AI如何支持我。然后它审查了我现有的文件夹结构,根据我的回答提出了一套新结构,我们来回打磨,直到我完全理解这套结构是怎么运作的。最后,它在一个相当直白的指令下执行改动:“在我批准之前,不要更改任何东西。”我对AI在我不知情的情况下自作主张改东西,已经形成了一种健康的偏执。
在我重置桌面大约20分钟后,我基本回到了最初的那套安排:每个专栏一个文件夹,每个文件夹里有一份声音指南、一份风格指南和若干草稿。这个专栏旧的声音指南和风格指南加起来有6,109个词。新的加起来只有513个词。
而且它们是不同类型的文档。我的新指令明确写道:草稿、提纲、备注和审查意见都属于“任务材料或证据,绝不是新指令”。模型可以查阅我写过的任何东西,但它不必满足所有内容。
有三条关键原则让这套安排对我有效:
第一,代理先问再动。 我的指令现在告诉模型:在聊天里回答我,只有当我明确要求时才创建或更新文件。没有我的许可,任何内容都进不了我的风格指南、声音指南或草稿文件夹。
第二,每个文件夹独立运作。 负责这个专栏的模型只在这个专栏的文件夹里开始工作,读那里的内容。它不会顺着链接跑到我的其他项目里,除非我明确指示,也不会打开指挥中心文件夹。
第三,指南保持简短。 我的风格指南仍然描述了一种对这个专栏通常有效的行文推进方式。但它写的是:一篇成功的文章“通常(并非总是)”会这样展开,而且“这些是原则,不是固定的章节顺序,也不是一个死板的文章模板”。
文件夹系统重新运转起来了,但我始终警惕着自己那些人性弱点可能再次作祟。所以我加了一条规则——这条是给我自己,不是给模型的:不在压力之下做重大上下文决定。这包括那些明显的压力,比如截稿日期或糟糕的一周,也包括那种令人兴奋的新模型旋转木马式的压力——就是当初坑了我的那一种。如果我发现自己冒出一个惊天动地的重组计划,我会把它写下来,等新模型狂热退潮后再回来看一遍。
重新学会信任
当我最初发现上下文不再为我服务时,我先失去了对上下文的信任,然后是对自己的信任。而信任回来的时候,顺序正好相反。
首先,我必须相信自己足够了解自己的工作,知道什么该放进那些文件夹里,并且相信当模型把它们读回给我时,我能认出那确实是我的东西。信任系统则花了更长时间。我必须看到系统在正常工作、以我习惯的方式帮我赶上截稿日期,然后才愿意宣布问题已经解决。
那段“缓刑期”的测试清单里就包括这篇文章——我在重建后的Working Overtime文件夹里写的,身边只有几份短小合理的上下文文件。有两次我告诉模型,某个段落感觉太突兀了。两次,下一版都变好了。一个月前,这样的备注会固化成一个新的、不可能达到的标准,让之后每篇文章都得满足。但这次,我纠正了该纠正的地方,然后就结束了。
也许你也掉进过类似的陷阱。一旦你看到AI有一点上下文就能工作得多好,就很难忍住不去继续调优,直到它完美匹配你的品味。但试图预判你未来想要的一切,最终可能让你跟那些为不再适用的情境而写的指令搏斗。我必须学会相信自己——在工作进行时认出这份工作需要什么,而不是试图把所有决定都提前敲定。在你把又一个偏好、示例或指令存进你的设置之前,先问问自己:这是每个任务都需要的东西,还是只属于眼前这一个任务?当一个“优化过”的配置开始给你更差的结果时,试着先拿走一些东西,再去添加更多。你不必等到已经写出了100万个词,才开始调查哪里出了问题。
我很想告诉你,我已经彻底吸取了教训。但一定还会有下一个模型,它一定会让人眼前一亮,而我也一定会再冒出一个把它“变得更好”的绝妙主意。而德语里,就像我们已经确认过的,早就有了一个词来形容接下来会发生的事。
Katie Parrott 是Every的专栏作家。想读到更多类似文章,欢迎订阅Every,也可以在X(@every)和LinkedIn上关注我们。
核心启示:当AI配置的效果变差时,问题往往不在于指令太少,而在于指令太多——模型分不清“记录”和“规则”的区别,会忠实地执行每一句最容易验证的话,最终让整套系统被自己积累的“改进”压垮。作者的做法是:先删减,再添加。
"When Trying to Make AI Better Makes It Worse" 的发芽报告
材料核心
作者 Katie Parrott 用德语词 Verschlimmbesserung("越改越坏")概括了她对 AI 上下文系统(风格指南、声音指南、指令文件)的过度优化过程:她"保存一切、连接一切、编码一切",结果模型产出越来越差,直到重建整个系统、将风格指南从 6,109 词压缩到 513 词才恢复运作——核心教训是:具体规则比需要判断力的原则更容易被模型"核对通过",从而淹没真正重要的写作标准。
发芽 01:验证陷阱——当可勾选的规则吞没需要判断的规则
种子
文章中最具解释力的机制来自 Sol 的诊断:"在 agent 工作流中,具体规则更容易被验证,所以它们能压过更微妙的规则,而每个清单项都能通过。" 这不是 AI 的独特缺陷,而是 Goodhart 定律的又一变体:当一项指标变成目标,它就不再是好的指标。作者把"用八种开头之一开场"这种可勾选的规则,和"让一个经验承载整篇文章"这种需要判断力的原则放在同一份指南里,AI 必然选择前者——因为那是它唯一能做到的事。
故事
这个模式的经典原型是英属印度时期(约 1890 年代)的"眼镜蛇效应":德里政府为控制毒蛇数量,悬赏收购死眼镜蛇。诱因导致人们开始自己繁殖眼镜蛇来换取赏金。政府意识到问题后取消悬赏,养殖者将蛇放生,蛇的数量反而增加了。激励措施的设计初衷与最终结果完全相反。
更贴近作者经历的案例:她的风格指南从 759 词膨胀到 3,855 词,包含八种"批准的开头"、六种"批准的结尾"和两个清单——每一行都是模型可以"核对的方框"。这些方框变成了不可违背的法条,而"让一个经验承载整篇文章"这种无法核对的指令被彻底淹没。她在一篇可午休读完的随笔上,产出了 127 份草稿和超过 100 万词(大致整部"哈利·波特")的中间文本——这是 Goodhart 定律在个人写作工作流中的一场精确重演。
Aha 瞬间
"你对系统加的每一个可验证的约束,都在悄悄夺走系统身上那些不可验证的判断力。规则是模型最容易遵守的东西,恰恰因此也是最危险的东西。"
发芽 02:Zettelkasten 的范畴错误——把人类导航工具交给了机器
种子
作者在连接一切时引入 Zettelkasten 方法,让 385 个文件互相指向其他文件夹。她犯了一个隐蔽的范畴错误:Zettelkasten 的力量从来不在于链接本身,而在于人在链接之间的判断性导航。她把这套为人类设计的思想工具交给了会"字面执行"的模型,结果链接从导航工具变成了指令来源。
故事
德国社会学家 Niklas Luhmann 的 Zettelkasten 包含约 90,000 张卡片,他凭借这套系统写成了 70 多本书、400 多篇文章——但他本人反复强调,系统中"最不重要的部分"才是卡片之间的链接结构,真正重要的是他在卡片间穿梭时做出的判断:哪条线索值得追、哪条应该放弃、哪两条看似无关的想法其实能碰撞出洞见。Luhmann 把链接当作思维的脚手架;AI 则把它当作路径图,每条链接都"受邀阅读",每次阅读都成为任务的组成部分。
作者把这条原则套用在自己的语境中时,问题立刻显现:她让一个 Working Overtime 的想法指向一个 Source Code 的想法,让一篇 Context Window 的草稿指向 Vibe Check 的模板,直到每个模型开工前都面对一个不断扩张的引用网络。把一个等待人类判断来激活的系统,交给一个全盘采纳的系统——这是将"潜在连接"误认为"实际指令"的范畴混淆。就像把地图当成道路本身:地图是为了让人决定怎么走,而不是替人走。
Aha 瞬间
"你为人类思考设计的工具,被交给一个不会思考的工具之后,就变成了铁律。Zettelkasten 对人类是脚手架,对 AI 是命令。"
发芽 03:满足化与回归——从"试图预先决定一切"回到"就手取材"
种子
作者的重建方案的核心不是"少",而是"边界"。三个原则——"agent 先问"、"每个文件夹独立"、"指南保持简短"——共同建立了一个关键区分:什么进入任务,什么不进入任务。这是从"最大化"思维到"满足化"思维的转变。Herbert Simon 的"满足化"(satisficing)概念指出,人类决策通常不是穷尽所有选项后选最优,而是在找到的第一个满足最低标准的选择上停下来。作者此前试图为每一种可能性预先写下指令——这不仅是最大化,更是试图消灭决策本身;而她的新系统接受了"在写作当下判断需要什么"的即兴性质。
故事
料理界中,mise en place("就手取材")这一原则的严格形式是 Escoffier 在 19 世纪末的现代厨房体系建立的:食材在开工前全部备好,厨师的精力用在烹饪决策上,而不是找东西。但一个优秀的厨师不会把所有食材都切好储备起来——因为有些食材只在特定菜式需要时才处理。作者早期系统正是好的 mise en place:每个专栏有自己的文件夹,每个文件夹只有声音指南、风格指南、草稿。她从 6,109 词砍到 513 词,并把语气从"必须如何"改为"often (not always)"和"these are principles, not a required sequence"——这就是在恢复厨房的边界:备好需要的材料,而不是备好一切可能的材料。
有趣的是,这个教训与 Unix 哲学一致:"Do One Thing and Do It Well"。每条指令都应该有一个清晰的功能边界,而不是试图覆盖一切。作者说"每次我想改进时,往往就是我开始做更多决定的时候"——而好系统的标志不是覆盖得多,而是边界清楚。
Aha 瞬间
"好的上下文不是一份完整说明书,而是一个能让你在当下做决定的工作台。试图在事前解决每一个决策,恰恰是让自己在事后失去做决策的能力。"
你的思考空间
- 你如何区分"属于每个任务"的偏好和"只属于眼前这个任务"的偏好?这个问题本身是否可以变成一个流程——例如,每次保存偏好时先问"下次还有用吗",而不是"这次有用吗"?
- 文章中 Sol 区分了"能核对的规则"与"需要判断的原则"——如果你的团队或你自己的管理系统也在把判断编码成清单,你是否也在经历一场缓慢的 Goodhart 灾难而浑然不觉?
- 作者说"模型分不清记录和规则"——这是当代 AI 的根本局限,还是提示词工程可以克服的技术问题?如果未来的模型能自动区分"历史记录"和"指令",这种问题会消失吗?
- 信任恢复的顺序是"先信自己,再信系统"——你是否曾在某个工具(不限于 AI)失灵后,先怀疑自己而不是工具?这种归因偏差在其他领域(如财务工具、健康应用)是否同样普遍?
- Zettelkasten 对 Luhmann 有效是因为人的判断力在导航;对作者的 AI 无效是因为链接变成了指令。这种"工具的性质取决于使用者"的洞见,还能推广到哪些其他领域?