← 最新论文
💻 computer science

Feedback That Backfires: Why Small Language Model Agents Repeat the Call They Just Watched Fail

本文揭示了小型语言模型智能体在失败的工具调用被逐字记录在对话记录中时,显著更有可能重复该失败调用,这种反效果主要是由失败动作的表面形式而非错误信息驱动的,而通过将原始调用替换为运行时生成的失败描述可以有效缓解这一问题。

原作者: Esmail Gumaan

发布于 2026-08-26
📖 1 分钟阅读☕ 轻松阅读

原作者: Esmail Gumaan

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下这样一个数字助手:它能够使用工具来解决问题,比如查找联系人、检查日历或编写一段代码。为了实现这一点,该助手遵循一个简单的循环:它构思一个动作,尝试执行该动作,然后读取结果。如果动作失败,系统会精确记录助手尝试了什么操作以及收到的错误信息,然后要求助手重试。这种被称为“智能体循环”(agent loop)的方法是这些系统从错误中学习的标准方式。其逻辑看似合理:如果你告诉一个人“你尝试打开一扇锁着的门,但没成功”,那个人就不会再次尝试那扇锁着的门。他们会寻找另一把钥匙或另一扇门。多年来,工程师们一直假设这些驱动此类助手的微型计算机模型也会表现得一样。他们相信,向模型展示错误信息会教会它避免犯下同样的错误。

德国帕绍大学的一位研究人员决定以极高的精度测试这一假设。他不仅是观察助手的失败与成功,还测量了模型在看到错误信息前后,选择相同错误动作的精确数学概率。他在六个不同的微型计算机模型上进行了这些测试,这些模型的规模从极小到中等不等,并在两个不同的环境中进行:一个模型尝试使用模拟的办公工具,另一个则尝试修复损坏的计算机程序。研究人员想要知道错误信息是否真的纠正了模型的行为。

他们的发现与所有人的预期截然相反。模型并没有从失败中学习,反而变得更有可能重复完全相同的错误。当系统向模型展示失败的尝试和错误信息时,模型再次选择该失败动作的内部概率大幅上升。在工具调用测试中,模型重复失败调用的概率从极低的 6% 飙升到了 50% 以上。在研究人员测试的几乎每一个案例中,错误信息都没有起到警告的作用;相反,它像一块磁铁,将模型吸引回它刚刚失败的那个动作本身。

研究人员随后询问为什么会发生这种情况。他们怀疑模型可能仅仅是因为太小而无法理解错误信息。然而,他们的调查揭示了一个不同的元凶。他们发现,问题不在于错误的含义,而在于文本本身的存在。当失败的动作被写入记录时,模型的内部机制(旨在复制其看到的模式)便紧紧抓住了该失败动作的文本。这种复制效应如此强烈,以至于它压倒了关于失败的实际信息。即使研究人员将冗长详细的错误信息替换为简单的“此操作失败”字样,模型仍然会重复错误。但是,当他们完全移除失败动作的文本,并将其替换为对出错情况的描述时,模型就不再重复错误了。

这一发现颠覆了构建这些系统的标准方式。针对陷入僵局的智能体,常见的建议是删除历史记录中的失败尝试,让模型重新开始,希望能清除这种“污染”。研究人员发现,这实际上是最糟糕的做法。通过删除失败记录,系统恢复了导致错误发生的最初条件,从而保证了模型会再次犯错。他们发现,解决方案不是删除历史,而是改变历史。如果系统保留失败的记录,但将失败命令的原始文本替换为由系统生成的描述,重复现象就会停止。

研究还测试了一个更显而易见的修复方法:只需在指令中明确告诉模型不要重复失败的动作。这种方法听起来符合人类逻辑,但几乎没有任何效果。模型很难遵循一条规则,即忽略一个就摆在它面前的特定字符串。研究人员得出结论,问题不在于模型的智力不足,而在于信息呈现方式的缺陷。展示失败动作并附带错误信息的标准方法创造了一种强大的复制冲动,这种冲动比从错误中学习的冲动还要强烈。

通过在标准的计算机处理器(而非专门的图形卡)上运行这些实验,研究人员证明了这种行为是这些小型模型运作的基本属性,而非需要巨大计算能力才能修复的故障。他们的工作表明,要构建可靠的数字助手,工程师必须停止将失败的动作视为可以阅读的有益教训,而要将其视为危险的模式进行隐藏。修复方案是结构性的:失败后的上下文必须看起来与失败前的上下文不同,但这种差异不能是失败动作本身。通过移除错误的原始文本并仅保留诊断信息,系统可以打破重复的循环,让模型真正向前推进。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →