跳到主要内容

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.5GUI-Owl-1.5 原生多平台(手机/PC/浏览器)基座 AgentMobile-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] 操作前批判纠错 ────────┘

三句话概括这条线:

  1. v1→v2:从单打到分工。 一个模型什么都干,拆成"决策、反思、记忆"几个角色各司其职,长流程更稳。
  2. E / PC:两条支线补短板。 Mobile-Agent-E 给记忆加上"越用越会"的自进化;PC-Agent 把战场从手机扩到电脑并引入先拆子任务的分层编排。
  3. v3→v3.5:把外挂内化成基座。 前面所有"外挂能力"被训练进一个原生 GUI 基座模型 GUI-Owl,v3.5 直接一个模型跨手机/PC/浏览器,外部框架大幅变薄。UI-S1、GUI-Critic-R1 是喂养这个基座的训练与纠错方法。

4. 贯穿全家族的暗线:五件事,从外挂到内化

这是读懂整个家族的关键视角。 §2 提到的感知 / 定位 / 决策 / 反思 / 记忆,在早期是一堆外部脚本和多次 API 调用拼出来的;越往后,越多地被训练进模型本身,变成模型"天生就会"。下表是这条暗线的全景——每一格是"这代里,这件事由谁来做":

能力v1v2Mobile-Agent-E / PC-Agentv3v3.5
感知(看清屏上有啥)外挂 OCR + 图标检测 + CLIP外挂 OCR/检测外挂 OCR/检测基座模型直接读屏基座原生读屏
定位(把"点X"落到坐标)外部检测框给候选外部检测 + VLM 选外部检测 + VLM 选模型直接吐坐标模型输出归一化坐标
决策(下一步做什么)单个通用 VLM独立"决策 Agent"决策 + 子任务分层GUI-Owl 当大脑单模型端到端
反思(这步对不对)几乎没有独立"反思 Agent"反思 Agent(可关)内化为 Reflector 角色内化进模型
记忆(记住进度/经验)简单历史"记忆-规划"单元自进化 Tips+ShortcutsNotetaker 笔记长时记忆内化

怎么看这张表:从左往右,格子里的"外挂"逐渐变成"基座原生"。 这就是家族最深的一条设计哲学——能力内化(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. 阅读地图(建议怎么读这一组文档)

按演进主线由浅入深读,五章覆盖八代工作。 每章聚焦一段、不重复彼此:

顺序章节讲什么建议读者
101-v1-single-agent.mdv1:外挂感知(OCR/检测/CLIP)+ 通用 VLM 的单智能体 ReAct 流水线想从最简形态入门
202-v2-multi-agent.mdv2:感知 / 决策 / 反思 / 记忆-规划的多智能体协作想懂"为什么要拆角色"
303-mobile-agent-e-and-pc.mdMobile-Agent-E 的自进化长期记忆 + PC-Agent 的分层编排(扩到 PC)关心长任务与跨平台
404-gui-owl-foundation-models.mdGUI-Owl 与 v3/v3.5:把感知·定位·规划·反思内化进原生基座关心"框架变薄"这条主线的终点
505-training-and-critic.mdUI-S1 半在线强化学习 + GUI-Critic-R1 操作前纠错(怎么把基座练出来)关心训练方法与安全纠错

两条快捷读法:

  • 只想抓精华: 读本章 §3 演进图 + §4 暗线表,再直接跳 04(终点形态)。
  • 想做工程复现:01 顺读到 03,这三章的外挂式管线代码最完整、最易在本地跑通。

6. 总代码地图(全家族导航索引)

这张表是跳回源码的总跳板。 每行给"某代/某能力 → 关键文件 → 关键符号",agent 可直接用符号名 grep 定位(比行号抗漂移)。细粒度代码地图见各章末尾。

主题文件路径关键符号
家族清单(八代)README.md:80-89"Series of Work"
v1 主循环 / 外挂感知Mobile-Agent-v1/run.pyrundetocrclip.load
v1 定位与裁剪Mobile-Agent-v1/MobileAgent/icon_localization.pydet
v2 四角色 promptMobile-Agent-v2/MobileAgent/prompt.pyget_action_promptget_reflect_promptget_memory_promptget_process_prompt
v2 多智能体主循环Mobile-Agent-v2/run.pyreflection_switchmemory_switchget_perception_infos
E 自进化记忆角色Mobile-Agent-E/MobileAgentE/agents.pyManagerOperatorActionReflectorNotetakerExperienceReflectorTipsExperienceReflectorShortCut
E 全局信息池Mobile-Agent-E/MobileAgentE/agents.py:130InfoPool(tipsshortcuts 字段)
PC 分层子任务PC-Agent/PCAgent/prompt_qwen.pyget_subtask_promptget_action_promptget_reflect_prompt
PC 主循环PC-Agent/run.pyget_perception_infosget_subtask_prompt
v3 多智能体 + 基座Mobile-Agent-v3/mobile_v3/run_mobileagentv3.pyrun_instructionManagerNotetakerActionReflector
v3 基座封装(大脑)Mobile-Agent-v3/mobile_v3/utils/call_mobile_agent_e.py:62GUIOwlWrapper
v3.5 手机入口Mobile-Agent-v3.5/mobile_use/run_gui_owl_1_5_for_mobile.pymainparse_actionrescale_coordinates
v3.5 跨平台入口Mobile-Agent-v3.5/{computer_use,browser_use}/run_gui_owl_1_5_for_*.pyrun_gui_owl_1_5_for_pcrun_gui_owl_1_5_for_web
UI-S1 半在线 RLUI-S1/uis1/core_uis1.pycompute_step_discounted_returns
GUI-Critic 批判推理GUI-Critic-R1/test.pycritic_inference

全部引用 as-of sourceCommit: 11cea575561fb7800b5fb6b6cafa56f7a91de11f。GUI-Owl 基座模型本身(训练/权重)不在本仓库代码内,仓库提供的是调用/编排/评测代码;基座能力细节见对应论文与 HuggingFace 模型卡。