MobiAgent:开源可定制移动智能体框架,实现多任务自动化与跨应用协同

原创 发布日期:
98

一、MobiAgent是什么?

MobiAgent是由IPADS-SAI团队(成员包括Cheng Zhang、Erhu Feng等研究者)开源的一套功能完整、高度可定制的移动智能体系统,其核心目标是解决移动端多任务自动化、跨应用协同执行等痛点,为开发者提供从模型选型、任务执行到效果评测的端到端解决方案。

该项目基于Apache License 2.0开源协议,支持商业与非商业场景的自由使用、修改与二次开发,代码仓库包含完整的模型部署脚本、设备控制工具、数据处理模块及评测基准,无需额外依赖封闭生态组件。MobiAgent的核心定位是“可定制化移动智能体基础设施”——它不仅提供预训练的代理模型(MobiMind系列),还支持开发者根据具体需求替换模型、扩展工具链或定制任务流程,打破了传统移动自动化工具“功能固定、适配性差”的局限。

从整体架构来看,MobiAgent由三大核心组件构成闭环:

  1. MobiMind:代理模型家族,包含不同参数量(0.6B、3B、4B、7B)的专项模型,分别负责任务规划、决策执行、界面元素映射等核心环节,支持视觉-语言交互与多轮状态评估;

  2. AgentRR:代理加速框架,通过“任务记录-重放”机制复用历史执行经验,大幅提升同类任务的二次执行效率,降低设备资源消耗;

  3. MobiFlow:专业评测基准,基于里程碑DAG(有向无环图)设计,涵盖“简单(EASY)”和“困难(HARD)”两个难度等级,适配小红书、高德地图、饿了么、携程等7类主流移动应用,可量化评估智能体的任务完成能力。

此外,项目还提供Android端应用(MobiAgent App)、ADB设备控制模块、数据收集标注工具等配套组件,形成“模型-执行-评测-迭代”的完整开发流程,适用于从个人用户日常自动化到企业级移动应用测试的全场景需求。

MobiAgent:开源可定制移动智能体框架,实现多任务自动化与跨应用协同

二、功能特色

MobiAgent的核心优势在于“全链路可定制、多场景适配、高效执行”,其功能特色可概括为以下8点,覆盖从技术底层到用户体验的全维度需求:

1. 多任务自动化,支持跨应用复杂流程

MobiAgent突破了传统移动自动化工具“单应用、单步骤”的限制,能够解析用户的复杂任务指令(如“在小红书找一款热门防晒霜,复制商品名称到淘宝搜索,对比3家店铺的价格并截图保存”),通过Planner模块进行多任务拆分、App映射与步骤规划,自动调用多个应用完成协同执行。

在MobiFlow基准测试中,该框架在“简单任务集(EASY)”中对7类主流应用的平均完成率达83%,在“困难任务集(HARD)”中平均完成率达71%,其中对小红书、高德地图、饿了么等高频应用的适配度接近100%,可稳定处理“界面元素识别、跨应用数据传递、多步骤状态回溯”等复杂场景。

2. 可定制化模型家族,适配不同资源场景

MobiMind模型家族提供多参数量选型,开发者可根据设备性能(手机、平板、服务器)和任务复杂度灵活搭配,无需强制依赖高性能硬件:

  • 轻量化模型(0.6B Decider模型):适用于移动端本地部署,负责简单的任务状态评估与动作决策,资源占用低(内存消耗<2GB);

  • 中端模型(3B Grounder模型、4B Planner模型):平衡性能与资源,3B模型专注于“抽象动作→UI元素”的精准映射(如将“点击下单按钮”转化为具体的屏幕坐标与控件ID),4B模型负责多任务规划与自然语言理解;

  • 高性能模型(7B Decider模型):适用于服务器端部署,支持复杂任务的深度推理与多轮反思,在“跨应用数据关联、模糊指令解析”等场景中表现更优。

此外,框架支持替换第三方模型(如Gemini-2.5-pro、GPT-5、Qwen3-4B-Instruct),只需通过配置文件修改模型接口地址,即可快速集成不同生态的预训练模型,降低技术选型成本。

3. AgentRR加速框架,提升任务复用效率

针对同类任务重复执行的场景,AgentRR模块通过“记录-重放”机制优化执行效率:首次执行任务时,框架会记录任务轨迹(包括界面截图、控件操作、状态变化等)并存储为“经验数据”;后续遇到同类任务时,可直接重放历史轨迹,或仅对差异部分进行微调,无需重新进行全流程推理。

在测试中,AgentRR对“社交、购物、地图”类高频任务的重放率达60.2%-85.2%,平均可减少70%的模型推理次数,任务执行时间缩短40%以上,同时降低设备功耗(尤其适用于移动端本地部署场景)。

4. 专业评测基准,量化评估执行效果

MobiFlow是专为移动智能体设计的评测基准,基于“里程碑DAG”思想构建——每个任务被拆解为多个关键里程碑(如“打开应用→搜索关键词→点击目标元素→完成操作”),框架会自动验证每个里程碑的完成状态,生成量化评分(准确率、完成率、执行时间)。

该基准覆盖7类主流应用场景(社交、地图、外卖、旅游、购物、视频、音乐),提供“EASY/HARD”两个难度等级,可帮助开发者快速定位模型的薄弱环节(如“复杂界面元素识别”“跨应用数据传递”),无需手动编写测试用例。

5. 设备兼容性强,支持主流Android设备

MobiAgent通过ADB(Android Debug Bridge)与无障碍服务实现设备控制,兼容Android 8.0及以上版本的手机、平板等设备,无需Root权限:

  • 连接方式灵活:支持USB有线连接、Wi-Fi无线连接两种模式,满足“本地调试”“远程控制”等不同场景;

  • 控件识别精准:集成OmniParser图标检测模型、PaddlePaddle OCR工具,可识别原生应用、混合开发应用(React Native、Flutter)的界面元素,支持中文、英文等多语言场景;

  • 操作无侵入性:通过无障碍服务模拟人工操作(点击、滑动、输入、截图),不会修改应用源码或干扰应用正常运行,符合应用商店的安全规范。

6. 轻量化与全功能双部署选项

项目提供两种部署方案,适配不同用户需求:

  • 轻量化部署:仅安装requirements_simple.txt中的依赖(无PyTorch、CUDA等重型库),可快速启动Agent Runner模块,适用于“仅需执行任务、无需模型训练”的场景,部署时间<5分钟;

  • 全功能部署:安装requirements.txt中的完整依赖,支持模型训练、数据标注、评测基准运行等全流程功能,适用于开发者和研究者构建自定义移动智能体。

7. 完善的数据处理工具链

collect/目录提供一套完整的数据处理工具,支持从设备采集任务数据、人工标注关键信息、格式转换与导出,帮助开发者构建自定义数据集:

  • 数据采集:支持多设备并行采集,自动记录任务执行轨迹、界面XML结构、截图等数据;

  • 标注工具:提供可视化标注界面,支持标注控件类型、任务里程碑、错误原因等信息;

  • 数据导出:支持导出JSON、CSV等格式,可直接用于模型微调(如优化Grounder模块的UI元素识别精度)。

8. 用户交互友好,降低使用门槛

MobiAgent提供两种使用方式,兼顾普通用户与技术开发者:

  • 移动端App:无需编程基础,下载安装后可通过自然语言输入任务指令,App自动调用设备权限完成执行,适用于个人用户的日常自动化需求(如自动打卡、订单查询);

  • Python脚本:支持开发者编写自定义任务配置文件(task.json),通过命令行参数控制模型端口、设备连接方式等,可集成到自动化测试、批量操作等场景中。

arch

三、技术细节

MobiAgent的技术架构围绕“任务流程自动化”设计,形成“用户指令→规划→决策→界面映射→执行→评估”的闭环,核心技术细节如下:

1. 系统整体架构

MobiAgent的架构分为5个核心层级,各层级分工明确、可独立替换,具体模块分工如下表所示:

层级 核心模块 功能描述 依赖组件/模型
输入层 User Task 接收用户任务指令(自然语言)、任务模板、历史执行记录 无(支持文本输入、文件导入)
规划层 Planner 多任务拆分、App映射、步骤规划、任务重写,处理模糊指令(如“找热门商品”) 4B模型(默认Qwen3-4B-Instruct)
决策层 Decider 执行“Reason-Action-Reflection”循环:分析当前状态→生成操作→评估执行结果 0.6B/7B模型(MobiMind-Decider)
界面映射层 GUI Grounder 将抽象动作(如“点击支付”)映射为具体UI元素(坐标、控件ID、XML路径) 3B模型(MobiMind-Grounder)
执行层 Low-level Tools 通过ADB、无障碍服务执行操作,包括点击、滑动、输入、截图、数据读取 ADB、ADBKeyboard、OmniParser
辅助模块 AgentRR 任务轨迹记录与重放,经验复用与加速 本地文件存储、数据库(可选)
评测模块 MobiFlow 任务完成率、准确率、执行时间量化评估 DAG验证引擎、评分算法

2. 核心技术流程

以“在饿了么订购牛肉饭”为例,MobiAgent的技术执行流程如下:

  1. 任务输入与解析:用户输入指令“Order a beef rice”,Planner模块(4B模型)解析指令为中文“在饿了么订购牛肉饭”,并映射目标应用为“饿了么”;

  2. 多步骤规划:Planner生成执行步骤:①打开饿了么App→②搜索“牛肉饭”→③筛选销量排序→④选择第一个商品→⑤点击“去结算”→⑥提交订单;

  3. 状态分析与动作生成:Decider模块(7B模型)接收当前界面截图、XML结构,分析当前处于“搜索结果页”,生成下一步动作“点击销量排序按钮”;

  4. UI元素映射:GUI Grounder(3B模型)将“点击销量排序按钮”映射为具体控件:屏幕坐标(x=500,y=300)、控件ID“sort_sales”,并通过OmniParser验证控件有效性;

  5. 执行与反馈:Low-level Tools通过ADB执行点击操作,截取新界面并返回给Decider;Decider评估执行结果(是否成功进入销量排序页),若成功则进入下一步,若失败则反思调整(如重新识别控件);

  6. 任务完成与记录:完成订单提交后,AgentRR记录整个任务轨迹,若用户后续再次订购同类商品,可直接重放轨迹加速执行。

3. 模型部署与优化

MobiAgent采用vLLM作为模型推理框架,支持高并发、低延迟的模型服务部署,核心优化点包括:

  • 模型并行推理:支持将不同模块(Planner、Decider、Grounder)的模型部署在不同端口,独立扩展资源,避免单一模型占用过多算力;

  • 动态批处理:vLLM的动态批处理机制可提升模型推理吞吐量,尤其适用于多任务并行执行场景;

  • 权重共享:相同参数量的模型可共享基础权重,降低存储开销(如MobiMind-Decider-7B与MobiMind-Grounder-3B可共用部分预训练权重);

  • GPU加速适配:支持CUDA 11.8及以上版本,通过PaddlePaddle-GPU优化OCR等视觉任务的执行速度,比CPU推理快5-10倍。

4. 数据处理流程

collect/模块的数据处理流程分为3个阶段:

  1. 采集阶段:通过ADB控制设备执行任务,自动采集界面截图(png格式)、控件XML结构、操作日志(点击坐标、输入内容)、任务状态(成功/失败);

  2. 标注阶段:开发者通过可视化工具标注“里程碑完成状态”(如“是否成功搜索到商品”)、“控件类型”(按钮、输入框、列表)、“错误原因”(控件未识别、网络超时);

  3. 导出阶段:将标注后的数据转换为模型训练所需格式(如JSONL),支持按应用类型、任务难度分类导出,可直接用于MobiMind模型的微调。

result1

四、应用场景

MobiAgent的灵活性与兼容性使其适用于多个场景,涵盖个人用户、开发者、企业等不同群体:

1. 个人日常任务自动化

适用于需要重复执行的日常操作,解放双手:

  • 生活服务类:自动订外卖、预订酒店/机票、查询天气/路况、缴纳水电费;

  • 内容消费类:自动下载喜欢的博主视频、整理社交媒体收藏、批量保存图片/文档;

  • 工具类:自动打卡(办公软件、学习平台)、定时发送消息、批量处理照片(如裁剪、加水印)。

例如,上班族可设置“每天11:30自动打开饿了么,搜索‘附近快餐’,选择销量第一的店铺下单”,无需手动操作即可完成订餐;学生可设置“每周一至周五19:00自动打开学习平台,完成签到并查看课程提醒”。

2. 移动应用测试自动化

为移动应用开发者提供高效的测试工具,降低测试成本:

  • 功能测试:自动执行应用的核心流程(如注册、登录、下单、支付),验证功能完整性;

  • 兼容性测试:在不同品牌、不同系统版本的Android设备上并行执行测试用例,检测界面适配问题;

  • 回归测试:应用迭代后,自动重放历史测试用例,快速验证旧功能是否正常工作;

  • 性能测试:记录任务执行时间、CPU/内存占用,评估应用的性能瓶颈(如搜索功能响应速度)。

例如,电商App开发者可通过MobiFlow基准快速验证新版本的“商品搜索→下单→支付”流程是否正常,支持7类主流应用的测试用例自动生成,无需手动编写复杂的测试脚本。

3. 移动开发辅助

帮助开发者提升开发效率,简化重复性工作:

  • 自动化脚本生成:根据任务需求自动生成ADB操作脚本,用于批量测试或演示;

  • 界面元素提取:自动提取应用的控件XML结构,生成界面文档,方便团队协作;

  • 多设备同步操作:通过Wi-Fi连接多个设备,同步执行任务(如批量安装应用、设置系统参数)。

例如,Flutter开发者可使用MobiAgent自动在10台不同分辨率的Android设备上测试应用界面,快速定位布局错乱问题;测试工程师可批量生成“不同场景下的下单测试脚本”,覆盖正常下单、异常支付、退款等多种情况。

4. 个性化服务开发

开发者可基于MobiAgent构建个性化移动服务,适配特定人群需求:

  • 老年人群体:简化操作流程,支持语音指令(如“给子女发微信消息”“查看体检报告”),自动完成复杂步骤;

  • 办公场景:跨应用数据整合(如“从Excel导入客户信息到CRM系统”“将会议记录同步到石墨文档”);

  • 教育场景:自动整理学习资料(如“从网课平台下载课件并分类保存”“记录错题并生成复习清单”)。

例如,开发者可基于MobiAgent开发“老年人智能助手App”,支持语音指令“打开微信→找到儿子→发送‘我已安全到家’”,自动完成所有操作,无需老人手动点击屏幕。

5. 移动智能体研究与学术实验

为研究者提供标准化的实验平台,推动移动智能体技术发展:

  • 模型对比测试:通过MobiFlow基准对比不同预训练模型(如GPT-5、Gemini-2.5-pro)在移动任务中的表现;

  • 算法优化验证:快速验证新的任务规划算法、UI元素识别方法,无需从零构建实验环境;

  • 数据集构建:使用collect/模块采集自定义数据集,用于训练专属的移动智能体模型。

例如,高校研究者可基于MobiAgent对比不同参数量模型(3B vs 7B)在“跨应用数据传递”任务中的准确率与执行效率,为模型选型提供实证支持;企业研究团队可构建行业专属数据集(如医疗App、金融App),训练适配特定领域的移动智能体。

result2

五、使用方法

MobiAgent提供两种核心使用方式,分别适用于普通用户和技术开发者,以下是详细步骤:

1. 方式一:直接使用MobiAgent App(适合普通用户)

无需编程基础,通过移动端App即可快速体验任务自动化:

  1. 下载App:访问项目GitHub Releases页面(或仓库中提供的Download Link),下载MobiAgent Android应用安装包(APK格式);

  2. 安装与授权:在Android设备上安装APK,打开App后授予“无障碍服务”“存储权限”“悬浮窗权限”(核心权限用于控制应用操作与保存数据);

  3. 输入任务指令:在App首页的输入框中输入自然语言指令(如“打开高德地图,查询从家到公司的路线”);

  4. 执行与查看结果:点击“开始执行”,App自动启动目标应用并完成任务,执行过程中可通过悬浮窗查看进度,完成后生成结果报告(如路线截图、执行日志)。

2. 方式二:使用Python脚本控制(适合开发者/研究者)

通过ADB连接设备,使用Python脚本执行自定义任务,支持更灵活的配置与扩展:

(1)环境搭建

① 虚拟环境创建

使用conda创建独立虚拟环境(推荐Python 3.10):

conda create -n MobiMind python=3.10
conda activate MobiMind
② 依赖安装

根据需求选择轻量化或全功能依赖:

  • 轻量化依赖(仅运行Agent Runner,无重型库):

    pip install -r requirements_simple.txt
  • 全功能依赖(支持模型训练、评测基准等):

    pip install -r requirements.txt
③ 模型权重下载

下载OmniParser图标检测模型权重(用于UI元素识别):

for f in icon_detect/{train_args.yaml,model.pt,model.yaml} ; do
 huggingface-cli download microsoft/OmniParser-v2.0 "$f" --local-dir weights
done
④ GPU加速配置(可选)

若需要OCR任务的GPU加速,根据CUDA版本安装PaddlePaddle-GPU(以CUDA 11.8为例):

python -m pip install paddlepaddle-gpu==3.1.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/

详细安装指南参考:PaddlePaddle官方文档

(2)移动设备设置

  1. 安装ADBKeyboard:在Android设备上安装ADBKeyboard输入法(用于自动输入文本);

  2. 启用开发者选项:进入设备“设置→关于手机”,连续点击“版本号”7次,开启开发者选项;

  3. 允许USB调试:进入“设置→系统和更新→开发者选项”,开启“USB调试”和“USB安装”;

  4. 设备连接:使用USB数据线连接手机与电脑,在手机上授权“允许USB调试”(首次连接需确认)。

(3)模型部署

通过vLLM部署Planner、Decider、Grounder三个核心模型(需提前下载模型权重):

# 部署Decider模型(默认端口8000)
vllm serve IPADS-SAI/MobiMind-Decider-7B --port 8000

# 部署Grounder模型(默认端口8001)
vllm serve IPADS-SAI/MobiMind-Grounder-3B --port 8001

# 部署Planner模型(默认端口8002)
vllm serve Qwen/Qwen3-4B-Instruct --port 8002

注:模型权重需从Hugging Face下载,确保网络通畅;若本地资源有限,可只部署核心模型(如仅部署Planner和Grounder)。

(4)任务配置与启动

  1. 编写任务文件:在runner/mobiagent/task.json中定义需要测试的任务,示例格式:

    [
     {
      "task_id": "1",
      "task_desc": "打开饿了么,搜索牛肉饭,选择销量第一的商品并截图"
     },
     {
      "task_id": "2",
      "task_desc": "打开小红书,搜索热门防晒霜,复制商品名称"
     }
    ]
  2. 启动Agent Runner:

    python -m runner.mobiagent.mobiagent \
     --service_ip localhost \
     --decider_port 8000 \
     --grounder_port 8001 \
     --planner_port 8002

(5)核心参数说明

参数名 功能描述 默认值 可选值范围
--service_ip 模型服务IP地址 localhost 局域网IP/公网IP
--decider_port Decider模型服务端口 8000 1024-65535
--grounder_port Grounder模型服务端口 8001 1024-65535
--planner_port Planner模型服务端口 8002 1024-65535

3. 子模块单独使用

若只需使用某一特定子模块(如MobiFlow评测、AgentRR加速),可参考各子模块目录下的README.md

  • MobiFlow评测:进入MobiFlow/目录,运行python run_benchmark.py,支持自定义测试应用与任务难度;

  • AgentRR加速:进入agent_rr/目录,运行python record.py记录任务轨迹,运行python replay.py重放轨迹;

  • 数据收集:进入collect/目录,运行python collect_data.py启动数据采集,支持配置采集设备数量与任务类型。

result3

六、常见问题解答(FAQ)

1. ADB连接失败怎么办?

  • 检查设备是否开启USB调试:进入开发者选项确认“USB调试”已开启,若未找到开发者选项,需先通过“关于手机”开启;

  • 检查数据线是否正常:更换原装数据线,确保连接稳定(部分非原装线仅支持充电,不支持数据传输);

  • 安装ADB驱动:Windows系统需安装手机品牌对应的ADB驱动(如华为、小米官网提供的驱动工具);

  • 验证ADB连接:在命令行输入adb devices,若显示设备序列号则连接成功,否则重启设备重试。

2. 模型部署时提示“端口被占用”?

  • 查看端口占用情况:Windows系统运行netstat -ano | findstr 8000,Linux/Mac系统运行lsof -i:8000,找到占用端口的进程并关闭;

  • 修改端口参数:在启动模型服务时指定未被占用的端口,如vllm serve IPADS-SAI/MobiMind-Decider-7B --port 8003,同时在启动Agent Runner时同步修改对应端口参数。

3. 任务执行时提示“UI元素未识别”?

  • 检查应用是否为最新版本:部分应用更新后界面结构会变化,导致模型无法识别控件,可暂时回退到测试通过的应用版本;

  • 重新下载OmniParser模型权重:确保weights/目录下的模型文件完整,若缺失可重新执行权重下载命令;

  • 开启OCR增强:在utils/config.py中设置OCR_ENHANCE=True,提升文本类控件的识别精度。

4. 依赖安装时出现“版本冲突”?

  • 使用指定Python版本:确保Python版本为3.10(项目推荐版本),避免使用3.11及以上版本(部分依赖暂不兼容);

  • 手动指定依赖版本:若requirements.txt中的依赖版本冲突,可根据错误提示修改版本号(如将torch==2.1.0改为torch==2.2.0);

  • 清理缓存:运行pip cache purge清理pip缓存,再重新安装依赖。

5. GPU加速不生效怎么办?

  • 检查CUDA版本:确保CUDA版本与PaddlePaddle-GPU版本匹配(如CUDA 11.8对应PaddlePaddle-GPU 3.1.0);

  • 验证GPU可用性:运行python -c "import paddle; print(paddle.device.get_device())",若输出“gpu:0”则GPU加速生效;

  • 关闭CPU优先:在utils/config.py中设置GPU_ENABLE=True,强制使用GPU执行OCR等任务。

6. 任务执行超时或中途停止?

  • 延长超时时间:在runner/mobiagent/config.py中修改TASK_TIMEOUT参数(默认300秒),复杂任务可设置为600秒;

  • 检查网络状态:跨应用数据传递(如淘宝搜索)需要网络连接,确保设备网络稳定;

  • 减少并行任务数:若同时执行多个任务,可减少task.json中的任务数量,避免设备资源不足。

七、相关链接

八、总结

MobiAgent作为IPADS-SAI开源的可定制移动智能体框架,通过“MobiMind模型家族+AgentRR加速框架+MobiFlow评测基准”的核心组合,构建了从任务解析、模型推理到设备执行、效果评估的完整工具链,其多任务自动化、跨应用协同、轻量化部署等特色,既满足普通用户的日常自动化需求,也为开发者和研究者提供了灵活的二次开发与实验平台。该框架兼容主流Android设备,支持模型替换与功能扩展,在个人服务、应用测试、开发辅助、学术研究等多个场景中具备实用价值,且基于Apache License 2.0协议开源,降低了技术使用与推广的门槛。无论是需要解放双手的普通用户,还是追求高效开发的企业团队,或是专注于移动智能体技术的研究者,都能从MobiAgent中获得适配自身需求的解决方案,其完整的生态支持与清晰的技术文档,也为项目的后续迭代与社区共建奠定了良好基础。

打赏
THE END
作者头像
dotaai
正在和我的聊天机器人谈恋爱,它很会捧场。