
🔍 背景
随着人工智能从感知智能迈向决策与行动智能,AI代理(AI Agent)成为连接数字世界与物理操作的关键桥梁。在移动端,让AI真正"会用手机",已成为人机交互的新前沿。传统自动化工具如Appium依赖控件树(Accessibility API),对动态界面兼容性差;而Mobile-Agent系列项目通过纯视觉方案突破这一限制,开启了以"看"代"读" 的新范式。
该项目由阿里巴巴通义实验室联合北京交通大学等机构推出,已在NeurIPS 2024发表,并获CCL 2024/2025连续两年Best Demo奖 4。其核心思想是:让AI像人一样通过观察屏幕来理解状态、规划动作、执行任务。
目前,Mobile-Agent已迭代至v3版本,开源地址为:
https://github.com/X-PLUG/MobileAgent
相关论文包括:
- Mobile-Agent: https://arxiv.org/abs/2401.16158 10
- Mobile-Agent-v2: https://arxiv.org/abs/2406.01014
- Mobile-Agent-E: https://arxiv.org/html/2501.11733v1 9
- Mobile-Agent-v3: https://arxiv.org/abs/2508.15144 12
🧩 技术演进路线:从单体到多智能体再到自进化
| 版本 | 发布时间 | 核心创新 | 关键能力 |
|---|---|---|---|
| v1 | 2024年初 | 纯视觉操作框架 | 基于GPT-4V实现端到端任务执行 6 |
| v2 | 2024年中 | 多Agent协作架构 | 引入规划、决策、反思三Agent协同机制 7 |
| E | 2024年末 | 自进化学习机制 | 支持经验积累与策略优化,提升长期成功率 9 |
| v3 | 2025年8月 | GUI基础模型GUI-Owl | 构建统一GUI语义空间,支持跨平台自动化 16 |
(补充说明)每一代升级都解决了前一阶段的核心瓶颈:v1解决了"能否做"的问题;v2解决"做得稳"的问题;E版解决"越做越好"的问题;v3则迈向"通用智能体"的愿景。
🏗️ 架构解析:Mobile-Agent-v2 多智能体系统
以下是v2版本的经典架构图(可自行绘制或引用原文配图):
[用户指令] ↓ [ Planner Agent ] → 生成任务进度 & 记忆焦点内容 ↓ [ Decision Agent ] ←→ [ 视觉感知模块 ] ↓ (执行操作) [ Reflection Agent ] → 判断操作是否成功 ↖_________↙ 反馈循环
✅ 各组件功能详解
### 🎯 规划Agent(Planner)
负责高层次任务分解。例如输入"帮我查明天上海天气,并发给张三",它会拆解为:
- 打开天气App
- 搜索"上海"
- 查看明日预报
- 截图保存信息
- 打开微信
- 找到联系人"张三"
- 发送消息+截图
该过程形成结构化任务流,避免决策Agent陷入长上下文混乱 7。
### ⚙️ 决策Agent(Decision)
接收当前屏幕图像 + 规划进度,输出具体操作指令。操作空间定义如下:
class ActionSpace: CLICK = "click(x, y)" SWIPE = "swipe(x1, y1, x2, y2)" TYPE = "type(text)" HOME = "home()" BACK = "back()" STOP = "stop()"
实际调用示例(来自controller.py )1:
def tap(adb_path, x, y): """通过ADB执行点击操作""" cmd = f"{adb_path} shell input tap {x} {y}" os.system(cmd) def swipe(adb_path, x1, y1, x2, y2): """滑动操作""" cmd = f"{adb_path} shell input swipe {x1} {y1} {x2} {y2}" os.system(cmd)
### 🔍 反思Agent(Reflection)
这是系统鲁棒性的关键。它通过对比操作前后截图判断结果:
- 正确操作:页面变化符合预期(如进入新页面)
- 无效操作:无任何变化(点错位置)
- 错误操作:跳转到错误页面(误触广告)
若检测异常,则触发重试或上报Manager重新规划 7。
### 👁️ 视觉感知模块
集成OCR、图标检测、CLIP描述三大工具:
- OCR识别文本坐标(用于精准点击)
- GroundingDINO检测图标位置 2
- CLIP生成语义描述辅助推理
示例代码(简化版):
from transformers import pipeline ocr = pipeline("text-detection", model="iic/cv_resnet18_ocr-detection-db-line-level_damo") icon_detector = pipeline("object-detection", model="AI-ModelScope/GroundingDINO") def extract_elements(screenshot_path): texts = ocr(screenshot_path) icons = icon_detector(screenshot_path, candidate_labels=["button", "icon"]) return {"texts": texts, "icons": icons}
💡 Mobile-Agent-E:自进化能力揭秘
在真实场景中,重复执行相同任务应越来越快。Mobile-Agent-E引入"经验记忆库",记录高频路径并生成快捷方式(Shortcut)。例如:
第一次打车流程:打开高德地图 → 点击"打车" → 输入目的地 → 选择车型 → 确认下单
经过几次训练后,系统自动创建快捷指令:"一键打车回家"
其实现依赖一个Notetaker Agent ,专门收集有效操作序列,并经验证后存入知识库 9。
此外,系统还支持"Tips"机制------当某次任务失败时,人工可添加提示(如"注意弹窗广告拦截"),这些Tips会被编码进后续推理过程,显著降低同类错误率。
🚀 Mobile-Agent-v3:迈向通用GUI智能体
最新发布的v3版本最大亮点是提出了GUI-Owl模型------一个专为图形界面设计的基础模型。它的目标是建立统一的GUI语义理解空间,无论Android、iOS还是Windows桌面,都能用同一套逻辑进行操作。
其核心技术优势包括:
- 跨平台适配:同一模型处理不同OS的UI元素
- 零样本迁移:未见过的应用也能尝试操作
- 语义对齐:将"搜索框"、"返回键"等抽象为通用概念
在AndroidWorld基准测试中,v3达到73.3%任务成功率,远超此前SOTA 16。
🛠️ 快速上手指南(含完整代码)
以下是一个基于Mobile-Agent-E的实战教程,教你如何运行第一个自动化任务。
1. 环境准备
# 克隆项目 git clone https://github.com/X-PLUG/MobileAgent.git cd mobileagent/Mobile-Agent-E # 创建虚拟环境 conda create -n mobile_agent_e python=3.10 -y conda activate mobile_agent_e # 安装依赖 pip install -r requirements.txt
2. ADB配置
确保手机开启USB调试模式,并连接电脑:
# 启动ADB服务 adb start-server # 查看设备 adb devices # 输出应类似: # List of devices attached # 1234567890ABCDEF device # 授权输入权限(安装ADBKeyboard) adb install ADBKeyboard.apk
3. 配置AI模型
设置OpenAI API密钥:
export BACKBONE_TYPE=OpenAI export OPENAI_API_KEY=your-api-key-here
或使用Qwen-VL:
export BACKBONE_TYPE=QwenVL export QWEN_API_KEY=your-qwen-key
4. 编写任务脚本
创建 tasks/weather_task.json :
以上内容均由AI搜集总结并生成,仅供参考