前面的文章中,作者分享了一种偏重反思的AI Agent设计模式,即Basic Reflection。但面对复杂度很高的产品时,还有另一种框架可以解决。就是本文介绍的Reflexion设计模式。
在文章《》中,风叔结合原理和具体源代码,详细介绍了第一种偏重反思的AI Agent设计模式,即Basic Reflection。Basic Reflection 的思路非常朴素,就是通过左右互搏让两个Agent相互进化,实现成本也较低。
但是在实际应用中,Basic Reflection的Generator生成的结果可能会过于发散,和我们要求的结果相去甚远。同时,当面对一些复杂度很高的问题时,Basic Reflection框架也难以解决。有两种方法来优化Basic Reflection,一种是边推理边执行的Self Discover模式,一种是增加了强化学习的Reflexion模式。
上篇文章《》,风叔沿着“边推理边执行”的优化路线介绍了Self Discover。这篇文章中,风叔沿着“强化学习”这条优化路线,详细介绍下Reflexion设计模式。
01 Reflexion的概念
Reflexion本质上是强化学习,可以理解为是Basic reflection 的升级版。Reflexion机制下,整个架构包括Responder和Revisor,和Basic Reflection机制中的Generator和Reflector有点类似。但不同之处在于, Responder自带批判式思考的陈述,Revisor会以 Responder 中的批判式思考作为上下文参考对初始回答做修改。此外,Revisor还引入了外部数据来评估回答是否准确,这使得反思的内容更加具备可靠性。
下图是Reflexion的原理:
第一步 构建Responder
在下面的例子中,我们先构建一个Responder
为Responder确定Prompt模板,并建立一个Responder。通过Prompt,我们告诉Responder,“你需要反思自己生成的答案,要最大化严谨程度,同时需要搜索查询最新的研究信息来改进答案”。
第二步 构建Revisor
接下来我们开始构建Revisor,通过Prompt告诉Revisor
第三步构建Tools
接下来,创建一个节点来执行工具调用。虽然我们为 LLM 赋予了不同的模式名称,但我们希望它们都路由到同一个工具。
以上内容就是Reflexion的核心思想,其实完整的Reflexion框架要比上文介绍的更复杂,包括Actor、Evaluator和self-Reflection三块,上文的内容只涵盖了Actor。
关于Reflexion完整的实现方案可参考:https://github.com/noahshinn/reflexion
总结
Reflexion是我们介绍的第一个带强化学习的设计模式,这种模式最适合以下情况:
智能体需要从尝试和错误中学习:自我反思旨在通过反思过去的错误并将这些知识纳入未来的决策来帮助智能体提高表现。这非常适合智能体需要通过反复试验来学习的任务,例如决策、推理和编程。
传统的强化学习方法失效:传统的强化学习(RL)方法通常需要大量的训练数据和昂贵的模型微调。自我反思提供了一种轻量级替代方案,不需要微调底层语言模型,从而使其在数据和计算资源方面更加高效。
需要细致入微的反馈:自我反思利用语言反馈,这比传统强化学习中使用的标量奖励更加细致和具体。这让智能体能够更好地了解自己的错误,并在后续的试验中做出更有针对性的改进。
但是,Reflexion也存在一些使用上的限制:
在下一篇文章中,风叔将介绍目前最强大的AI Agent设计模式,集多种技术的集大成者,LATS。
本文由人人都是产品经理作者【风叔】,微信公众号:【风叔云】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。