MobileGym
以可编程状态和确定性判定评测、训练移动 GUI 智能体。
这个 Agent 能做什么,适合哪些场景?
MobileGym 是一个在浏览器中运行的 Android 风格移动模拟平台,用于移动 GUI 智能体研究。它由 React/Vite 前端模拟器、Python 与 Playwright 驱动的 bench_env 基准环境,以及 mobilegym-rl 在线强化学习管线组成。平台将环境暴露为结构化 JSON 状态,可进行读取、注入、快照、恢复和并行克隆,并由任务中的程序化检查函数判定结果与副作用。仓库提供 28 个模拟应用、416 个参数化任务模板和一个 256 任务测试集;模拟应用不连接真实服务、账户或资金。它适合需要可复现评测和大规模在线 RL 的团队,但不是可直接操控真实 Android 手机或真实第三方账户的自动化产品。
前端通过 apps/、system/ 和 os/ 组合出模拟手机环境;bench_env 通过 Playwright 打开该环境并使用 __SIM__、__OS__、__SIM_INPUT__ 读取截图、输入 tap/type/swipe/back/home/wait/drag/complete 等动作。运行 python -m bench_env.run 时,任务类会提供 description、setup 里的 JSON 状态注入,以及 check_goals() 或 get_answer() 的确定性判定;运行器可执行单任务、suite、split、并行评测、pass@k 与重试。agent 目录提供 autoglm、uitars、venus、gui_owl、generic、generic_v2、mai_ui 和 human 适配器,输出运行结果,并可在 run_explorer.html 中查看逐步截图、动作标注、提示词和模型响应。mobilegym-rl/ 则承载在线 RL 训练代码。
- 移动智能体研究人员需要在每次试验使用完全相同初始状态的 WeChat、Alipay 或跨应用任务上比较模型时。
- 强化学习团队需要把同一任务状态克隆到大量浏览器实例中,执行 GRPO 式并行 rollout 时。
- 基准维护者需要为一个模拟应用编写含 setup 状态注入与 check_goals() 确定性判定的新任务时。
- 模型接入工程师需要使用已有 AutoGLM、UI-TARS、UI-Venus、GUI-Owl 或统一 JSON 适配器评估 GUI 模型时。
- 开发者需要以 human 手动模式重放任务、检查判定器,并在浏览器中审阅完成后的运行轨迹时。
这个 Agent 有哪些优点和局限?
- 完整环境状态以结构化 JSON 管理,可快照、恢复、注入和克隆,而非仅依赖截图或无障碍树。
- 任务通过程序化 check_goals() / get_answer() 判定,能够检查完成结果及意外副作用,不需要 VLM 作为判定器。
- 浏览器托管的轻量实例支持高并发 rollout;README 给出了单服务器 256 实例的资源与启动指标。
- 应用、系统层、基准任务和模型适配器分层组织,新增应用可依 manifest 合约接入,新增适配器也有明确位置。
- 它模拟的是研究替身应用,不连接真实服务、账户或资金,因此不能验证真实生产应用中的认证、网络后端或支付行为。
- 本地运行需要 Node.js、Python、Playwright Chromium;高并发模式还依赖 nginx,并在高并发下有 Linux inotify 配置要求。
- 伴随数据集约 1.9 GB,且数据与内容采用 CC BY-NC 4.0,非商业学术用途限制可能影响商用采用。
- 新模型必须符合现有适配器的输出模式,或自行在 bench_env/agent/ 中实现并注册适配器。
如何安装或部署这个 Agent?
前置条件:Node.js ≥22、Python ≥3.11,以及可用的 shell 与网络连接。执行:git clone https://github.com/Purewhiter/mobilegym.git;cd mobilegym;npm install;pip install -r bench_env/requirements.txt;playwright install chromium。可选数据集约 1.9 GB:curl -L -o mobilegym-data.tar.gz https://github.com/Purewhiter/mobilegym/releases/download/data-v0.1.0/mobilegym-data-v0.1.0.tar.gz;tar -xzf mobilegym-data.tar.gz。模拟器密钥是可选项;规范基准不要求凭据。
如何使用这个 Agent?
先执行 npm run build && npm run preview -- --port 4173,然后以人工模式验证首次运行:python -m bench_env.run --task-id wechat.ReadMyWxid --agent human --env-url http://localhost:4173。列出任务可运行 python -m bench_env.run --list;运行完整测试集可使用 python -m bench_env.run --split test --parallel 8 --env-url http://localhost:4173 --agent autoglm --model-name autoglm-phone-9b。需要至少 8 路以上高并发时,先安装 nginx,执行 npm run build 和 ./scripts/server/start_nginx_gateway.sh,再把环境地址改为 https://localhost:4180。
这个 Agent 与同类方案有什么区别?
相较于真实设备或常规模拟器路径,MobileGym 的定位是将完整应用状态做成可写、可重置、可克隆的 JSON,并以状态差异进行确定性判定;其 README 将 AppWorld、WebArena、VisualWebArena、AndroidWorld、AndroidLab 和 A3 列为启发来源。