构建AI Agent必学的4种设计模式,一文了解 原创
编者按: 在构建 AI 助手和智能体时,应该采用怎样的设计模式才能让它们更加高效、可靠?
我们今天为大家带来的这篇文章详细介绍了四种设计模式的特点和应用场景:Reflection Pattern 通过自我评估来优化输出和决策;Tool Use Pattern 让 AI 能够调用和整合外部工具;Planning Pattern 将复杂任务分解为可管理的子任务;以及 Multi-Agent Collaboration Pattern 实现多个 AI Agent 之间的协作。
作者引用了 Andrew Ng 的观点,指出虽然后两种模式富有前景,但目前的不确定性较高,而 Reflection 和 Tool Use 模式则已经相对成熟可靠。
作者 | Lorenz Hofmann-Wellenhof
编译 | 岳扬
生成于 flux-dev,提示词为(为我生成一幅水彩画图像,背景为米色,上面有手写的红色文字:“4 AI agent patterns”)
鉴于我所在的公司正积极布局语音虚拟助手领域[1],我觉得有必要掌握相关的基础知识和了解当前发展状况。
在本文中,我们将一同探讨 AI agents 设计中普遍采用的一些设计模式。
01 Reflection Pattern
该设计模式要求 Agents 能够分析和提升自身性能。Agents 通过自我评估来精细化其输出和决策流程。
Source: Author
这是一个比较简单的设计模式,只需少量的代码即可实现。
在以下场景中,reflection 设计模式的表现要优于一般的大语言模型(LLM):
- 代码优化
- 对话回复
请查看下图,您将观察到语言模型是如何在对话回复和代码优化示例中逐步完善其输出的。
Source: SELF-REFINE: Iterative Refinement with Self-Feedback
02 Tool Use Pattern
Source: Author
该模式的工作流程如下:
- 功能描述:为 LLM 提供一套详尽的工具说明,包括各工具的功能及必要的参数。
- 工具选择:根据当前面临的任务,LLM 将决定调用哪个工具。
- 函数调用:LLM 生成特定的字符串来激活所选工具,通常需遵循一定的格式规范(如 JSON)。
- 执行过程:在后续处理阶段,系统会识别这些函数调用,执行相应的操作,并将结果反馈给 LLM。
- 整合输出:LLM 将工具的执行结果融入其最终反馈中。
如果你一直关注技术动态,并使用过 GPT,那你可能已经意识到,它在处理某些任务时已经能够自动完成这些步骤了。
当 LLMs 能够访问成百上千的工具时,它们的能力将得到极大的扩展。
比如,Gorilla[2] 使得 LLMs 能够通过调用 API 来使用工具。面对自然语言查询,Gorilla 能够找到在语义和语法上都恰当的 API 进行调用。
借助 Gorilla,我们可以执行超过 1,600 种(且数量不断增长)的机器学习 API 调用。
他们提供的命令行界面(CLI)让我们能够以自然语言完成各项任务。例如,我们可以
$ gorilla generate 100 random characters into a file called test.txt
然后它就会显示 CLI 命令:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 100 | head -n 1 > test.txt
03 Planning Pattern
该模式的工作流程如下:
- 任务拆解:LLM 扮演控制器的角色,将一项任务拆分为多个细小、易于处理的子任务。
- 针对每个子任务,选取合适的特定模型来执行。
- 这些特定模型完成子任务后,将结果反馈给控制器 LLM,由其整合并生成最终模型响应。
Source: Author
HuggingGPT 就是一个运用了 planning pattern 的实例。它将大语言模型(LLMs)与 Hugging Face[3] 平台上丰富的模型生态系统相连接。
04 Multi-Agent Collaboration
Source: Author
该模式的工作流程如下:
- 特定角色智能体:每个智能体都有其特定职责,比如担任软件工程师、产品经理或设计师等角色。
- 任务细分:将复杂任务拆分为更小的子任务,这些子任务可以由不同的智能体分别处理。
- 信息交流与行动协调:智能体之间通过互动交流信息,并协调各自行动,共同推进项目目标的实现。
- 分布式解决问题:系统通过集合多个智能体的智慧和能力,来解决单个智能体难以应对的复杂问题。
目前,由于技术尚未成熟,现实世界中多智能体系统的应用并不广泛。一个我所了解的例子是 ChatDev[4],这是一家由虚拟角色组成的软件公司,包括 CEO、CTO 以及工程师等职位。
Andrew Ng 将“Planning”和“Multi-Agent Collaboration”模式划分为难以预测的类型:
与“Planning”设计模式一样,我发现“Multi-Agent Collaboration”的输出质量很难预测,尤其是当智能体可以自由互动并且拥有多样的工具时。相比之下,更为成熟的“Reflection”和“Tool Use”模式则显得更为稳定可靠。—— Andrew Ng
Andrew Ng 的观点提示我们,目前来看,前两种模式更可能被现有的生产系统所采纳。
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the authors
Lorenz Hofmann-Wellenhof
👨💻 Software Engineer at Cresta 🇺🇸. Born and raised in Austria 🇦🇹, lived in NYC, Berlin & now Dubai 🇦🇪 👀 Writing about tech & life experiences
END
本期互动内容 🍻
❓ 在文章提到的四种模式中,你最看好哪一种?为什么?
🔗文中链接🔗
[2]https://gorilla.cs.berkeley.edu/
[3]https://hugginggpt.space/
[4]https://github.com/OpenBMB/ChatDev
原文链接:
https://lorenzhw.substack.com/p/4-ai-agent-patterns-you-should-know