Microsoft Magentic-One:全新多AI代理框架
2024年11月11日 由 alex 发表
85
0
看起来科技巨头们终于正在迈向多AI代理时代,此前OpenAI已经发布了Swarm。现在,微软又开发了Magentic-One,这是其在生成式AI领域对AutoGen的扩展。
什么是Magentic-One?
Magentic-One是微软推出的一个全新的、通用型的多代理系统,能够处理跨多个领域的各种基于网络和文件的任务。它的设计初衷是帮助人们完成日常工作或个人环境中类似的任务。现在,Magentic-One的开源版本已经在微软的AutoGen框架上发布。
谈到关键功能,Magentic-One发布时包含了5个默认代理:
- Orchestrator Agent(协调器代理):这是负责高级规划和任务管理的核心组件。它指导其他代理,跟踪进度,并在进度停滞时能够重新规划。
- Specialized Agents(专业代理):另外四个代理支持协调器代理:
WebSurfer(网页冲浪者):管理网页浏览器,用于导航和与网页交互。
FileSurfer(文件冲浪者):处理本地文件管理和导航。
Coder(编码者):专门负责编写和分析代码。
ComputerTerminal(计算机终端):提供控制台访问,用于执行程序和安装库。
它是如何工作的?
此图展示了协调器系统的工作流程,重点强调了用于管理任务进度的任务账本和进度账本:
- 任务账本:协调器首先创建或更新此账本,其中包含关键信息,如已知事实、假设和任务计划。
- 进度账本:在每个步骤中,协调器都会更新此账本,以检查任务完成情况、监控进度,并注明是否有任何代理需要重新分配。
- 停滞检测:如果任务停滞超过两个周期,协调器将修订任务账本和计划。
- 代理协调:协调器将子任务分配给代理(编码者、计算机终端、网页冲浪者和文件冲浪者),这些代理根据提供的指令执行操作。
- 完成检查:一旦进度达到满意程度,系统将检查完成情况并报告最终结果。
让我们来看一个例子:
以下是该图所示的程序流程:
任务定义:协调器接收到一个任务,即提取Python代码、获取C++代码的URL、执行它并进行计算。
协调器管理以下步骤和协调:
- 步骤1:FileSurfer代理访问图像并提取Python代码。
- 步骤2:Coder代理分析Python代码。
- 步骤3:ComputerTerminal执行Python代码,生成C++代码的URL。
- 步骤4:WebSurfer访问URL并提取C++代码。
- 步骤5:另一个Coder代理分析C++代码。
- 步骤6:ComputerTerminal执行C++代码,进行计算并返回最终结果,从而完成任务。
关于其他细节
- 性能与评估:Magentic-One在与GAIA、AssistantBench和WebArena等最先进的基准测试相比时表现出具有竞争力的性能。它使用AutoGenBench进行严格评估,确保在各种复杂任务中的可靠性。
- 开源:Magentic-One基于AutoGen框架构建,具有模块化和灵活性,可以轻松添加或移除代理而不会破坏整体系统。这种设计促进了重用并简化了开发。
- 安全措施:认识到代理系统可能带来的潜在风险,微软实施了包括红队演练在内的安全措施来识别有害行为。该系统鼓励在操作过程中进行人工监督,以最小化风险。
- 支持不同的LLM(大型语言模型):虽然Magentic-One主要为其代理使用GPT-4o,但它可以融入各种模型,以根据特定任务或成本约束优化性能。
AutoGen与Magentic-One的比较
我想到的一个问题是,既然AutoGen已经是该领域的一个流行框架,为什么微软还需要另一个框架。主要原因是易用性。我从未觉得AutoGen足够直观易用。
以下是两个框架之间的一些关键差异:
- 基础:Magentic-One构建在AutoGen框架之上,该框架为多代理通信和合作提供了底层架构。而AutoGen是一个独立的框架。
- 目的:Magentic-One是一个通用型多代理系统,旨在使用专门代理处理复杂的多步骤任务,而AutoGen则是一个更广泛的框架,用于创建各种类型的AI代理,没有特定关注任务执行。
- 代理结构:Magentic-One采用结构化方法,由一个协调器代理管理四个专门代理(WebSurfer、FileSurfer、Coder、ComputerTerminal)来协作完成任务。而AutoGen没有为其代理规定如此具体的架构。
- 评估工具:Magentic-One包含AutoGenBench,这是一个专用的评估工具,用于评估代理在GAIA和AssistantBench等基准测试上的性能。而AutoGen允许创建代理,但不包含内置的性能评估工具。
- 灵活性和适应性:Magentic-One的模块化架构支持轻松添加或移除代理而不会影响整体性能,从而提高了适应性。而AutoGen提供了基础功能,但可能需要更多的手动调整才能实现类似的适应性。
- 模型无关性:两个系统都是模型无关的;然而,Magentic-One目前针对特定模型(如GPT-4o)进行了优化,同时允许根据任务需求集成各种语言模型。而AutoGen则设计为一般支持多个模型,但不关注特定实现。
我还没有尝试过这个框架,但这个想法看起来不错,并且使多代理协调比以往更容易。
文章来源:https://medium.com/data-science-in-your-pocket/microsoft-magnetic-one-new-multi-ai-agent-framework-7fd151b81cd7