Microsoft Magentic-One: 新的多AI代理框架
比OpenAI Swarm、LangGraph、AutoGen和CrewAI更好吗?
看起来大科技巨头们终于开始迈向多AI智能代理时代,此前OpenAI发布了Swarm。现在,微软已经开发出了Magentic-One,这是生成式人工智能领域中AutoGen的一个扩展。
什么是Magentic-One?
Magentic-One是微软推出的一款新型通用多智能体系统,可处理多个领域中的各种基于网络和文件的任务。它旨在帮助处理类似于人们在日常工作或个人设置中面对的任务。Magentic-One的开源版本现在已经在微软的AutoGen框架上推出。
谈到关键特点,Magentic-One发布了5个默认代理:
- 编排器代理:负责高级规划和任务管理的中心组件。它指导其他代理,跟踪进展,并在进度停滞时重新规划。
- 专业代理:四个额外的代理支持指挥者:
WebSurfer:管理一个Web浏览器,用于浏览和与网页交互。
文件搜寻器:处理本地文件管理和导航。
编码人员:专注于编写和分析代码。
计算机终端:提供控制台访问,用于执行程序和安装库。
如何运作?
这个图表示了Orchestrator系统的工作流程,主要关注任务分类帐和进度分类帐来管理任务进度。
- 任务分类账: Orchestrator首先通过关键信息,如已知事实,假设和任务计划,创建或更新此分类账。
- 进度总账:在每一步,协调器更新这本总账以检查任务完成情况,监控进度,并记录是否需要重新指派任何代理人。
- 停顿检测:如果任务停顿超过两个周期,编排者将修订任务分类帐和计划。
- 代理协调:指挥者将子任务分配给代理人(编码员、计算机终端、网页浏览者和文件浏览者),他们根据提供的指令执行操作。
- 完成检查: 一旦进度满意,系统会检查是否完成并报告最终结果。
让我们看一个例子:
以下是该图中程序的流程:
任务定义:编排者收到一个任务,要提取Python代码,获取一个C++代码的URL,执行它,并进行计算。
指挥者管理以下步骤和协调:
步骤1:FileSurfer代理访问图像,提取Python代码。
第二步:编码器代理分析Python代码。
步骤三:计算机终端执行Python代码,生成C++代码的URL。
步骤4:WebSurfer访问URL并提取C++代码。
步骤5:另一位Coder代理分析C++代码。
第六步:计算机终端执行C ++代码,计算并返回最终结果,完成任务。
谈论一些其他细节
- 性能和评估:Magentic-One 在与 GAIA、AssistantBench 和 WebArena 等最先进基准的竞争中展示了竞争性能。它利用 AutoGenBench 进行严格评估,确保在各种复杂任务中的可靠性。
- 开源:Magentic-One建立在AutoGen框架之上,具有模块化和灵活性,可以通过添加或删除代理来轻松适应,而不会破坏整个系统。这种设计促进了重复使用并简化了开发。
- 安全措施:意识到与代理系统相关的潜在风险,微软已实施安全措施,包括红队演习以识别有害行为。该系统鼓励在操作过程中进行人类监督,以最小化风险。
- 支持不同的LLMs:Magentic-One主要使用GPT-4o作为其代理,可以整合不同的模型以优化性能,根据特定任务或成本约束。
AutoGen vs Magentic-One
一个我想到的问题是,为什么微软需要另一个框架,而AutoGen已经是该领域中流行的框架。主要原因是易用性。我从未发现AutoGen足够直观易用。
以下是两个框架之间的一些关键区别:
- 基础:Magentic-One建立在AutoGen框架上,该框架为多智能体通信和合作提供了基础架构。AutoGen是一个独立的框架。
- 目的:Magentic-One 是一个通用的多智能体系统,旨在使用专门的代理处理复杂的多步任务,而 AutoGen 则是一个更广泛的框架,专门用于创建各种类型的 AI 代理,而不专注于任务执行。
- 代理结构:Magentic-One采用结构化方法,由一个Orchestrator代理管理四个专门代理(WebSurfer,FileSurfer,Coder,ComputerTerminal)共同完成任务。AutoGen并没有为其代理规定如此特定的架构。
- 评估工具:Magentic-One 包括 AutoGenBench,这是一款专门用于评估代理在 GAIA 和 AssistantBench 等基准上表现的工具。虽然 AutoGen 可以用于创建代理,但它不包括内置的性能评估工具。
- 灵活性和适应性:Magentic-One的模块化架构支持轻松添加或移除代理而不影响整体性能,促进适应性。AutoGen提供了基础功能,但可能需要更多的手动调整以实现类似的适应性。
- 模型不可知性:两个系统都是模型不可知的;但是,Magentic-One目前针对特定模型(如GPT-4o)进行了优化,同时根据任务需求允许与各种语言模型集成。 AutoGen旨在通常支持多种模型,但不专注于特定实施。
我还没尝试过这个框架,但这个想法看起来不错,使多智能体编排变得比以往更容易。您可以在下面的git存储库中查看。
你可以在下面查看使用其他框架的其他多AI代理演示。