v1:外挂感知 + 通用 VLM 的单智能体 ReAct 流水线
30 秒导读: Mobile-Agent-v1 是 2024 年初的手机 GUI 智能体原型。它用一个通用视觉大模型(GPT-4V)看手机截图、按 ReAct 风格边想边做,但故意不让模型自己报坐标——模型只说"我要点那个叫『设置』的文字 / 那个红色圆形图标",真正的"这个东西在屏幕哪个像素"交给外部的 OCR、GroundingDINO、CLIP 三件套去算,最后由 ADB 把点击落到真机。
本章只讲 v1(单智能体原型)。它的后继——感知/决策/反思多智能体的 v2、自进化记忆的 Mobile-Agent-E、原生基座的 GUI-Owl——见 index 的阅读地图。
1. 这是什么(零基础也能懂)
-
一句话定义: 一个"看手机截图 → 想下一步 → 通过 ADB 点/划/打字 → 再看新截图"的自动化循环,由一个通用视觉语言模型(VLM,能同时 读图和文字的大模型)驱动。
-
解决什么问题 / 给谁用: 假设你想让 AI 帮你在手机上"打开高德地图,搜索最近的加油站"。传统自动化要读 Android 的界面 XML(控件树),但很多 App 的 XML 缺失、混淆或干脆不给。v1 走纯视觉路线:只要能截图就能操作,不依赖任何系统元数据,天然跨 App。
-
它能做什么(功能):
- 纯视觉,不读 XML / accessibility 树(README:"Pure visual solution, independent of XML")。
- 8 个原子动作:开 App、点文字、点图标、翻页、打字、返回、退出、停止。
- 即插即用,不需要训练或探索(README:"No need for exploration and training")。
-
用起来什么样: 一条命令行,喂进一句自然语言指令、adb 路径、OpenAI key:
python run.py \--instruction "Open Settings and turn on Bluetooth" \--adb_path /path/to/adb \--api sk-xxxx程序进入死循环:每轮截一张屏、让 GPT-4V 输出一段
Observation/Thought/Action,解析出动作后落到真机,直到模型输出stop(Mobile-Agent-v1/run.py:82-83)。 -
一句话直觉/类比: 把 v1 想成一个近视但很会思考的操作员。他脑子(VLM)很清楚"下一步该点『登录』按钮",但眼神不好、报不准坐标;于是他身边配了三位测量员——一位专找文字(OCR)、一位专找图标(GroundingDINO)、一位专认图标长相(CLIP)——操作员只管说"点那个",测量员负责告诉他"在第几厘米处",最后由机械臂(ADB)去按。
本节不出现底层细节。记住一句话就行:v1 把"决定点什么"和"算出点在哪"彻底拆开了。
2. 顶层全景(它大概怎么转)
v1 的整个生命周期就是 run() 里一个大死循环。先看它怎么转,再逐块拆。