← 返回 2026-04-23

OpenMobile:通过任务与轨迹合成构建开源移动智能体 OpenMobile: Building Open Mobile Agents with Task and Trajectory Synthesis

Kanzhi Cheng, Zehao Li, Zheng Ma, Nuo Chen, Jialin Cao, Qiushi Sun, Zichen Ding, Fangzhi Xu, Hang Yan, Jiajun Chen, Anh Tuan Luu, Jianbing Zhang, Lewei Lu, Dahua Lin 📅 2026-04-16 👍 30 2026-07-13 08:36
GUI Agent 数据合成 模仿学习 移动智能体 视觉语言模型 错误恢复

解耦探索与任务生成,策略切换采样错误恢复轨迹,让开源数据追平闭源 70% AndroidWorld。

前置知识

视觉语言模型 (VLM) 与 GUI Agent

VLM 是同时理解像素图像和自然语言的多模态基础模型。GUI Agent 把 VLM 当作决策大脑,输入屏幕截图与历史,输出点击/输入等动作完成手机/网页任务,代表如 Qwen-VL、UI-TARS。

OpenMobile 整篇工作都建立在用 VLM 做端到端移动代理之上,没有 VLM 基础就理解不了它如何同时当任务生成器和策略执行器。

AndroidWorld / AndroidLab / MobileWorld 动态评测

这是一类基于 Android 模拟器、参数化生成任务变体、用确定性检查器打分的动态基准,区别于静态轨迹数据集(如 AndroidControl)。任务涉及真实 App、跨 App 长链路,必须执行完才知道对错。

论文主表 Table 1 全部指标都跑在这三个动态基准上,且专门强调静态集不能反映错误恢复能力——读懂主结果和消融都依赖此概念。

模仿学习与专家蒸馏 (Expert Distillation)

模仿学习让 student 模型去拟合 expert 模型在状态 $o_t$ 下产生的动作 $\pi_e(\cdot|I, o_t, h_t)$。在 GUI Agent 场景下常用强 VLM(GPT、Gemini、UI-TARS)做 expert 收集轨迹,再 SFT 学生。

OpenMobile 把 expert distillation 作为基线之一批评——它无法让学生看到自己会犯的错,这是引入 policy-switching 的动机。

感知哈希 (Perceptual Hash) 与屏幕聚类

感知哈希把截图压缩成短二进制指纹,相似的界面会得到相近或相同的 hash。本文用它把多条探索轨迹中的相同/近似屏幕聚合为唯一节点 $\mathcal{S}=\{s_1,\dots,s_N\}$,形成图结构。

这是构建「全局环境记忆」的关键前置步骤,没有屏幕聚类就无法做长程/短程记忆的检索式任务生成。

短期记忆 / 长期记忆 (Short-/Long-term Memory)

类比人类使用 App 的认知模式:从邻近界面(短程)容易自然串联,从语义相关但距离远的界面(长程)需要联想。形式化上,$\mathcal{M}_S(s_i)$ 取自 $\mathcal{N}(s_i)$,$\mathcal{M}_L(s_i)$ 通过功能嵌入的相似度检索得到。

这是解耦式任务合成的核心抽象,决定了 VLM 看到的上下文 $C(s_i)$,直接决定指令多样性与复杂度。

研究动机

过去一年工业界把移动智能体在 AndroidWorld 上的任务成功率推到接近 70%(Step-GUI 67.7%、UI-Venus-1.5 73.7%、MobileAgent-v3.5 71.6%),但这些系统全部闭源——任务指令怎么写、轨迹怎么滚、错误如何恢复都完全不公开。与此同时,开源社区只能用 AndroidControl、AMEX 这类带噪声的人工标注数据训练,ScaleCUA-7B、UI-S1-7B 等代表模型在 AndroidWorld 上只能做到约 30%,比 Qwen3-VL-8B 基线 47.6% 还要低。现有开源合成方法还存在两个更具体的问题:(1) OS-Genesis、NNetNav 这类「交互驱动」方案把任务生成绑死在单条探索轨迹上,导致指令多样性受限于局部观察;(2) 纯专家蒸馏得到的轨迹全是「完美演示」,student 在测试时一旦走偏就不知道怎么回滚,性能天花板被 expert 演示分布钉死。

本文的目标是OpenMobile 的目标是公开一整套可复现的合成 pipeline,让开源研究者只用 7B–8B 量级的 VLM 就能在三大动态基准上跑到接近闭源 SOTA 的水平。具体指标上要实现 Qwen2.5-VL-7B 在 AndroidWorld 上 51.7%、AndroidLab 22.7%、MobileWorld 14.8%;Qwen3-VL-8B 在 AndroidWorld 上 64.7%、AndroidLab 51.5%、MobileWorld 17.7%,并且要在数据规模、合成方式、消融分析上给出透明可复现的细节。

与已有工作不同的是,作者从两个独特角度切入。其一是「解耦」的范式:把环境探索与任务生成分开做,先用随机游走扫遍 20 个 App 的状态空间,再据此构建一张统一的功能地图;任务合成本身用短程+长程记忆检索式召回,避免被单条轨迹限制。其二是「policy-switching」:在轨迹 rollout 阶段让 student(早期 SFT checkpoint)和 expert(Gemini-3.1-Pro-Preview)交替出场,并设计一种 monitor 触发的 error-intervention 切换,让轨迹天然带「犯错-被纠错」的监督信号,弥补纯蒸馏的盲区。两者结合是过去开源数据合成工作都没系统做过的组合。

核心方法

直觉上,OpenMobile 在做两件事——造数据和采轨迹。造数据部分模仿人学新 App 的过程:先漫无目的地随便点,把每个 App 的「功能地图」画出来;之后再从这个地图上取一个当前屏幕、它的邻居屏幕、以及语义上相关但距离远的屏幕三路信息,让 VLM 写出有意义的复杂任务。采轨迹部分则借鉴「双教练」思路:让一个稍弱但已经具备 GUI 能力的 learner 去试错,当一个 monitor 看到它明显跑偏就立刻切换成 expert Gemini 接管纠错,但只保留 expert 步骤作为训练监督。技术路线上,造数据用感知哈希聚类 + VLM 标注功能 + 嵌入检索三步搭起全局环境记忆 $\mathcal{M}=\{\mathcal{S},\mathcal{N},\{F(s_i)\}\}$;采轨迹用策略切换 + 错误介入 + CoT 重写,最终产出 2.8K 指令 / 34K 动作 / 20 个 App 的数据集。

与已有方法的本质区别有两条。第一条是「解耦 vs 耦合」:OS-Genesis 这类方法把单条随机游走轨迹直接喂给 LLM 反推任务,指令多样性被局部观察钉死;OpenMobile 先用多轮探索把同一屏幕的不同到达路径汇总成图节点 $\mathcal{S}=\{s_1,\dots,s_N\}$,再对每个节点的三层记忆 $C(s_i)=(s_i, \mathcal{M}_S(s_i), \mathcal{M}_L(s_i))$ 做检索式生成,单条轨迹无法触达的「跨功能」组合也能被写出。第二条是「policy-switching vs 单一来源」:expert distillation 只产生零错误轨迹、self-evolution 学得太慢、random switching 又因多解性太吵,OpenMobile 的 error-intervention 让 monitor 在检测到 learner 偏离「有效推进」时立即切回 expert,天然得到含错误恢复经验且任务可完成的轨迹,并把平均错误恢复次数从 0.42(纯蒸馏)提升到 1.56。

方法步骤详情

方法分两大阶段共五步。Scalable Task Synthesis:(1) 用随机游走在 AndroidWorld 模拟器对 20 个 App 收集屏幕-动作序列;(2) 感知哈希聚类得唯一屏幕集 $\mathcal{S}$,聚合转移得邻居 $\mathcal{N}(s_i)$,VLM 为每屏标注功能集 $F(s_i)$ 并建嵌入索引;(3) 对每个候选屏 $s_i$ 构造上下文 $C(s_i)=(s_i, \mathcal{M}_S(s_i), \mathcal{M}_L(s_i))$,$\mathcal{M}_S$ 取邻居、$\mathcal{M}_L$ 语义检索远端屏,VLM 生成候选指令后过滤去重。Policy-Switching Rollout:(4) 给定指令 $I$、expert $\pi_e$、learner $\pi_l$,每步 $z_t\in\{e,l\}$ 决定 $a_t\sim \pi_{z_t}(\cdot|I,o_t,h_t)$,monitor $\mathcal{O}$ 在 learner 偏离「有效推进」时切到 expert;(5) 只保留 expert 步 SFT 但保留含错完整历史,expert 把 CoT 重写成 ~129 词。最终 LLaMA-Factory、batch=32、lr=$1e^{-5}$、3 epoch 在 Qwen2.5-VL-7B/8B 上 SFT。

技术新颖性

技术新颖性体现在三处。其一是首次明确提出 decoupled task synthesis 的两阶段范式,并通过 Table 2 的消融数据展示其在 AndroidWorld 上 48.3% 超过 OS-Genesis 34.1% 和耦合基线 45.3%,且人类评估在「复杂度」维度上 0.68 的胜率证明生成的指令确实更复杂。其二是 error-intervention 切换策略在 Table 3 中带来 1.56 平均错误恢复次数(远超 random switch 的 0.64 和 self-evolve 的 0.10),直接推动 AndroidWorld Pass@1 从纯蒸馏的 44.8% 升到 48.3%。其三是 Figure 4 揭示「功能覆盖率」与成功率的耦合关系,把数据合成的质量从直觉性的「看起来多样」转化为可量化的覆盖率指标,并证明 broad functionality coverage(而非数据量本身)才是性能提升的关键驱动——这是把移动 Agent 数据工程从经验工艺推向可分析范式的贡献。

The overview of OpenMobile. (a) Scalable Task Synthesis. (b) Policy-Switching Rollout.
Figure 2: The overview of OpenMobile. (a) Scalable Task Synthesis. (b) Policy-Switching Rollout.

实验结果

Table 1 展示 OpenMobile 在三大动态基准的统治级表现:Qwen2.5-VL-7B 从 25.5% 提到 AndroidWorld 51.7%(+26.2)、AndroidLab 22.7%(+12.1)、MobileWorld 14.8%(+7.1),均超 ScaleCUA-7B(27.2/30.0/7.7);Qwen3-VL-8B 进一步推到 64.7%/51.5%/17.7%,在 AndroidWorld 和 AndroidLab 上超 Qwen3-VL-8B 基线 17.1 与 8.0 个绝对点,逼近闭源 Step-GUI-8B(67.7%)与 MobileAgent-v3.5-8B(71.6%/33.3%)。Table 2 显示 1.5K 轨迹预算下 OpenMobile 48.3% 击败 OS-Genesis 34.1% 和耦合流水线 45.3%。Table 3 显示 expert distillation 44.8%、self-evolution 33.8%、random switch 45.1%,error-intervention 拿到 48.3%,错误恢复次数从 0.42–0.64 提升到 1.56 直接转化为下游性能。Figure 3 给出数据污染分析:相似度 >0.7 的合成指令仅 3.5%。

Main results on AndroidWorld, AndroidLab, and MobileWorld. Pass@1 and Pass@3, higher is better.
Table 1: Main results on AndroidWorld, AndroidLab, and MobileWorld. Pass@1 and Pass@3, higher is better.
Ablation on task synthesis strategies. (a) Human evaluation (win / tie / loss). (b) Task success rate.
Table 2: Ablation on task synthesis strategies. (a) Human evaluation (win / tie / loss). (b) Task success rate.
Ablation on rollout strategies. Avg. ER is the average number of error-recovery instances per trajectory, manually counted over 50 randomly sampled trajectories.
Table 3: Ablation on rollout strategies. Avg. ER is the average number of error-recovery instances per trajectory, manually counted over 50 randomly sampled trajectories.
Left: Semantic similarity between synthetic and AndroidWorld instructions. Right: Impact of removing test-similar instructions from training.
Figure 3: Left: Semantic similarity between synthetic and AndroidWorld instructions. Right: Impact of removing test-similar instructions from training.
Left: Functionality coverage of AndroidWorld tasks as synthesized instructions scale. Right: Tasks with lower complexity (fewer required functionalities) and higher functionality coverage by synthetic data achieve higher success rates.
Figure 4: Left: Functionality coverage of AndroidWorld tasks as synthesized instructions scale. Right: Tasks with lower complexity (fewer required functionalities) and higher functionality coverage by synthetic data achieve higher success rates.
查看结构化数据
任务指标本文基线提升
AndroidWorld Pass@1 % 任务成功率 51.7 (Qwen2.5-VL-7B) / 64.7 (Qwen3-VL-8B) Qwen2.5-VL-7B 基线 25.5 / Qwen3-VL-8B 基线 47.6;ScaleCUA-7B 27.2;UI-S1-7B 34.0 +26.2 / +17.1 相对各自基线;超过 UI-Venus-7B 49.1 约 2.6–15.6 点
AndroidWorld Pass@3 % 任务成功率 68.1 (7B) / 78.0 (8B) Qwen2.5-VL-7B 基线 34.9;Qwen3-VL-8B 基线 62.1;ScaleCUA-7B 36.2 +33.2 / +15.9 相对基线;逼近 Step-GUI-8B 80.2
AndroidLab Pass@1 % 任务成功率 22.7 (7B) / 51.5 (8B) Qwen2.5-VL-7B 基线 10.6;Qwen3-VL-8B 基线 43.5;ScaleCUA-7B 30.0 +12.1 / +8.0 相对基线;8B 超过 UI-Venus-7B 41.3 约 10.2 点
AndroidLab Pass@3 % 任务成功率 37.0 (7B) / 62.3 (8B) Qwen2.5-VL-7B 基线 15.2;ScaleCUA-7B 37.7 +21.8 相对基线;8B 接近 Step-GUI-4B 75.8 的开源参考
MobileWorld Pass@1 % 任务成功率 14.8 (7B) / 17.7 (8B) Qwen2.5-VL-7B 基线 7.7;Qwen3-VL-8B 基线 9.4;ScaleCUA-7B 7.7 +7.1 / +8.3 相对基线,7B 与 8B 都较 ScaleCUA 翻倍以上
MobileWorld Pass@3 % 任务成功率 21.4 (7B) / 24.8 (8B) Qwen2.5-VL-7B 基线 10.3;ScaleCUA-7B 8.6 +11.1 相对基线,7B 翻倍以上

局限与改进

作者显式承认几点局限:(1) RL 实验(step-level 与 trajectory-level agentic RL)均未显著超过 SFT,说明合成数据虽多但奖励信号稀疏问题在动态基准上仍然突出;(2) 数据集 2.8K 指令 / 34K 步仅覆盖 20 个 App,远小于工业级闭源系统规模;(3) error-intervention 的 monitor 依赖人工定义的「有效推进」启发式,没有理论保证;(4) 借助 AndroidWorld 环境合成数据,虽通过 3.5% 相似度证明无明显泄漏,但 AndroidLab/MobileWorld 与训练环境部分 App 重叠,跨基准泛化是否反映未见功能仍是开放问题。本人额外观察:Figure 1 的 Error Correction 面板未给数值化指标;Table 1 中 OpenMobile 在 MobileWorld 上仍远低于 MobileAgent-v3.5-8B 的 33.3%,说明长链跨 App 任务对当前数据规模依然是硬骨头。

独立分析的弱点

本人独立分析了几点可改进的弱点。其一是规模与覆盖剪刀差:2.8K 指令在功能覆盖率上仍存在长尾遗漏,Table 1 显示 MobileWorld 上即便 8B 也只到 17.7%,改进方向是把指令按功能组合数分层采样、显式提升跨 App 长链指令比例。其二是 monitor 的启发式粗糙:error-intervention 是整套方法的「灵魂」,但作者未详细定义「偏离有效推进」的判定准则,改进方向是引入轻量分类器对 learner 与 expert 的「意图」对齐度打分,或直接复用任务完成度的中间信号。其三是评估只覆盖三大公开基准且与训练环境部分 App 重叠,改进方向是补充未在 AndroidWorld 出现的 App(银行、出行类)做 held-out 评测。其四是可复现性方面,expert 用的是 Gemini-3.1-Pro-Preview 这种带版本号的服务端模型,行为漂移让结果不可复现,改进方向是发布所有 prompt 与随机种子并提供 OSS expert 替代。

未来方向

作者明确提出了两个方向:(1) 把 policy-switching 的思想推广到 RL 阶段,构造带错误恢复的偏好数据做 DPO/RLHF;(2) 把功能覆盖率作为合成阶段的显式优化目标,自动搜索「下一个最有价值的指令」而不仅是随机采样。基于成果可延伸的方向还有:在多模态基础模型层面,把 error-intervention rollout 生成的「错误-纠正」对训练成 reflection token,让模型在解码时主动判断是否需要回滚;在系统层面,把 monitor 替换为可微的 verifier,从 IMITATION 走向 verifier-guided MCTS 的离线蒸馏;在数据层面,把合成 pipeline 推广到 WebArena、OSWorld 等非移动环境,验证 decoupled 范式的跨域通用性。

复现评估

OpenMobile 在可复现性上做得相当到位:(1) 作者声明会开源全部数据和代码到 OpenMobile 仓库;(2) 训练用 LLaMA-Factory 公开工具链,batch=32、lr=$1e^{-5}$、3 epoch 等超参全部列出;(3) 2.8K 指令 / 34K 步、20 App、平均轨迹 12.2 步、129 词 CoT 等数据统计透明披露;(4) 评测用三大公开动态基准并提供 Pass@1/Pass@3 双重指标。但复现难度中等偏高:(a) expert 是 Gemini-3.1-Pro-Preview 闭源服务,调用成本与数据私密性都是障碍;(b) 训练需 7B/8B VLM 多卡 GPU(按 batch=32 估计 8×A100 80G);(c) AndroidWorld 模拟器依赖特定 Android 镜像,环境准备有门槛。完整复现至少需 1-2 名熟悉 VLM 训练和 Android 模拟器的工程师耗费 2-3 周。