大家好,我是每日给大家推荐优秀开源项目的小G。
今天要给大家介绍的这个项目,可能会彻底改变你使用浏览器的方式。想象一下,当你需要在复杂的网站上填写表单、筛选航班信息、定制食物订单,或者从各种网站收集数据生成图表时,不用再一步步手动操作,而是直接告诉AI”帮我完成这个任务”,然后AI就能像真人一样操作浏览器,完成所有复杂的网页交互。这就是今天要介绍的Magentic-UI——一个由微软开源的革命性人机协作浏览器代理系统!
🚀 项目介绍
Magentic-UI是微软推出的一个研究原型,它提供了一个以人为中心的界面,背后由多智能体系统驱动,能够自动浏览和执行网页操作、生成和执行代码,以及生成和分析文件。
项目核心特色
与其他浏览器自动化工具不同,Magentic-UI最大的亮点在于其透明且可控的交互界面,让用户能够高效地参与到人机协作循环中。
🎯 核心功能详解
🧑🤝🧑 协作规划(Co-Planning)
通过聊天和计划编辑器协作创建和批准分步计划,让你和AI共同制定任务执行策略。
🤝 协作执行(Co-Tasking)
在任务执行过程中,你可以随时通过浏览器或聊天打断并引导执行过程。Magentic-UI也会在需要时主动寻求澄清和帮助。
🛡️ 操作防护(Action Guards)
对于敏感操作,系统会要求用户明确批准后才执行,确保安全性。
🧠 计划学习与检索
从以往的运行中学习,改进未来的任务自动化,并将成功的计划保存在计划库中。可以自动或手动检索保存的计划用于未来类似任务。
🔀 并行任务执行
支持同时运行多个任务,通过会话状态指示器让你知道什么时候需要输入或任务已完成。
🛠️ 系统架构
Magentic-UI的底层系统由一个专业化的智能体团队组成,改编自AutoGen的Magentic-One系统:
🎭 协调者(Orchestrator)
-
• 由大语言模型驱动的主导智能体 -
• 负责与用户协作规划 -
• 决定何时寻求用户反馈 -
• 将子任务委派给其他智能体
🌐 网页浏览者(WebSurfer)
-
• 配备可控制网页浏览器的LLM智能体 -
• 能够点击、输入、滚动、访问页面 -
• 支持标签管理、选择选项、文件上传、多模态查询
💻 编码者(Coder)
-
• 配备Docker代码执行容器的LLM智能体 -
• 可以编写和执行Python和shell命令
📁 文件处理者(FileSurfer)
-
• 配备Docker代码执行容器和文件转换工具 -
• 可以定位文件、转换文件为markdown格式、回答文件相关问题
👤 用户代理(UserProxy)
-
• 代表与Magentic-UI交互的用户 -
• 协调者可以将工作委派给用户而不是其他智能体
🔧 快速开始
环境要求
-
1. Docker:Magentic-UI正常运行需要Docker。Windows或Mac用户可以使用Docker Desktop -
2. WSL2(Windows用户):Windows运行需要WSL2环境 -
3. OpenAI API密钥:通过设置环境变量 OPENAI_API_KEY
提供 -
4. Python 3.10+:至少需要Python 3.10
PyPI安装
推荐使用虚拟环境避免包冲突:
python3 -m venv .venv
source .venv/bin/activate
pip install magentic-ui
# export OPENAI_API_KEY=<YOUR API KEY>
magentic ui --port 8081
如果使用uv进行依赖管理:
uv venv --python=3.12 .venv
. .venv/bin/activate
uv pip install magentic-ui
运行Magentic-UI
确保Docker正在运行,然后执行:
magentic ui --port 8081
注意:首次运行会需要较长时间构建Docker镜像,后续运行会快很多。
启动后,访问 http://localhost:8081 即可使用界面。
支持其他模型
如需使用Azure模型或Ollama:
# Azure支持
pip install 'magentic-ui[azure]'
# Ollama支持
pip install 'magentic-ui[ollama]'
⚙️ 自定义客户端配置
你可以通过UI设置(右上角图标)配置不同的模型,或创建config.yaml
文件:
OpenAI配置示例:
# config.yaml
model_config:&client
provider:autogen_ext.models.openai.OpenAIChatCompletionClient
config:
model:gpt-4o
api_key:<YOURAPIKEY>
max_retries:10
orchestrator_client:*client
coder_client:*client
web_surfer_client:*client
file_surfer_client:*client
action_guard_client: *client
Azure OpenAI配置示例:
# config.yaml
model_config:&client
provider:AzureOpenAIChatCompletionClient
config:
model:gpt-4o
azure_endpoint:"<YOUR ENDPOINT>"
azure_deployment:"<YOUR DEPLOYMENT>"
api_version:"2024-10-21"
azure_ad_token_provider:
provider:autogen_ext.auth.azure.AzureTokenProvider
config:
provider_kind:DefaultAzureCredential
scopes:
-https://cognitiveservices.azure.com/.default
max_retries:10
orchestrator_client:*client
coder_client:*client
web_surfer_client:*client
file_surfer_client:*client
action_guard_client: *client
🏗️ 从源码构建
如果你想从源码构建或参与开发:
1. 克隆仓库:
git clone https://github.com/microsoft/magentic-ui.git
cd magentic-ui
2. 安装依赖:
uv venv --python=3.12 .venv
uv sync --all-extras
source .venv/bin/activate
3. 构建前端:
# 安装Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install node
# 构建前端
cd frontend
npm install -g gatsby-cli
npm install --global yarn
yarn install
yarn build
4. 运行:
magentic ui --port 8081
🎯 使用场景
特别适合以下任务:
-
• 📝 需要在网页上执行操作的任务(填写表单、定制订单等) -
• 🔍 需要深度导航未被搜索引擎索引的网站(筛选航班、从个人网站找链接等) -
• 📊 需要网页导航和代码执行的任务(从在线数据生成图表等)
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)