构建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/
[4]https://github.com/OpenBMB/ChatDev
原文链接:
https://lorenzhw.substack.com/p/4-ai-agent-patterns-you-should-know

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GreatSQL temp文件占用时长分析
GreatSQL temp文件占用时长分析 GreatSQL DBA在日常工作中可能会遇到这种情况,存在一个 InnoDB 引擎下的 temp_x.ibt 文件很大,但是却无法确定这个文件是什么时间由哪个连接建立的,难以支撑后续定位问题,今天这篇文章彻底讲明白这个问题。 现象:发现一个实例下面(4406端口对外提供服务的实例)temp文件很大,如下所示: -rw-r----- 1 greatsql greatsql 81920 Sep 26 23:56 temp_1.ibt -rw-r----- 1 greatsql greatsql 81920 Sep 30 16:43 temp_10.ibt -rw-r----- 1 greatsql greatsql 81920 Sep 26 23:56 temp_2.ibt -rw-r----- 1 greatsql greatsql 81920 Sep 26 23:56 temp_3.ibt -rw-r----- 1 greatsql greatsql 81920 Sep 26 23:56 temp_4.ibt -rw-r----- 1 gr...
- 下一篇
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
导读:灵犀科技早期基于 Hadoop 构建大数据平台,在战略调整和需求的持续扩增下,数据处理效率、查询性能、资源成本问题随之出现。为此,引入 Apache Doris 替换了复杂技术栈,升级为集存储、加工、服务为一体的统一架构,实现存储成本下降 60%,计算效率提升超 10 倍的显著成效。 灵犀科技有限公司(简称灵犀科技)是奇点控股旗下的高科技企业,专注于为企业提供 SaaS 服务、定制化决策工具、智能匹配交易平台以及开放的大数据生态系统。灵犀科技深耕于企业产业分析,积累了大量相关信息,基于这些数据构建了独特的产业链结构,向政府和企业提供精准拓客服务,助力产业升级与招商。 灵犀科技早期基于 Hadoop 构建大数据平台,以 Hive、Clickhouse、Starrocks 搭建离线数仓,Flink、Redis 搭建实时数仓。2023 年随着公司的战略调整和需求扩增,数据处理效率、查询性能、资源成本问题随之出现。为了快速应对业务的发展需要,灵犀科技引入 Apache Doris 搭建了集存储、加工、服务为一体的统一架构,有效解决上述挑战,实现存储成本下降 60%,计算效率提升超 10 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启