Mobile-Agent 家族总览:这是什么 / 演进全景 / 阅读地图
30 秒导读: Mobile-Agent 是阿里通义(Tongyi Lab)的一支 GUI Agent 家族——让一个多模态大模型(VLM)像人一样看屏幕、点按、输入、滑动,把"帮我订最便宜的机票""在 WPS 里建个表格填股价"这类自然语言指令在真实的手机 / 电脑 / 浏览器上端到端执行完。它不是一个模型,而是从 2024 到 2026 的八代工作,一条清晰的进化主线贯穿始终。
1. 这是什么(零基础也能懂)
一句话定义: 给多模态大模型装上"眼睛和手",让它自己操作图形界面(GUI)完成你用大白话交代的任务。
给谁用、解决什么问题。 想象你对着手机说一句"今天周日,查五天后广州飞成都最便宜的航班,再查同段最便宜的火车票,告诉我两个价格"。你不想自己开 App、翻页、比价。Mobile-Agent 要做的就是:接过这句话,自己截屏看当前界面 → 想下一步该点哪 → 真的点下去 → 看结果对不对 → 继续,循环到任务完成。这类系统学名叫 computer-use / GUI agent(图形界面智能体)。
它能做什么。
- 操作安卓手机(经 ADB 控制真机/云机),这是家族的起点。
- 操作桌面 PC(Windows / macOS,PC-Agent 起)。
- 操作浏览器 / 网页(v3.5 起)。
- 完成跨 App、多步骤、长流程的任务(搜索→比价→填表→复制粘贴)。
用起来什么样。 家族里最新一代(v3.5)的手机入口就是一条命令,把指令喂进去,Agent 自己截屏、决策、执行:
# 见 Mobile-Agent-v3.5/mobile_use/run_gui_owl_1_5_for_mobile.py
python run_gui_owl_1_5_for_mobile.py \
--instruction "查五天后广州飞成都最便宜的航班" \
--adb_path /path/to/adb ...
一句话直觉。 把它想成一个装在模型里的实习生:你给它一部手机和一句话,它自己摸索着把事办了。这个家族八代做的所有事,归根结底就是让这个"实习生"越来越聪明、越来越不需要外部拐杖。
本节到此不涉及任何底层代码。下面进入全景。
2. 顶层全景(整个家族大概怎么转)
先看一个通用的操作回合。 无论哪一代,一次"操作一步"的骨架都长这样——这是理解全家族的基准循环:
自然语言指令
│
▼
┌──────────────┐ 截屏
│ ① 感知 │◀──────── 手机/PC/浏览器屏幕
│ 看清屏上有啥 │
└──────┬───────┘
│ 界面上的可点元素 + 文字
▼
┌──────────────┐
│ ② 决策 │ 这一步该做什么动作?点哪个坐标?
│ 规划下一步 │
└──────┬───────┘
│ action(tap x,y / type / swipe / …)
▼
┌──────────────┐
│ ③ 执行 │ 经 ADB / 系统 API 真的点下去
└──────┬───────┘
│ 新屏幕
▼
┌──────────────┐
│ ④ 反思 │ 刚那步成功了吗?界面变成预期的样子了吗?
└──────┬───────┘
│ 成/败 + 经验
▼
┌──────────────┐
│ ⑤ 记忆 │ 记下关键信息/进度,供后续步骤用
└──────┬───────┘
└────────▶ 回到 ①,直到任务完成
记住这五件事:感知 → 决策 → 反思 → 记忆(定位藏在感知里)。 整个家族的进化史,本质就是这五件事分别怎么实现、由谁来做的历史。这是贯穿全书的暗线,§4 会专门讲。
家族成员一句话职责。 仓库根目录下每个文件夹是一代(或一个专项)工作:
| 子项目 | 定位(一句话) | 目录 | 论文 |
|---|---|---|---|
| Mobile-Agent-v1 | 外挂感知 + 通用 VLM 的单智能体手机操作 | Mobile-Agent-v1/ | ICLR 2024 Workshop · 2401.16158 |
| Mobile-Agent-v2 | 多智能体协作(决策/反思/记忆分工)的手机操作 | Mobile-Agent-v2/ | NeurIPS 2024 · 2406.01014 |
| Mobile-Agent-E | 自进化长期记忆(Tips + Shortcuts)的复杂任务手机助手 | Mobile-Agent-E/ | Preprint · 2501.11733 |
| PC-Agent | 分层多智能体(先拆子任务再执行)的 PC 操作 | PC-Agent/ | ICLR 2025 Workshop · 2502.14282 |
| GUI-Critic-R1 | 操作前纠错的批判器(先想清楚再动手) | GUI-Critic-R1/ | NeurIPS 2025 · 2506.04614 |
| UI-S1 | 半在线强化学习训练 GUI 模型 | UI-S1/ | ACL 2026 · 2509.11543 |
| Mobile-Agent-v3 | 基于 GUI-Owl 基座的跨平台多智能体框架 | Mobile-Agent-v3/ | Preprint · 2508.15144 |
| Mobile-Agent-v3.5 | GUI-Owl-1.5 原生多平台(手机/PC/浏览器)基座 Agent | Mobile-Agent-v3.5/ | Preprint · 2602.16855 |
上表顺序按时间/演进排(v1→v3.5),不是仓库里字母序。清单原文见
README.md:80-89的 "Series of Work"。
3. 演进主线图(一张图看懂八代怎么走过来)
怎么读这张图: 从左到右是时间;上面一行是"主干世系"(v1→v2→v3→v3.5),下面挂着的是支线专项(自进化记忆、分层 PC、训练法、批判器),它们的成果最终被吸收回主干。
2024 2025 2026
────────────────────────────────────────────────────────────────────▶
[v1] [v2] [v3] [v3.5]
单智能体 ───▶ 多智能体协作 ──────────────▶ GUI-Owl 基座 ──▶ GUI-Owl-1.5
外挂感知 决策/反思/记忆分工 多智能体+原生模型 原生多平台
通用VLM (仍调用 GPT-4o) (自研 VLM 当大脑) 手机/PC/浏览器
│ ▲ ▲
│ 经验沉淀 │ │ 能力内化
▼ │ │
[Mobile-Agent-E] 自进化长期记忆 ──────┘ │
[PC-Agent] 分层拆子任务·跨到PC ─────┘
│
训练与纠错(喂给基座) ─────┤
[UI-S1] 半在线强化学习 ─────────┤
[GUI-Critic-R1] 操作前批判纠错 ────────┘
三句话概括这条线:
- v1→v2:从单打到分工。 一个模型什么都干,拆成"决策、反思、记忆"几个角色各司其职,长流程更稳。
- E / PC:两条支线补短板。 Mobile-Agent-E 给记忆加上"越用越会"的自进化;PC-Agent 把战场从手机扩到电脑并引入先拆子任务的分层编排。
- v3→v3.5:把外挂内化成基座。 前面所有"外挂能力"被训练进一个原生 GUI 基座模型 GUI-Owl,v3.5 直接一个模型跨手机/PC/浏览器,外部框架大幅变薄。UI-S1、GUI-Critic-R1 是喂养这个基座的训练与纠错方法。
4. 贯穿全家族的暗线:五件事,从外挂到内化
这是读懂整个家族的关键视角。 §2 提到的感知 / 定位 / 决策 / 反思 / 记忆,在早期是一堆外部脚本和多次 API 调用拼出来的;越往后,越多地被训练进模型本身,变成模型"天生就会"。下表是这条暗线的全景——每一格是"这代里,这件事由谁来做":
| 能力 | v1 | v2 | Mobile-Agent-E / PC-Agent | v3 | v3.5 |
|---|---|---|---|---|---|
| 感知(看清屏上有啥) | 外挂 OCR + 图标检测 + CLIP | 外挂 OCR/检测 | 外挂 OCR/检测 | 基座模型直接读屏 | 基座原生读屏 |
| 定位(把"点X"落到坐标) | 外部检测框给候选 | 外部检测 + VLM 选 | 外部检测 + VLM 选 | 模型直接吐坐标 | 模型输出归一化坐标 |
| 决策(下一步做什么) | 单个通用 VLM | 独立"决策 Agent" | 决策 + 子任务分层 | GUI-Owl 当大脑 | 单模型端到端 |
| 反思(这步对不对) | 几乎没有 | 独立"反思 Agent" | 反思 Agent(可关) | 内化为 Reflector 角色 | 内化进模型 |
| 记忆(记住进度/经验) | 简单历史 | "记忆-规划"单元 | 自进化 Tips+Shortcuts | Notetaker 笔记 | 长时记忆内化 |
怎么看这张表:从左往右,格子里的"外挂"逐渐变成"基座原生"。 这就是家族最深的一条设计哲学——能力内化(capability internalization):与其在模型外面用胶水代码补能力,不如把能力训练进模型,让框架越来越薄、越来越可靠。
下面用真源码给这条暗线钉三个锚点,建立可信度(细节留给各章):
锚点一 · v1 的"外挂感知"。 v1 的主循环开头一次性加载 GroundingDINO(图标检测)、OCR、CLIP 三个外部模型来"看屏幕",VLM 只负责决策:
# Mobile-Agent-v1/run.py:1-16 —— 感知能力全靠外部库拼
from MobileAgent.icon_localization import det # 图标检测
from MobileAgent.text_localization import ocr # 文字识别
# run() 里: clip_model, clip_preprocess = clip.load("ViT-B/32", ...)
这说明 v1 时代,"看清屏幕"这件事完全在模型之外。详见 01-v1-single-agent.md。
锚点二 · v2 的"角色分工"。 v2 把决策、反思、记忆拆成独立的 prompt + 独立的 GPT-4o 调用,而且反思/记忆可以开关:
# Mobile-Agent-v2/MobileAgent/prompt.py —— 四个角色各有各的 prompt 构造器
# :1 get_action_prompt 决策
# :77 get_reflect_prompt 反思
# :132 get_memory_prompt 记忆
# :151 get_process_prompt 规划/进度
# run.py:49 reflection_switch = True ← 反思是可插拔的独立环节
# run.py:52 memory_switch = True
这说明 v2 时代,五件事被显式拆成多个智能体,但大脑仍是外部的 GPT-4o。详见 02-v2-multi-agent.md。
锚点三 · v3 的"内化起点"。 v3 复用了 Mobile-Agent-E 的多智能体角色(Manager/Notetaker/ActionReflector),但把大脑换成了自研的 GUI-Owl 基座模型——外挂感知/定位不再需要:
# Mobile-Agent-v3/mobile_v3/run_mobileagentv3.py:47-51
vllm = GUIOwlWrapper(api_key, base_url, model) # ← 大脑=GUI-Owl 基座
manager = Manager() # 角色仍在,但都由同一个基座驱动
notetaker = Notetaker()
action_reflector = ActionReflector()
GUIOwlWrapper 定义在 Mobile-Agent-v3/mobile_v3/utils/call_mobile_agent_e.py:62。到了 v3.5,连多智能体框架都收薄成一个近乎单循环的入口(Mobile-Agent-v3.5/mobile_use/run_gui_owl_1_5_for_mobile.py),动作直接从模型输出的 <tool_call> 解析。详见 04-gui-owl-foundation-models.md。
5. 阅读地图(建议怎么读这一组文档)
按演进主线由浅入深读,五章覆盖八代工作。 每章聚焦一段、不重复彼此:
| 顺序 | 章节 | 讲什么 | 建议读者 |
|---|---|---|---|
| 1 | 01-v1-single-agent.md | v1:外挂感知(OCR/检测/CLIP)+ 通用 VLM 的单智能体 ReAct 流水线 | 想从最简形态入门 |
| 2 | 02-v2-multi-agent.md | v2:感知 / 决策 / 反思 / 记忆-规划的多智能体协作 | 想懂"为什么要拆角色" |
| 3 | 03-mobile-agent-e-and-pc.md | Mobile-Agent-E 的自进化长期记忆 + PC-Agent 的分层编排(扩到 PC) | 关心长任务与跨平台 |
| 4 | 04-gui-owl-foundation-models.md | GUI-Owl 与 v3/v3.5:把感知·定位·规划·反思内化进原生基座 | 关心"框架变薄"这条主线的终点 |
| 5 | 05-training-and-critic.md | UI-S1 半在线强化学习 + GUI-Critic-R1 操作前纠错(怎么把基座练出来) | 关心训练方法与安全纠错 |
两条快捷读法: