跳至主要内容

Microsoft Magentic-One:新的多 AI 代理框架

 

看起来大型科技巨头终于迈向了 Multi-AI Agent 时代,之前 OpenAI 发布了 Swarm。现在,Microsoft 开发了 Magentic-One,这是 AutoGen 在生成式 AI 领域的扩展。

什么是 Magentic-One?

Magentic-One 是 Microsoft 推出的一种新的通用多代理系统,可处理跨多个领域的各种 Web 和基于文件的任务。它旨在帮助人们完成类似于人们在日常工作或个人环境中面临的任务。Magentic-One 的开源版本现已在 Microsoft 的 AutoGen 框架上提供。

谈到主要功能,Magentic-One 发布了 5 个默认代理:

  • Orchestrator 代理:负责高级规划和任务管理的核心组件。它可以指导其他代理,跟踪进度,并在进度停滞时重新规划。
  • 专业代理: 另外四个代理支持 Orchestrator:

网络冲浪者:管理用于导航和与网页交互的 Web 浏览器。

文件冲浪者:处理本地文件管理和导航。

编码器: 擅长编写和分析代码。

计算机终端: 提供用于执行程序和安装库的控制台访问权限。

这个怎么运作?

此图说明了 Orchestrator 系统的工作流,重点介绍用于管理任务进度的 Task Ledger 和 Progress Ledger

  1. Task Ledger:Orchestrator 首先使用关键信息(如已知事实、假设和任务计划)创建或更新此分类账。
  2. 进度分类账:在每个步骤中,Orchestrator 都会更新此分类账以检查任务完成情况、监控进度并记录是否有任何座席需要重新分配。
  3. 停顿检测:如果任务停滞超过两个周期,Orchestrator 会修改任务分类账和计划。
  4. 代理协调:Orchestrator 将子任务分配给代理(Coder、ComputerTerminal、WebSurfer 和 FileSurfer),这些代理根据提供的说明执行操作。
  5. 完成检查:如果进度令人满意,系统将检查完成情况并报告最终结果。

让我们看一下这个例子:

下图是程序在此图中的流程:

任务定义:Orchestrator 收到一个任务,用于提取 Python 代码、获取 C++ 代码的 URL、执行该代码并执行计算。

Orchestrator 管理以下步骤和协调:

第 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 框架构建,具有模块化和灵活性,允许在不中断整个系统的情况下通过添加或删除代理来轻松适应。此设计可促进重用并简化开发。
  • 安全措施:认识到与代理系统相关的潜在风险,Microsoft 实施了安全措施,包括红队练习以识别有害行为。该系统鼓励在操作过程中进行人工监督,以最大限度地降低风险。
  • 支持不同的 LLM: 虽然主要将 GPT-4o 用于其代理,但 Magentic-One 可以整合各种模型,以根据特定任务或成本限制优化性能。

AutoGen 与 Magentic-One

我想到的一点是,为什么 Microsoft 需要另一个框架,而 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 存储库

您可以使用其他框架查看下面的其他 Multi-AI Agent 演示

评论

此博客中的热门博文

Docker-Compose 安装 PolarDB

 version: '3.1' services:   polardb:     container_name: polardb     restart: always     image: polardb/polardb_pg_local_instance     ports:       - 5432:5432     networks:       - net_db     environment:       TZ: Asia/Shanghai     volumes:       - ./polardb:/var/polardb networks:   net_db:     external: true

Docker-Compose 安装 Portainer

 version: '3.1' services: portainer: image: portainer/portainer-ce:latest container_name: portainer hostname: portainer restart: always volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "./portainer_data:/data" - "./portainer_cn:/public" environment: TZ: Asia/Shanghai LANG: en_US.UTF-8 ports: - "9001:9000" networks:      - net_db networks: net_db: external: true

Wireguard 部署应用

 一、首先要有一个公网IP来进行服务端安装配置,为了简化部署,并且尽量少的侵入性,就用Docker安装服务端: services:   wireguard:     restart: always     image: weejewel/wg-easy     container_name: wireguard     ports:       - "51820:51820/udp"       - "51821:51821/tcp"     environment:       - TZ=Asia/Shanghai       - WG_HOST=0.0.0.0       - PASSWORD=123456       - WG_PERSISTENT_KEEPALIVE=25       - WG_DEFAULT_ADDRESS=10.0.8.x       - WG_DEFAULT_DNS=114.114.114.114       - WG_ALLOWED_IPS=10.0.8.0/24     volumes:       - ./wg-easy:/etc/wireguard     cap_add:       - NET_ADMIN       - SYS_MODULE     sysctls:       - net.ipv4.ip_forward=1       - net.ipv4.conf.all.src_valid_mark=1 二、客户端安装: # root权限 sudo -i # 安装wireguard软件 apt install w...