何为Magentic UI?
Magentic UI
是微软于5.19重磅发布的开源Agent助手,并于24日刚更新了第二个版本0.04版
从官方的介绍来看,目标是打造一款 以人为中心 的智能助手,其底层由多个不同的智能体系统驱动,能够实现网页浏览与操作、代码生成与执行、文件生成与分析等功能。
它区别于其他一些AI浏览器工具的主要区别在于其 透明可控的交互界面,支持高效的人机协同参与。该系统基于微软的Agent构建框架 AutoGen 构建,目前还处在原型研究阶段。
核心功能包括:
🧑🤝🧑 协同规划:用户和AI通过聊天和计划编辑器协作创建并修订分步执行计划。
🤝 协同任务:用户可直接通过网页浏览器或聊天界面实时介入并指导任务执行。Magentic-UI 能在需要时主动确认或要求协助。
🛡️ 操作防护:敏感操作需经用户明确批准后方可执行。
🧠 计划学习与检索:从过往任务中学习经验以优化未来自动化流程,并将优秀方案保存至计划库。在后续任务中可自动或手动调用已存储的计划。
🔀 并行任务执行:支持多任务并行运行,会话状态指示器会实时提示 Magentic-UI 何时需要您的输入或任务已完成。
设计架构
Magentic-UI 的底层系统是由一组从 AutoGen 的 Magentic-One 系统(如上图所示)改造而来的专业化 Agent 组构成,各Agent通过模块化协作实现不同功能:
Agent功能说明
总控代理(Orchestrator)
- 功能定位:基于大语言模型(LLM)的主控智能体,负责与用户协同制定计划、决策何时请求用户反馈,并向其他智能体分配子任务。
- 协作流程:
- 与用户共同制定分步执行计划;
- 动态判断需用户介入的节点;
- 将子任务分派至其他智能体执行。
网页浏览代理(WebSurfer)
- 功能定位:配备网页浏览器的 LLM 智能体,支持多轮次网页交互操作。
- 核心能力:
- 根据总控代理的指令,执行点击、输入、滚动、页面跳转等操作;
- 超越 AutoGen 多模态网页浏览器:新增标签管理、选项选择、文件上传及多模态查询支持。
代码执行代理(Coder)
- 功能定位:配备 Docker 代码执行容器的 LLM 智能体。
- 核心能力:
- 编写并执行 Python 和 Shell 命令;
- 将执行结果反馈至总控代理。
**文件处理代理(FileSurfer)
**
- 功能定位:集成 Docker 容器与 MarkItDown 包文件转换工具的 LLM 智能体。
- 核心能力:
- 定位 Magentic-UI 控制目录下的文件;
- 将文件转换为 Markdown 格式并支持内容问答。
用户代理(UserProxy)
- 功能定位:代表用户与系统交互的代理角色。
- 协作模式:总控代理可将任务直接委派给用户(而非其他智能体)完成。
用户交互流程
用户利用 Magentic UI 的交互流程可以用下图表示:
|
|
输入与计划生成
- 用户通过文本/图片触发流程,系统生成初始计划。若失败则提示用户重新输入。
- 用户通过编辑界面迭代优化计划,确认后进入执行阶段。
计划执行逻辑
- 总控代理按步骤分配任务至对应智能体(WebSurfer/Coder/FileSurfer)或用户。
- 每个步骤完成后验证状态,若失败则判断是否需要重新规划(需用户授权)。
动态控制与终止
- 用户可随时干预:暂停执行、修改计划或终止流程。
- 所有步骤完成后交付最终结果,异常情况下提供透明错误反馈。
工具部署
Magentic AI 主要基于Python 开发,Web部分基于FastAPI。而它的AI控制主要通过 Playwright 控制 Docker 容器中的一个虚拟浏览器,且可以实时显示给用户。而背后的大模型则主要基于各个开放大模型的API接入方式使用。
所以要部署Magentic UI,需要先确认相关前置条件:
- Docker已安装,如果是Window系统,安装Docker Desktop,且和WSL集成
- 提供大模型的接入API KEY,默认使用的是 OPENAI 的API KEY
- Python运行环境且 >3.10 版本
是在WSL中部署的这个工具, 首先创建python虚拟环境,然后安装Magentic AI及相关依赖
|
|
确保Docker已启动, 运行Magentic UI前应该没有相关容器在运行
|
|
大模型这里可以使用微软Azure AI上的OPENAI, , 完成配置后,将对应api key设置为环境变量 OPENAI_API_KEY
|
|
另外Magentic UI本身需要对大模型进行配置,Azure AI的配置模板如下:
|
|
运行
然后运行Magentic ui, 默认使用8081端口,首次运行会下载多个不同docker镜像及相关依赖,时间较长,等待安装完成
|
|
等运行log中出现如下信息,则启动成功
|
|
浏览器访问 http://localhost:8081
会看到如下界面
启动一个会话后,比如让AI协助我们完成一个测试
|
|
如安装正确,大模型调用正常,那么Magentic UI 就会规划相关任务计划,并让用户确认
用户也可以根据相关反馈,对计划进行调整,在计划执行过程中,也可以和AI交互,变更它的执行路径。具体的执行演示,可参看下方视频。
这时查看WSL中的docker 运行信息,可以看到运行了3个容器,其中两个是mangenti UI的coder
和 file surfer
智能体,另一个是可远程查看的 vnc_browser
容器
一系列步骤执行完成,Magentic UI根据最开始的指令,得到了如下markdown格式结果汇总。
|
|
使用体会
总体应用下来,把AI重新定位为辅助者角色,显然更贴合当前AI应用的实际,而且通过容器实时显示AI的操作过程,使AI执行任务不再像个黑盒,确实友好了很多。
不过应用中感觉还是实用性不是太好,虽然官方已声明现阶段还是研究性质,但尚有较大改进空间。
- 安装和配置比较复杂,各种依赖包众多,耗时较久
- 大模型本身能力对执行过程,包括是否能正常完成交互都有较大影响。调用失败和异常较多。
- 大模型的token消耗比较可观,完成一个任务,其实会分解多数十个不同请求,而每个请求的token消耗也是数千计,实用付费模型的话,成本高昂
下图是Azure后台查看的我试验期间的token消耗,比较可观。
总之,Magentic UI 的发展方向值得期待,但当下还需要多等待它的进一步完善。