XX来信: 智能体设计模式2:Reflection
AI魔法学院
2024-10-18
分享海报

亲爱的朋友们,

之前我介绍了AI智能体工作流的四种设计模式,我相信它们将在今年推动重大进展:Reflection, Tool use, Planning and Multi-agent collaboration。智能体工作流不是让LLM直接生成最终输出,而是多次提示LLM,使其有机会逐步构建更高质量的输出。在本周的来信中,我想重点讨论一下Reflection(反思)。对于实现速度相对较快的设计模式,我已经看到它带来了惊人的性能提升效果。

我们可能都有过这样的经历:提示ChatGPT/Claude/Gemini,得到不满意的输出,提供关键反馈以帮助LLM改进其响应,然后获得更好的响应。如果使用自动化交付关键反馈的步骤,让模型自动批评自己的输出并改进其响应,结果会怎样?这是Reflection的关键。

以要求LLM编写代码为例。我们可以提示它直接生成所需的代码来执行某个任务x。之后,我们可以提示它反思自己的输出,可能如下所示:

下面是任务X的代码:[之前生成的代码]

仔细检查代码的正确性、风格和效率,并对如何改进它提出建设性的批评。

有时这会使LLM发现问题并提出建设性建议。接下来,我们可以用上下文提示LLM,包括(i)以前生成的代码和(ii)建设性的反馈和(iii)要求它使用反馈来重写代码。这可以带来更好的反应。重复批评/重写过程可能会产生进一步的改进。这种自我反思过程使LLM能够发现差距并改善其在各种任务上的输出,包括生成代码,编写文本和回答问题。

我们可以通过给LLM提供工具来帮助评估其产出,从而超越自我反思;例如,通过几个单元测试来运行它的代码,以检查它是否在测试用例上生成正确的结果,或者搜索网页以检查文本输出。然后,它可以反思它发现的任何错误,并提出改进的想法。

此外,我们可以使用多智能体框架实现Reflection。我发现创建两个不同的智能体很方便,一个提示生成良好的输出,另一个提示对第一个智能体的输出给出建设性的批评。两个智能体之间的讨论推动了改进的响应。
Reflection
是一种相对基本的智能体工作流类型,但我很高兴它在一些情况下改善了我的应用程序的结果。我希望你能在自己的工作中尝试一下。如果你有兴趣了解更多关于Reflection的知识,我推荐这些论文:

✅“Self-Refine: Iterative Refinement with Self-Feedback,” Madaan et al., 2023

✅“Reflexion: Language Agents with Verbal Reinforcement Learning,” Shinn et al., 2023

✅“CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing,” Gou et al., 2024

我将在以后的来信中讨论其他智能体设计模式。
请不断学习!
P.S.
新的JavaScript短期课程现已上线!在“JavaScript RAG web Apps with LlamaIndex”课程中学习使用RAG构建全栈web应用程序,该课程由LlamaIndex的开发者关系副总裁兼npm的联合创始人Laurie Voss教授。

构建一个用于查询自己的数据的RAG应用程序。

开发与多个数据源交互的工具,并使用智能体为给定查询自主选择正确的工具。

一步一步地创建一个全栈web应用程序,可以让你与数据聊天。

深入研究生产就绪 (production-ready)的技术,比如如何持久化数据,这样就不需要不断地重新索引了。

出自:https://mp.weixin.qq.com/s/eTvAJ0WjPljSdgq-VTJRHQ

© THE END

转载请联系本网站获得授权

投稿或版权问题请加微信:skillupvip