乐于分享
好东西不私藏

AI与学术研究:在浏览器模拟器里训练的手机智能体搬到真手机上保留了九成五的提升

AI与学术研究:在浏览器模拟器里训练的手机智能体搬到真手机上保留了九成五的提升
今天我们看一个 GitHub 上的 AI 应用项目《手机智能体训练场 MobileGym》(Purewhiter/mobilegym),它要解决的是做手机智能体研究时一个绕不开的麻烦,用真手机测 AI 的操作能力既慢、又没法两次跑出一样的结果,它把整部安卓手机搬进浏览器,做成一个能随意存档、重置、并行复制的沙盒。而在这个模拟器里练出来的智能体,搬到真手机上还能保留九成五的能力提升。

全文约 3524 字 · 阅读约 9 分钟

项目信号:这个项目 2026 年 5 月 14 日创建,7 月 1 日还在更新,主语言标注为 Python,前端用 TypeScript 和 React,代码采用 Apache-2.0,配套数据采用 CC BY-NC 4.0,攒下 740 颗 star、121 次 fork,只有 5 个未关闭 issue,是一个年轻、活跃、维护紧凑的研究项目。

关键词及解析

  • GUI 智能体:能看懂手机屏幕、自己点按滑动来完成任务的 AI 程序,比如帮你订票、发消息。
  • 可编程状态加确定性判分:整个模拟环境就是一份 JSON 数据,任务做没做对由一段代码函数直接读状态判定,不用再找一个大模型来看截图猜分。
  • 在线强化学习:让智能体在环境里反复试错、按奖励信号更新自己,比一次性跑完打分更进一步。
  • 模拟到真机迁移(Sim-to-Real):模拟器里练出来的能力究竟能不能迁到真实手机上,这是判断这类平台有没有用的关键。
一、运作机制

它把"测一个手机智能体"这件原本依赖真机、真账号、还没法回退的苦活,改造成了一份可以随意读取和复制的程序状态。README 讲清了真机测评撞上的三堵墙。真手机通过 adb 和无障碍树只能看到界面,看不到账户余额、订单、聊天记录这些底层数据,判分只好退回给一个会看错的视觉大模型,他们实测这种判分的误判率是 10.2%。真实 App 的状态藏在加密数据库和服务器后端里,既不能重置也不能克隆,而强化学习恰恰两样都需要。真实操作一转账就是真金白银,停用账号还不可逆,大规模试错基本没法做。

MobileGym 的做法是把整个环境都变成一份结构化的 JSON 快照,判分函数直接读这份状态,可以随时重置、注入、克隆成上百个并行实例,全程沙盒、没有真实后果。这一步真正的价值,是把评测从"另一个模型看图打分"换成"代码直接读状态判分",让同一个任务在不同模型、不同批次跑出来的初始条件完全一致、结果可复现。

项目结构

对着结构看,apps/ 下是一批独立复刻的日常应用,支付宝、哔哩哔哩、eBay、地图、12306、小红书、Reddit、Spotify 等等,README 说一共约 28 个,它们只是长得像、数据全是合成的,不连任何真实服务。.nginx/ 那份配置是为了在一台机器上把上百个模拟器实例并行架起来。README 给出的完整分层是三层,底层 os/ 管系统外壳与时间、定位这些服务,中层 apps/ 和 system/ 管各个 App 的界面与状态,上层 bench_env/(Python 加 Playwright)管任务模板、判分函数和并行调度,另有 mobilegym-rl/ 放在线强化学习的训练代码。数据从底层的结构化状态往上流,动作从上层的 16 个抽象操作打下去,判分时把跑完的状态和预期状态做差异比对。一台服务器能同时跑 256 个这样的实例,每个约占 400MB 内存,跑完 256 个任务的完整评测只要 6 分钟左右,CPU 占用不到一成,这是真机和普通模拟器给不了的吞吐量。

二、上手难度

综合评级为中。只是看看很容易,想把大规模并行和强化学习真正跑起来,则要一台像样的机器和一些工程功夫。官网 mobilegym.dev 有免安装的在线演示,点开就能玩;本地跑需要 Node 22 以上、Python 3.11 以上,克隆后 npm install、pip 装依赖、装 Playwright,再下载约 1.9GB 的配套数据集。想不接模型自己手动操控,用 human 模式即可,适合第一次上手和调判分。单智能体评测(8 路并行以内)用 npm preview 就够,再往上要启动仓库自带的 nginx 网关脚本,强化学习训练则要 GPU,他们用的是三块 RTX Pro 6000 配 96 个并行浏览器实例。

要留意的一点是,你评测的那个智能体模型得自己接,把 --model-base-url 指向一个自己准备或托管的推理后端。代码开源免费,没有强制付费或必须购买的 API,真正的花费落在算力上,评测要自己备一个模型后端,强化学习要 GPU。

关键配置:.env.example

这份 .env.example 值得对着看一眼,Google 地图、高德、和风天气、内置 OS 大模型的几把 key 全都标着 optional,官方明说标准评测不配这些也能跑,不配就用打包好的离线快照,只有想要地图天气的实时联网兜底、或者重新生成数据时才需要。这份配置最要紧的一点,是所有联网的第三方 key 都是可选项,标准评测在完全离线的状态下就能复现。

三、科研增益

它的增益很实在,但也很窄,只落在手机 GUI 智能体这一个研究方向上。

先说做得好的地方。评测可复现是最硬的一条,读状态判分让同一任务的初始条件在所有模型、所有批次里完全一致,分数能横比、能复现。吞吐量高直接省时间,256 个任务 6 分钟跑完,过去在真机上要跑几个小时,还经常因为弹窗或网络中断而作废。它还打开了以前几乎做不了的实验,账号绑定、要连后端、一动就是真钱的 App,过去没法做在线强化学习,这里能重置、能克隆成上百份并行,大规模试错才谈得上。它会把跑完的整份状态和预期做差异比对,逮住"顺手多关注了一个人""误发了一条消息"这类真机流水线根本看不见的副作用。最能说明它有用的证据,是在一个 59 任务子集上对 Qwen3-VL-4B 做 10 步 GRPO 训练,模拟里涨了 42.8 分,搬到一台真机上还剩 40.7 分,保留了 95.1%。

再说不能可靠交给它的部分。这些 App 是合成的复刻品,README 自己讲清是"行为像、不是像素级像"的研究替身,它给出的结论说的是它建模出来的那套行为,不代表在真实 App 上一定成立。那个 95.1% 是一个模型、一台真机、一个 59 任务子集上的结果,换个模型、换类任务,迁移率完全可能不同。它覆盖的是 28 个内置 App,想扩到自己关心的应用或任务,要照它的 manifest 契约自己写模块。它也不是文献、写作或数据分析的通用助手,指望它帮你查文献、写综述是用错了地方。

四、数据与隐私

对研究者最在意的数据安全,这个项目的设计几乎是最省心的一类,整套东西默认跑在你自己的浏览器和服务器上,用的全是合成数据。

那些被复刻的 App 是独立实现的研究替身,从不连真实服务、真实账号或真实资金,全在沙盒里,跑一万遍也不会有真实后果,所以没有真实用户数据可泄露,你的实验状态默认也留在本地。真正需要留意的外部数据流只有两处,一是配上前面那些可选的联网 key,二是把待评测模型指向某个云端接口,默认状态下这两处都不发生,加上内容本身全是合成的,对未发表数据或受访者信息几乎没有泄露风险。 一旦你配了地图、天气或内置模型的 key,相应请求会发到 Google、高德、和风或你指定的模型服务;把 --model-base-url 指到云端 API 时,任务的截图和提示会发到那个后端,不过因为发出去的内容是合成的,这层风险也很低。最后记住数据协议是 CC BY-NC 4.0,打包的那批数据只能用于非商业学术研究,别拿去做产品。

它适合做手机 GUI 智能体评测、想在交互式 App 上做在线强化学习、以及需要一个可复现基准的研究者。它不适合需要真实 App 保真度的工程落地,也不适合想找一个通用科研助手的人。最该记住的风险是模拟和真机之间那道坎,合成环境里跑出来的结论必须在真实场景里再验一次,那个漂亮的迁移数字只是一个子集上的一次验证。

来源:手机智能体训练场 MobileGym,Purewhiter/mobilegym,https://github.com/Purewhiter/mobilegym ,★740,Apache-2.0(代码)/ CC BY-NC 4.0(数据)。