@dbreunig: https://x.com/dbreunig/status/2069455716478603536

X AI KOLs Timeline 新闻

摘要

本文讨论了AI应用中的“提示负债”概念,即过度依赖自然语言提示导致系统脆弱、难以维护,并且会锁定到特定模型。

https://t.co/fPnEpzge24
查看原文
查看缓存全文

缓存时间: 2026/06/24 14:25

问题在于提示债务

如果你还在手动调优提示词,就无法做到模型无关

得益于自然语言界面,AI应用可以快速原型化。你用英文写出需求,交给前沿模型,一个可工作的原型在一个下午就能出现。这极其强大,对于一次性任务来说是最优的。但作为构建可靠系统的方式,自然语言提示是一个陷阱。

让原型构建毫不费力的纯英文提示,结果却是描述系统应如何行为的糟糕方式,账单会慢慢到来,伪装成正常的进展,直到应用几乎无法动弹。问题不在于某个单独的提示,而在于自然语言从来就不是为工程而设计的规范语言,把它当作规范语言使用,会悄然限制你能构建的东西。

提示债务陷阱

提示债务的第一个症状是迭代变慢。随着用户标记错误、发现边界情况,你会向指令中添加额外指导,把模型拉回正轨。如果不良行为持续存在,指令会被重复,语气越来越严厉。很快,提示不再直接明了,快速修复会导致之前的指令回退。错误再也无法通过一行“热修复“来处理,你的开发周期慢如蜗牛。

Fable的系统提示在名为 search_instructions、search_usage_guidelines、mandatory_copyright_requirements、hard_limits、self_check_before_responding 和 critical_reminders 的部分中,将版权指导重复了多达六次。

Fable的系统提示在名为 search_instructions、search_usage_guidelines、mandatory_copyright_requirements、hard_limits、self_check_before_responding 和 critical_reminders 的部分中,将版权指导重复了多达六次。

接下来,提示债务让你的团队瘫痪。你那充满边界情况和全大写威胁的脆弱提示,连你自己都难以阅读,对同事来说更是完全无法理解。许多团队通过将提示拆分成运行时组装的复杂模板来缓解这个问题,每个模板隔离到特定关注点。但这些提示片段也会演变,长成一片条件的荆棘丛。

最后,提示债务把你绑定到单个模型上。你的热修复在GPT-4o上有效,但当你在GPT-5.4-mini上调用推理时,会以全新的方式失败。所以你只能继续用4o,希望推理提供商越来越频繁的弃用邮件只是空头威胁,并放弃使用更便宜、更快、更好的模型的可能性。Datadog最近的一份报告表明这是一种常见情况:他们观察到的流量中使用最多的模型是GPT-4o。

(这个Datadog统计数据来自三月份,所以GPT-4o的集中度可能有所下降。然而,我从多个大型推理提供商那里听说,GPT-4o及类似年代模型的使用量可能占所有调用的50%以上!)

这些问题中的任何一个都是麻烦,但它们加在一起,就决定了你是在做一个光鲜的原型,还是一个能与你、你的客户和你的业务共同成长的产品。你闪亮的AI新功能被冻结了,只能通过完全重建来改进,并且被锁定在一个过时的模型上。

为什么会发生提示债务

自然语言界面很美妙。它们是处理一次性任务和广泛对话线程的正确机制。当我们依赖自然语言来定义持久的系统行为时,就陷入了困境。

自然语言的不精确性加上概率性语言模型,意味着表达相同意图的不同词语可能产生不同的输出。在最近的一项研究中,一个临床问题用患者的声音提问,再用医生的声音重新提问,事实完全相同,结果Opus从全部拒绝回答变成了全部回答。

而且不仅仅是词语选择重要。同一提示中看似无关的陈述也会影响结果。在一项哈佛研究中,研究人员发现,仅仅说明用户支持哪支NFL球队,就会改变模型拒绝回答敏感话题的频率。无关语句会以我们无法预测的方式影响推理过程。这就是为什么随着你添加修复,提示会变得更加脆弱。为了平息一个顽固错误而添加的额外指令,可能会影响模型如何解释另一个昨天还正常运行的独立指令。

重复指令把我们推向提示债务,但当我们需要的行为与模型的训练相悖时,这是必要的。这就是对抗权重,一旦你意识到这一点,就会在各地的系统提示中看到它。例如,ChatGPT的图像提示曾经八次指示LLM在生成图像回复时不要回复,因为它被训练成总是保持对话进行。

我们分析的每个编码代理系统提示都有重复指令、严厉警告和全大写的要求。Claude Code告诉Opus七次要在单次回复中返回多个工具调用。即使是最先进的模型也迫使提示作者对抗权重:Fable泄露的系统提示将一条特定版权规则重复了六次。

这些例子没有一个是孤立的。多条重复规则贯穿我们检查的系统提示。顽固错误会迅速扩大我们的提示,每次增加都提高了脆弱性和每次编辑时回退的风险。

更糟糕的是:这些修复是为单个模型的行为量身定制的。伯克利最近领导的一项研究发现,企业会停留在较旧的模型上,因为较新的模型会破坏他们现有的代理。这是因为模型不是干净的版本化软件。它们有不同的权重,以不可预测和没有文档记录的方式产生不同的行为。在GPT-4o上完美工作的提示可能在GPT-5.5上失败。Anthropic自己的Fable发布说明警告说,为之前模型开发的技能可能会“降低输出质量“。

提示债务将应用锁定在单个模型上。我们无法轻松切换模型,不是前沿实验室设计出了巧妙的护城河。不,这是针对概率模型演化有损的、自然语言规范的结果。

预防提示债务

幸运的是,我们不需要理论化如何缓解提示债务;有一个领域已经指明了方向。使用编码代理的程序员处于模型能力的领先边缘,是模型能力锯齿状边界上的异类。在过去几年里,他们一直在发展最佳实践,让模型编写更多代码,同时交付可维护、模块化的软件。

第一条原则是用度量而非散文来指定系统的行为。当模型输出是概率性的、语言不精确时,我们构建硬边界来约束它们:评估、指标和类型规范。这些是可读的、共享的产物,同事可以阅读和贡献,实现了脆弱提示所阻止的协作。

最优秀的工程师现在将更多时间花在测试上,测试不再是安全网,而是让模型发挥作用的根本。

第二条原则是停止手动编写提示。一旦我们有了能够为候选打分度量的指标,提示就不再是需要手工打造的东西,而是需要搜索的东西。自然语言允许的潜在词汇、短语和结构的表面区域太大了,不值得花费人力时间。这是LLM被设计来探索的领域,已经有系统(如DSPy和GEPA)为你管理这项工作,让提示对你的设计负责。

一旦提示被生成,并且你的程序行为由度量定义,你就不再受限于特定模型。评估新模型只需几小时而不是几周。当更快、更便宜的模型出现时,你可以尝试它。当一封弃用邮件到达时,你可以在一天内确保备选方案。无论是出于监管原因(如我们看到Anthropic的Fable)还是因年代久远而被弃用(如Groq上周宣布的Llama-3.1-8b),修复都是一件常规工作,而不是紧急消防演练。

每个成熟的工程学科最终都会停止手工完成那些曾经引以为傲的手工操作。汇编让位给编译器,手工调优的查询让位给规划器,手动内存管理(大部分)让位给做得更好的机器。提示编写也不例外。

用恰到好处的词语诱导模型是一项真正的技能,对于一次性任务来说往往是最优的。但要构建可靠、可改进和可移植的系统,我们不应该手动调优提示。

相似文章