论文

适得其反的反馈:为什么小语言模型代理会重复他们刚刚看到的失败的调用

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

模型评测模型行为与机制分析

摘要

代理利用在记录中记录失败的工具调用及其错误消息,并要求模型继续,假设错误是纠正信息。我们衡量是否如此。将故障记录的纠正增益定义为重新发出刚刚失败的操作的对数概率的变化,我们发现在模拟工具调用和 MBPP 程序修复两种环境中测试的每个指令调整模型(6 个检查点,135M-1.7B,4 个族)的增益都是负的。按动作长度标准化后,每个动作词元的效果约为 -1.03 纳特,每个词元的几率为 2.8 倍,并且不仅平均而言,而且对 90%-100% 的单个项目有效。在固定的候选集上,重复失败调用的概率从 0.06 上升到 0.54,并且贪婪解码在失败后 19% 的项目上重现词元,而之前为 0%。将同一调用与失败消息、成功消息或中性确认配对的反事实会产生两种效果:失败调用的表面形式造成了 83% 的损害,而将其标记为失败的语义贡献很小,并且在不同环境中的符号不​​一致。问题在于Harness,而不是模型对错误消息的掌握,以及预测哪些补救措施有效。用运行时生成的故障描述替换逐字调用,无需词元成本即可消除 76% 的反转,并且使先前失败的字符串在解码器上无法访问,这对同一术语起作用。两种看似合理的补救措施却没有做到这一点:明确的“不重复”指令将测量的数量保留在原来的位置,并且从干净的上下文中删除失败的重试尝试(上下文污染的标准处方)是我们测量的重复的最差方法,因为它恢复了产生失败的上下文。该研究在 CPU 上端到端运行;所有文物均已释放。