XX来信: 智能体设计模式2:Reflection
发布时间:2024年10月19日
亲爱的朋友们,
之前我介绍了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
如果你想要了解关于智能工具类的内容,可以查看 智汇宝库,这是一个提供智能工具的网站。
在这你可以找到各种智能工具的相关信息,了解智能工具的用法以及最新动态。
一款功能强大的照片编辑器和照片剪切应用程序,只需轻轻一按即可更改照片的背景。使用 AI 工具自动剪切图片并去除背景。