MobileGym

5个月前发布 274 00

MobileGym 是一个跑在浏览器里的手机模拟环境,整个环境状态完全可编程。开箱即用 28 个模拟 App 和 416 个参数化任务模板,每个任务自带亚毫秒级、完全确定性的代码判题;一台服务器可并行 256 个实例(单实例 ≈400 MB RAM,冷启动 ≈3 秒)。

所在地:
中国
收录时间:
2026-05-29
其他站点:
MobileGymMobileGym

在手机图形用户界面(GUI)智能体(Agent)的研究中,真机测试往往面临状态不可读、操作不可逆、并行度低等巨大挑战。MobileGym 是一个运行在浏览器中的高保真手机模拟环境,旨在为 AI Agent 提供可验证、高度并行且完全可编程的训练与评测平台。

MobileGym

核心突破:打破真机评测的“三堵墙”

痛点真机/传统模拟器MobileGym 解决方案
状态不可读仅能获取 UI 表层,深层数据(余额、订单)需依赖 VLM 判题(误判率高)。结构化 JSON 快照:全环境状态可编程读取,代码级直接判题,亚毫秒级出结果。
状态不可写关键状态加密或依赖后端,无法重置/克隆,难以支持 Group-RL。完全可控:状态可注入、可快照、毫秒级克隆至数百个并行实例。
副作用不可逆转账、注销等操作有真实后果,RL 训练风险极高。零真实后果沙箱:完全隔离,随意回滚,支持百万级 Episode 安全训练。

关键特性:高效、确定、可扩展

1. 极致轻量与高并行

  • 资源占用低:单实例仅需 ≈400 MB RAM 和 ≈50 MB 磁盘。
  • 高并发能力:一台服务器可并行运行 256 个实例,CPU 占用 <10%,完成一轮 256 任务评测仅需约 6 分钟。
  • 冷启动快:实例冷启动时间约为 3 秒。

2. 确定性代码判题

  • 拒绝模糊匹配:每个任务自带代码级判题函数,不依赖字符串相似度或 VLM 主观判断。
  • 全状态对比:自动捕捉意外副作用(如误关注、误发消息),提供成功率 (SR)、进度率 (PR)、错误声明完成率 (FC) 及意外副作用率 (USE) 等多维指标。

3. 丰富的内置应用生态

  • 28 款模拟 App:涵盖微信、支付宝、哔哩哔哩、小红书、铁路 12306、eBay 等日常高频应用。
  • 416 个参数化任务模板:支持动态生成海量任务,覆盖社交、金融、娱乐、出行等场景。
  • AnswerSheet 协议:通过结构化表单填空,从根本上杜绝思维链文本水过字符串匹配的问题。
MobileGym

Sim-to-Real 实证:95.1% 增益迁移

MobileGym 不仅是一个评测工具,更是一个高效的训练平台。实验表明,在仿真环境中训练的模型能极好地迁移到真机:

  • 基座模型:Qwen3-VL-4B
  • 训练方法:GRPO (Group Relative Policy Optimization)
  • 仿真提升:+42.8 pt
  • 真机提升:+40.7 pt
  • 迁移率:95.1%

这意味着在 MobileGym 中获得的策略优化,几乎可以无损地应用到真实的 Redmi Note 12 Turbo 等设备上。

快速开始

1. 环境准备

  • Node ≥ 22, Python ≥ 3.11
  • 推荐使用 conda 管理环境

2. 安装与数据下载

# 克隆仓库
git clone https://github.com/Purewhiter/mobilegym.git
cd mobilegym

# 安装前端依赖
npm install

# 安装 Python 依赖
pip install -r bench_env/requirements.txt
playwright install chromium

# 下载数据集 (≈1.4 GB)
curl -L -o mobilegym-data.tar.gz \
  https://github.com/Purewhiter/mobilegym/releases/download/data-v1.0/mobilegym-data-v1.tar.gz
tar -xzf mobilegym-data.tar.gz && rm mobilegym-data.tar.gz

3. 启动模拟器

  • 开发/手动浏览:npm run dev (访问 http://localhost:3000)
  • 大规模评测/RL:
    npm run build
    ./scripts/server/start_nginx_gateway.sh  # 启动 Nginx Gateway (https://localhost:4180)
    

4. 运行评测示例

# 运行微信特定任务
python -m bench_env.run --task-id wechat.ReadMyWxid \
  --env-url http://localhost:4173 \
  --agent autoglm --model-name autoglm-phone-9b

# 大规模并行测试 (128 路)
python -m bench_env.run --split test \
  --parallel 128 --processes 16 --browsers 16 --isolation pages \
  --headless \
  --env-url https://localhost:4180 \
  --agent autoglm --model-name autoglm-phone-9b

MobileGym 通过结构化状态管理和确定性判题机制,解决了手机 GUI Agent 研究中长期存在的评估不准、训练困难和并行度低的问题。其极高的 Sim-to-Real 迁移率证明了仿真训练的有效性,为学术界和工业界提供了一个强大、开放且高效的基础设施。

相关导航