当前位置: 首页 > article >正文

LLMs之Agent:Magentic-One的简介、安装和使用方法、案例应用之详细攻略

LLMs之Agent:Magentic-One的简介、安装和使用方法、案例应用之详细攻略

导读:微软研究院的文章介绍了 Magentic-One,一个用于解决复杂任务通用多智能体系统。

>> 背景痛点:

● AI 从对话到行动的转变:当前的 AI 系统主要集中在对话生成,而实际应用中更需要 AI 系统能够自主完成任务(agentic AI)。这需要 AI 系统具备感知、推理和行动的能力。

● 现有智能体系统的局限性:现有的 AI 智能体系统在特定领域表现出色,但缺乏通用性,难以可靠地完成跨多个领域的复杂多步骤任务。 单一智能体系统通常工作流程不灵活,难以扩展。

>> 具体的解决方案:微软提出了 Magentic-One,一个高性能通用型智能体系统,它采用多智能体架构来解决复杂任务。

● 多智能体架构:Magentic-One 包含一个协调者 (Orchestrator) 智能体和四个专业智能体 (WebSurfer, FileSurfer, Coder, ComputerTerminal)。

● 协调者 (Orchestrator) 的角色:协调者负责任务分解、规划、协调其他智能体执行子任务、跟踪进度以及纠正错误。它通过维护任务日志 (Task Ledger) 和进度日志 (Progress Ledger) 来管理任务执行过程。

● 专业智能体的功能:WebSurfer 用于操作网页浏览器;FileSurfer 用于处理本地文件;Coder 用于编写和执行代码;ComputerTerminal 提供对终端的访问

>> 核心思路步骤:Magentic-One 的工作流程基于一个双循环机制:

● 外循环 (Outer Loop):协调者更新任务日志,制定和调整计划。

● 内循环 (Inner Loop):协调者更新进度日志,分配子任务给专业智能体,并监控执行情况。 如果进度停滞,则返回外循环重新规划。

>> 优势:

● 通用性:能够解决各种开放式 Web 和文件系统任务。

● 模块化和可扩展性:基于 AutoGen 开源框架构建,具有模块化设计,易于添加或移除智能体,方便扩展和适应不同的任务。

● 高性能:在多个具有挑战性的基准测试中取得了与现有最先进方法相当的性能。

模型无关性:可以使用不同的 LLM 和 SLM 来驱动不同的智能体,以满足不同的能力或成本需求。

>> 结论和观点:

● Magentic-One 的成功:Magentic-One 作为一个通用的多智能体系统,在解决复杂任务方面取得了显著进展,证明了多智能体架构的有效性。

● 安全性和风险:文章也指出了 agentic AI 系统固有的风险,例如采取不良行为或被恶意利用。 建议在使用 Magentic-One 时,需要人工监控,并在沙盒环境中运行代码,以最大限度地降低风险。

● 未来的研究方向:未来的研究需要集中在提高 agentic AI 的安全性,例如赋予智能体评估其行动可逆性的能力,并设计机制在执行高风险操作前寻求人工干预。

总而言之,Magentic-One 代表了朝着构建能够完成人们在工作和生活中遇到的任务的通用型智能体系统迈出的重要一步。 文章不仅介绍了该系统的架构和功能,还强调了 agentic AI 系统的安全性和责任问题,并指出了未来研究的方向。 开源的代码和评估工具的发布也促进了社区的合作和发展。

目录

相关文章

《Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasks》翻译与解读

Magentic-One的简介

1、特点

2、架构组成

3、安全注意事项

Magentic-One的安装和使用方法

1、安装

克隆代码库

安装 Magentic-One

安装Playwright

需要安装 Docker

2、聊天完成客户端的环境配置

T1、Azure OpenAI 服务

T2、OpenAI

可选

Magentic-One的案例应用

1、Magentic-One 的多智能体团队如何完成 GAIA 基准测试中的复杂任务


相关文章

《Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasks》翻译与解读

地址

论文地址:Magentic-One: A Generalist Multi-Agent System for Solving Complex Tasks - Microsoft Research

时间

2024114

作者

Microsoft团队

Magentic-One的简介

Magentic-One 是微软开发的一个通用型多智能体系统,用于解决开放式的 Web 和文件系统任务。它旨在构建能够完成人们在工作和生活中遇到的各种任务的智能体。 该系统在多个具有挑战性的基准测试中取得了与现有最先进方法相当的性能。

1、特点

>> 多智能体架构:采用一个协调者 (Orchestrator) 智能体和四个专业智能体协同工作。
>> 协调者 (Orchestrator):负责任务分解、规划、子任务分配、进度跟踪和错误纠正,通过维护任务日志 (Task Ledger) 和进度日志 (Progress Ledger) 来管理任务执行。
>> 专业智能体:包括 WebSurfer (网页浏览器操作)、FileSurfer (本地文件处理)、Coder (代码编写和执行) 和 ComputerTerminal (终端访问)。
>> 模型无关性:虽然默认使用 GPT-4o,但可以集成不同的 LLM 和 SLM,以满足不同的能力或成本需求。
>> 动态规划:协调者根据任务进度动态调整计划。

2、架构组成

上图展示了 Magentic-One 多Agent团队如何完成 GAIA 基准中的一项复杂任务。Magentic-One 的 Orchestrator Agent制定计划,将任务委派给其他Agent,并跟踪目标的进展情况,根据需要动态修改计划。Orchestrator 可以分别将任务委派给 FileSurfer Agent以读取和处理文件、WebSurfer Agent以操作 Web 浏览器,或 Coder 或 Computer Terminal Agent以编写或执行代码。

Magentic-One 的工作基于多Agent架构,其中首席 Orchestrator Agent负责高级规划、指导其他Agent并跟踪任务进度。Orchestrator 首先制定一个计划来解决任务,在维护的任务分类账中收集所需的事实和有根据的猜测。在计划的每个步骤中,Orchestrator 都会创建一个进度分类账,在其中自我反思任务进度并检查任务是否完成。如果任务尚未完成,它会为 Magentic-One 的其他Agent之一分配一个子任务来完成。在分配的Agent完成其子任务后,Orchestrator 会更新进度分类账并继续执行,直到任务完成。如果 Orchestrator 发现进度不够,它可以更新任务分类账并创建新计划。如上图所示;Orchestrator 的工作因此分为一个外循环(更新任务分类账)和一个内循环(更新进度分类账)。

Magentic-One 由以下成分组成

>> 协调者:负责任务分解和规划的首席Agent,指导其他Agent执行子任务,跟踪总体进度,并根据需要采取纠正措施

>> WebSurfer:这是一个基于 LLM 的Agent,能够熟练地指挥和管理基于 Chromium 的 Web 浏览器的状态。对于每个传入请求,WebSurfer 都会在浏览器上执行操作,然后报告网页的新状态。WebSurfer 的操作空间包括导航(例如访问 URL、执行 Web 搜索);网页操作(例如单击和键入);以及阅读操作(例如总结或回答问题)。WebSurfer 依赖于浏览器的可访问性树和标记集提示来执行其操作。

>> FileSurfer:这是一个基于 LLM 的Agent,可命令基于 markdown 的文件预览应用程序读取大多数类型的本地文件。FileSurfer 还可以执行常见的导航任务,例如列出目录内容和浏览文件夹结构。

>> 编码员:这是一个基于 LLM 的Agent,通过其系统提示专门用于编写代码、分析从其他Agent收集的信息或创建新的工件。

>> ComputerTerminal:最后,ComputerTerminal 为团队提供了访问控制台 shell 的权限,可以在其中执行 Coder 的程序,并可以安装新的编程库。

总的来说,Magentic-One 的Agent为 Orchestrator 提供了解决各种开放式问题所需的工具和功能,以及自主适应和在动态且不断变化的网络和文件系统环境中运行的能力。

虽然我们为所有Agent使用的默认多模态 LLM 是 GPT-4o,但 Magentic-One 与模型无关,可以整合异构模型以支持不同的功能或满足完成任务时的不同成本要求。例如,它可以使用不同的 LLM 和 SLM 及其专用版本来为不同的Agent提供支持。我们建议为 Orchestrator Agent使用强大的推理模型,例如 GPT-4o。在 Magentic-One 的不同配置中,我们还尝试使用 OpenAI o1-preview 作为 Orchestrator 的外循环和 Coder,而其他Agent则继续使用 GPT-4o。

3、安全注意事项

强烈建议在 Docker 容器中运行 Magentic-One,并进行日志监控和人工监督,以最大限度地降低风险,例如防止智能体采取危险行为遭受提示注入攻击

用 Magentic-One 需要与为人类设计的数字世界进行交互,这本身就存在风险。为了将这些风险降至最低,请考虑以下预防措施:

>> 使用容器:在docker容器中运行所有任务,以隔离Agent并防止直接系统攻击。

>> 虚拟环境:使用虚拟环境运行Agent并阻止它们访问敏感数据。

>> 监控日志:在执行期间和执行后密切监控日志,以检测和减轻危险行为。

>> 人工监督:在循环中运行示例,以监督Agent并防止出现意外后果。

>> 限制访问:限制Agent对互联网和其他资源的访问,以防止未经授权的操作。

>> 保护数据:确保Agent无法访问可能被泄露的敏感数据或资源。不要与Agent共享敏感信息。请注意,Agent可能偶尔会尝试冒险行动,例如招募人员提供帮助或在无人参与的情况下接受 cookie 协议。始终确保Agent受到监控并在受控环境中运行,以防止出现意外后果。此外,请注意 Magentic-One 可能容易受到网页的提示注入攻击。

注意:该项目代码目前正在移植到 AutoGen AgentChat,建议等待移植完成后再进行构建。

Magentic-One的安装和使用方法

1、安装

克隆代码库

git clone https://github.com/microsoft/autogen.git

cd autogen/python

uv sync  --all-extras

source .venv/bin/activate

安装 Magentic-One

cd packages/autogen-magentic-one

pip install -e .

安装Playwright

playwright install --with-deps chromium

需要安装 Docker

示例代码可能下载文件、执行代码和与网页交互,请确保在安全的环境中运行。

运行命令:

python examples/example.py --logs_dir ./logs (指定日志目录)

python examples/example.py --logs_dir ./logs --hil_mode (启用人工参与模式)

python examples/example.py --logs_dir ./logs --save_screenshots (保存浏览器截图)

2、聊天完成客户端的环境配置

需要配置环境变量才能使用 create_completion_client_from_env 函数,该函数读取环境变量来返回合适的 ChatCompletionClient。

T1、Azure OpenAI 服务

需要设置 CHAT_COMPLETION_PROVIDER='azure' 和 CHAT_COMPLETION_KWARGS_JSON (包含端点、模型等信息)。

T2、OpenAI

需要设置 CHAT_COMPLETION_PROVIDER='openai' 和 CHAT_COMPLETION_KWARGS_JSON (包含 API 密钥和模型信息)。

可选

Bing API 密钥:如果需要使用 Web 搜索功能,则需要设置 BING_API_KEY。

Magentic-One的案例应用

1、Magentic-One 的多智能体团队如何完成 GAIA 基准测试中的复杂任务

协调者创建计划,将任务委派给其他智能体,并跟踪进度,根据需要动态修改计划。 协调者可以将任务委派给 FileSurfer、WebSurfer、Coder 或 ComputerTerminal 智能体来执行不同的子任务。


http://www.kler.cn/a/397332.html

相关文章:

  • 实战:一文讲透模糊匹配的三种方式的区别
  • 电脑长期不用,开不了机怎样解决
  • C++初阶——优先队列
  • sqli-labs靶场17-20关(每日四关)持续更新!!!
  • vscode中执行git合并操作需要输入合并commit信息,打开的nano小型文本编辑器说明-
  • 前后端、网关、协议方面补充
  • 最终用途声明
  • 【C#】C#编程入门指南:构建你的.NET开发基础
  • 网络设备驱动与网络子系统,有区别吗?
  • Python 打包教程:从零开始构建可分发的Python包
  • 【ORACLE战报】2024年10月OCP考试战报
  • 在使用 Navicat 操作 MongoDB 时,进行 CRUD(创建、读取、更新、删除)操作的基本语法如下:
  • 《操作系统 - 清华大学》3 -3:连续内存分配:内存碎片与分区的动态分配
  • 机器学习day3-KNN算法、模型调优与选择
  • 【GeekBand】C++设计模式笔记11_Builder_构建器
  • java Collections 详解
  • 第22章 企业级Docker虚拟化平台实战
  • Java StringBuilder详解
  • 数据结构《栈和队列》
  • 针对git、giteeVSCode连接的使用 || Live Share插件使用
  • 最新U盘PE启动安装Win10/Win11系统教程
  • 数据结构(初阶4)---循环队列详解
  • Oracle OCP认证考试考点详解082系列22
  • 正确使用primefaces的process和update
  • elementPlus + table 树形懒加载,子节点的刷新
  • 智慧建造-运用Trimble技术将梦幻水族馆变为现实【上海沪敖3D】