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 智能体来执行不同的子任务。

### minimind LLMs 源码解读分析 #### full_sft.py 文件解析 `full_sft.py` 是一个用于实现基于 PyTorch 的分布式混合精度语言模型全参数训练框架的脚本[^1]。该文件主要关注于如何高效地利用硬件资源,在大规模数据集上进行高效的训练。 为了支持分布式训练,此模块引入了 `torch.distributed.launch` 工具来启动多进程环境,并通过配置 GPU 设备来进行并行计算。对于优化器的选择,默认采用 AdamW 来更新权重参数;同时为了加速收敛过程以及提高数值稳定性,还应用了梯度裁剪技术防止梯度过大造成不稳定现象发生。 此外,考虑到现代深度学习任务中常见的内存瓶颈问题,这里实现了自动混合精度机制 (Automatic Mixed Precision, AMP),它允许网络中的某些部分以较低位宽的数据类型运行从而节省显存空间而不影响最终性能表现。 ```python from torch.cuda.amp import GradScaler, autocast scaler = GradScaler() with autocast(): outputs = model(inputs) loss.backward() scaler.step(optimizer) scaler.update() ``` #### eval.py 文件解析 另一方面,《eval.py》则专注于构建一个可以与用户实时互动交流的人工智能系统[^2]。具体来说就是创建了一个命令行界面(Command Line Interface, CLI), 让使用者能够输入自然语言查询语句得到相应的回复结果。 在这个过程中涉及到的关键组件包括但不限于: - **Tokenizer**: 负责将原始文本转换成 token 序列以便送入 Transformer 编解码架构处理; - **Model Inference Pipeline**: 定义好推理流程之后就可以调用预训练好的 checkpoint 进行预测操作了; - **Response Generation Logic**: 根据上下文信息动态调整生成策略确保对话连贯性逻辑一致性. ```python tokenizer = AutoTokenizer.from_pretrained('pretrained_model_path') model = AutoModelForCausalLM.from_pretrained('pretrained_model_path') input_text = "你好" inputs = tokenizer(input_text, return_tensors="pt").to(device) outputs = model.generate(**inputs, max_length=50) response = tokenizer.decode(outputs[0], skip_special_tokens=True) print(response) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个处女座的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值