Magentic-UI 是由微软开发的一款以人为中心的网络智能代理工具,能够帮助用户自动化执行各种复杂的网络任务,同时让用户保持对任务执行过程的控制。
一、主要功能
- 协作规划(Co-Planning):用户可以通过聊天和计划编辑器与 Magentic-UI 协作创建和批准逐步计划。用户可以添加、删除、编辑计划步骤,甚至重新生成步骤,以确保计划符合自己的需求。
- 协作任务执行(Co-Tasking):用户可以直接通过网络浏览器或聊天中断并指导任务执行。Magentic-UI 也可以在需要时向用户请求澄清和帮助,确保任务顺利进行。
- 动作防护(Action Guards):敏感动作只有在获得用户明确批准后才会执行,确保用户对关键操作的控制权。
- 计划学习与检索(Plan Learning and Retrieval):Magentic-UI 会从之前的运行中学习,以改进未来的任务自动化,并将计划保存在计划库中。用户可以自动或手动检索以前保存的计划,以便在未来的任务中使用。
- 并行任务执行(Parallel Task Execution):用户可以同时运行多个任务,并通过会话状态指示器了解 Magentic-UI 是否需要用户输入或任务是否已完成。
二、技术原理
Magentic-UI 基于微软的 AutoGen 技术构建,其底层系统由多个专业智能体组成,这些智能体协同工作,形成一个模块化系统:
- 协调者(Orchestrator):作为主导智能体,由大型语言模型(LLM)驱动,负责与用户进行协作规划,决定何时向用户请求反馈,并将子任务分配给其他智能体完成。
- 网络冲浪者(WebSurfer):这是一个配备网络浏览器的 LLM 智能体,能够控制浏览器,执行点击、输入、滚动等操作,完成协调者分配的任务。它比 AutoGen 的
MultimodalWebSurfer智能体在功能上有了显著提升,支持标签管理、选项选择、文件上传和多模态查询等功能。 - 代码生成器(Coder):配备 Docker 代码执行容器的 LLM 智能体,能够编写和执行 Python 和 Shell 命令,并将结果反馈给协调者。
- 文件冲浪者(FileSurfer):配备 Docker 代码执行容器和 MarkItDown 包中的文件转换工具的 LLM 智能体,可以定位 Magentic-UI 控制的目录中的文件,将文件转换为 Markdown 格式,并回答有关文件的问题。
- 用户代理(UserProxy):代表与 Magentic-UI 交互的用户,协调者可以将任务分配给用户,而不是其他智能体。
用户可以通过输入文本消息和附加图像与 Magentic-UI 交互。Magentic-UI 会创建一个自然语言的逐步计划,用户可以通过计划编辑界面与之交互。协调者根据计划逐步执行任务,将任务分配给相应的智能体或用户,并根据智能体或用户的反馈决定每一步是否完成。如果在执行过程中发现计划存在问题,协调者可以重新规划并获得用户许可后执行新计划。所有中间进度步骤都会清晰地显示给用户,用户还可以暂停计划的执行,发送额外的请求或反馈,并通过界面配置是否需要对智能体的动作(例如点击按钮)进行审批。
三、应用场景
- 需要网络操作的任务:例如填写在线表单、定制食品订单等,Magentic-UI 可以自动完成这些操作,节省用户的时间和精力。
- 深度网站导航:对于未被搜索引擎索引的网站,如过滤航班信息、从个人网站中查找链接等,Magentic-UI 能够深入导航并找到所需信息。
- 需要网络导航和代码执行的任务:比如从在线数据生成图表,Magentic-UI 可以同时处理网络访问和代码执行,完成复杂的任务。
四、使用方法
(一)安装前准备
- 确保安装了 Docker,Windows 用户需要安装 WSL2,并配置 Docker Desktop 使用 WSL2。
- 提供 OpenAI API 密钥,通过设置环境变量
OPENAI_API_KEY或在 Magentic-UI 的设置中配置。 - 安装 Python 3.10 或更高版本。
(二)安装步骤
- 通过 PyPI 安装:推荐使用虚拟环境以避免与其他包冲突。使用以下命令创建虚拟环境并安装 Magentic-UI:
python3 -m venv .venv source .venv/bin/activate pip install magentic-ui如果使用uv进行依赖管理,可以使用以下命令:
