概述
它将一次性猜测器变成了一个可以捕获并修复自身错误的系统。
深入探讨
在代理循环中,语言模型采取操作(调用工具、编写代码、应答)、观察结果并决定下一步做什么。自我反思增加了一个深思熟虑的步骤,模型在继续之前评估其最近的工作。像 Reflexion (2023) 这样的框架使这一点具体化:在一次失败的尝试之后,智能体会写一个简短的口头批评(“我忘记处理空列表案例”)并将其存储在内存中,因此下一次尝试以该教训为条件。 Self-Refine 使用相同的模型来生成反馈,然后迭代地重写其答案。反思可以来自将输出与目标进行比较、检查错误消息或运行测试。其回报是在编码、网络导航和数学等多步骤任务上具有更高的可靠性,其中单次传递经常失败,但批评和重试循环会成功。
现实世界的实施
编码代理运行失败的单元测试,读取回溯,写入指出差一错误的反射,并在下一个循环迭代中重写该函数。
点击错误链接的网络浏览代理会反映在它所登陆的页面上,识别出与其目标不匹配的情况,并回溯以尝试不同的链接。
研究助理起草一份答案,批评其不受支持的主张,并在返回之前进行修改以添加引文或对冲不确定的陈述。
数学求解代理根据问题约束检查其最终答案,注意到单位不匹配,并重新计算而不是提交有缺陷的结果。
代理循环中自我反思的未来
期望反射成为内置的代理原语,而不是提示技巧,经过训练的模型可以知道反射何时值得额外的令牌以及何时会消耗计算量。验证者模型和执行反馈将越来越多地进行自我批评,这样代理人就不再幻想错误的答案是正确的。研究还针对失败模式,其中模型自信地确认糟糕的工作,推动校准、基于证据的反思和学习的循环停止标准。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是代理循环中的自我反思?
自我反思让人工智能代理在任务中批评自己的输出和行动,然后根据该批评进行修改。它将一次性猜测器变成了一个可以捕获并修复自身错误的系统。
自我反思为标准代理循环添加了什么?
自我反思插入了一个评估步骤,其中代理批评其最近的行动或输出,并使用该批评来指导其下一步行动。
在Reflexion框架中,模型的自我批评存储在哪里?
反思将口头自我批评保留在情景记忆缓冲区中,并在以后的试验中将其反馈到上下文中,因此学习是在上下文中进行的,而不是通过体重更新进行的。
哪种反射反馈信号最可靠?
接地的外部信号(例如失败的测试或运行时错误)会提供具体的、值得信赖的反馈,而纯粹自我产生的批评可能是错误的。
已知的自我反思失败模式是什么?
如果没有扎实的反馈,模型有时会审查有缺陷的工作并错误地得出结论:它没问题,因此外部验证很重要。
自我完善方法通常如何产生反馈?
Self-Refine 有一个模型对其草稿产生反馈,然后使用该反馈迭代修改输出。