MobileAgent 是一个基于多模态大语言模型(MLLM)的自主移动端智能体框架,通过视觉感知与工具调用实现手机应用的自动化操作与任务执行,支持 Android 真机与模拟器环境。
项目简介#
MobileAgent 旨在解决移动端(主要是 Android 系统)复杂任务的自动化执行问题。传统的自动化脚本(如基于控件树或简单的宏录制)缺乏灵活性,难以应对界面变化和跨应用场景。MobileAgent 通过引入多模态大模型(VLM/MLLM)作为"大脑",结合视觉定位与 ADB 控制工具,构建了一个能够"看懂"屏幕、自主规划步骤、并精确点击滑动的智能体。
核心价值#
- 视觉原生(Visual-First):直接处理屏幕截图,不依赖应用源码或无障碍服务树,具备跨应用泛化能力
- 自主规划与反思:Agent 能够将用户的高级指令拆解为多步操作,并根据执行反馈进行自我修正
- 轻量化部署:主体逻辑基于 Python,不依赖重型中间件,通过 ADB 与手机通讯
核心能力矩阵#
感知能力#
- 屏幕视觉理解:利用 VLM(如 GPT-4V, Qwen-VL)识别屏幕内容、图标、文本、弹窗
- UI 元素定位:结合视觉模型输出 bounding box 或中心坐标,实现像素级点击
决策能力#
- 多步任务规划:Chain-of-Thought 推理,将复杂任务拆解为 Action Sequence
- 自我反思:执行动作后检查屏幕变化,判断是否成功,若失败则尝试修正或重规划
执行能力#
- 标准化操作封装:封装 ADB 指令集(Tap 点击、Swipe 滑动、Type 输入、Back、Home 等)
- 跨应用操作:支持在一个任务流中跨多个 APP(如:打开浏览器查信息 -> 打开备忘录保存)
扩展性#
- 工具调用:支持 Function Calling 机制,可扩展自定义工具(如调用 API、数据库操作)
- 多模型支持:架构解耦,支持接入 OpenAI GPT-4V、Anthropic Claude、通义千问 Qwen-VL 等主流 VLM
架构设计#
MobileAgent 采用 Agent Loop 架构:
- 环境交互层:通过 ADB 与连接的设备通信,获取屏幕截图,执行操作指令
- 核心大脑层:Vision Encoder 处理截图,LLM Planner 接收指令并规划动作
- 工具库:定义 click、long_press、scroll、input_text 等基础原语
关键流程:User Request -> [Screenshot -> VLM Analysis -> Plan Action -> ADB Execute] -> Loop until Done
安装部署#
环境要求#
- Python 3.8+
- Android SDK(确保 adb 命令可用)
- 已连接的 Android 设备(开启 USB 调试)或模拟器
- 有效的 VLM API Key(如 OpenAI API Key 或阿里云 DashScope Key)
安装步骤#
git clone https://github.com/X-PLUG/MobileAgent.git
cd MobileAgent
pip install -r requirements.txt
配置说明#
- 在
config.py或.env文件中配置 API Key - 设置连接设备的 ADB 序列号
- 可切换模型后端(GPT-4V / Qwen-VL / 其他 VLM)
使用示例#
CLI 方式#
python run.py --task "打开微信发送消息给文件传输助手:Hello MobileAgent"
SDK 方式#
agent = MobileAgent(model="qwen-vl-plus")
agent.setup_device("emulator-5554")
agent.run("在设置中开启深色模式")
适用场景#
- 端到端自动化测试(E2E Testing)
- 移动端 RPA(重复性任务自动化,如签到、填表)
- 个人智能助理(语音/文本指令操控手机)
- 应用功能探索与巡检