对比5个最需要了解的AI多智能体编排框架【4】:“聊天派”的微软AutoGen
了解了轻量级的OpenAI Swam、重量级的LangGraph、易用又不失强大的CrewAI后,今天一起来看出自名门的AutoGen。AutoGen是微软公司推出的用于构建多智能体对话式系统的高级框架,用来创建多个AI Agent协作以解决问题的LLM应用。本文内容:
-
**五分钟读懂AutoGen
** -
AutoGen实现多智能体Demo
-
AutoGen小结
微软在全新的AutoGen v0.4版本中进行了重新设计开发,提供了一个事件驱动、可扩展的分布式多智能体开发与运行框架,该版本目前处于开发中,后续我们将用独立文章为大家预览新版本。
1
五分钟读懂AutoGen
AutoGen可以帮你快速构建一个多Agent通过对话进行有机协作的小型生态系统。在这个系统中,多个Agent借助对话来实现分工、分享与启发,最后完成输入的任务或问题。说人话就是:
多个Agent边聊天边工作,配合完成复杂任务。
需要注意的是,在AutoGen中,人类也可以特殊的身份成为团队的一员。当然,这个成员的特殊能力就是可以“不够智能”:需要人类给出回应,而非让LLM回应。
**【概念理解】
**
如何“聊着聊着”就把问题解决了呢?看下面的例子:

这个双Agent系统中,我们让“儿子”与“父亲”聊天,答案自然就包含在了对话之中(AutoGen会总结最终结果)。
这是一个复杂点的多Agent场景:

三个Agent的团队完成一个调查报告的协作过程:一个负责搜索整理,一个负责审查反思,一个负责制作最终报告。
【工具使用】
会用工具是Agent的基本特征(不能只聊天不干活),在AutoGen中,有两种常见的工具:
-
**函数工具(包括API调用)
** -
代码工具:就是让Agent当码农,并在本地或者docker执行
一个借助代码工具来完成任务的例子:

注意这里的代码编写和代码执行是由不同的Agent负责,这也是AutoGen在使用工具上不同于其他框架的地方:工具的提出与执行是由不同的Agent来完成。
【聊天模式】
聊天也要有秩序,所以最后来了解AutoGen目前版本中的三种基础聊天模式:
1. 双人模式
两个智能体相互聊天的模式:

2. 连续聊天模式
举一个例子,比如玩一个大家抽签比大小的游戏,主持人让每个人依次抽签,最后再让裁判来判决结果:

简单的说,就是一个Agent连续与多个Agent聊天,且每次聊天的结果会带入到下一个聊天中,最后完成任务。
**3. 群聊模式
**
当有一堆Agent在一起聊天时,问题来了,谁是下一个发言者?AutoGen提供了多种决策机制,比如**轮流、随机、人工决定、以及默认的由LLM来决定,**另外还允许定制自己的决策算法(比如有人说脏话就禁言:))。

群聊模式中,需要一个团队管理者,来负责协调与决策下一个发言者。
以上是AutoGen的基础聊天模式,初此之外,AutoGen还提供了嵌套聊天的模式:就是把一个多Agent系统“打包”成一个Agent,用到另一个更大的系统中。
这里揭示了AutoGen与CrewAI的一点区别:AutoGen多个Agent的协作相对更灵活,但也多了一些随机性(高度依赖LLM决策);CrewAI默认采用顺序任务编排,牺牲了灵活性,但多了些确定性。
2
AutoGen实现多智能体Demo
现在我们来实现之前的多智能体Demo:

这个层级模式刚好匹配AutoGen的群聊模式,这里直接给出核心代码:
.....``from autogen import ConversableAgent,GroupChat,GroupChatManager,AssistantAgent,UserProxyAgent web_searcher = ConversableAgent( name="web_searcher", system_message="你是一个搜索助手,会根据输入的关键词进行网络搜索. ", llm_config={"config_list": [{"model": "gpt-4o-mini"}]}, ) web_searcher.register_for_llm(name="web_search_tool", description="网络搜索工具")(web_search_tool) emailer = ConversableAgent( name="emailer", system_message="你是一个邮件助手,会根据输入的收件人、主题和正文发送邮件. ", llm_config={"config_list": [{"model": "gpt-4o-mini"}]}, ) emailer.register_for_llm(name="email_tool", description="邮件发送工具")(email_tool) user_proxy = ConversableAgent( name="user_proxy", system_message="你是一个善于回答问题的AI助手,并会执行python代码或进行工具调用。如果没有具体的输入任务,请直接回复DONE", llm_config={"config_list": [{"model": "gpt-4o-mini"}]}, human_input_mode="NEVER", ) user_proxy.register_for_execution(name="web_search_tool")(web_search_tool) user_proxy.register_for_execution(name="email_tool")(email_tool) group_chat = GroupChat( agents=[web_searcher,emailer,user_proxy], messages=[], max_round=6 ) group_chat_manager = GroupChatManager( groupchat=group_chat, system_message="你是一个智能的团队管理者,会根据输入任务与历史消息决定下一步的任务,并选择合适的团队成员来完成。", llm_config={"config_list": [{"model": "gpt-4o-mini"}]}, is_termination_msg=lambda msg: 'DONE' in msg.get("content"), )
这里省略了两个工具模拟函数(web_search_tool,email_tool)。其他解释如下:
-
创建web_searcher与emailer两个Agent,并注册tools,这是AutoGen中工具使用的机制
-
创建一个user_proxy的Agent。这是一个不同于其他框架的模式,这个Agent将代表人类提出任务与要求,同时工具的执行(代码与函数)需要这个独立的Agent来完成
-
创建团队与团队管理者,这部分有点类似CrewAI
-
注意这里用来结束聊天的小技巧:借助is_termination_msg这个参数
一切准备就绪,我们来分配任务:
chat_result = user_proxy.initiate_chat(group_chat_manager,
message="搜索今天黑神话悟空的最新消息,发到我邮箱aa@bb.com")
观察运行的输出:

注意看Next Speaker的选择,是由chat_manager根据任务进展的自动选择:
-
先选择web_searcher搜索网络(实际执行:user_proxy)
-
**然后选择emailer发送邮件(实际执行:user_proxy)
** -
最后chat_manager判断任务已经结束,终止群聊
3
AutoGen小结
尽管AutoGen也是面向多智能体系统设计的开放框架,但相对基于角色扮演的CrewAI更复杂些。当然,从功能角度也更加强大(不考虑CrewAI新的Flows特性),毕竟CrewAI目前的多智能体协作还只支持顺序与层次两种方式。
【优点】
-
大厂出品,更有技术保障
-
天然面向多智能体系统而设计
-
基于对话的协作,更自然与直观
-
较强的功能与扩展性,适应多种领域任务
-
支持多种灵活的对话模式、任务分解模式
-
有较为完善的人类参与的协作机制
-
提供了AutoGen Studio低代码平台
-
文档与社区较完善
【缺点】
AutoGen在设计上与CrewAI一样都属于高度依赖于LLM自身来实现多智能体协作的框架,因此存在类似的问题:
-
复杂流程自定义编排的能力不足(期待正在开发的0.4版本)
-
Agent之间的对话协作可能产生黑盒子效应,较大的不确定性
-
使用非OpenAI API兼容的本地LLM略麻烦
-
工具判断与执行的分离不太符合习惯
整体上对AutoGen的使用建议是,更适合如下场景与条件:
-
有较好的LLM开发技术基础
-
典型的多Agent应用场景,不建议在如RAG这样的需求中使用
-
非常适合有人类参与协作监督的场景,比如团队创作、软件编程等
最重要的是,由于全新设计重写的AutoGen 0.4版本已经在路上,没入坑的还是等等吧。
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。


👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)

👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
更多推荐


所有评论(0)