HuggingFace | Paper | GitHub | HomePage
Introduction
OpenMobile-2-9B is a mobile GUI agent fine-tuned from Qwen3.5-9B on OpenMobile-Data-v2. It completes Android tasks from screenshots, and can call app-native tools when the foreground app exposes them.
Results
| Model | AndroidWorld Pass@1 | MobileWorld GUI | MobileGym SR | MobileGym++ Hybrid | SPA-Bench L3 |
|---|---|---|---|---|---|
| Qwen3.5-9B | 54.3 | 12.8 | 9.4 | 12.1 | 25.5 |
| OpenMobile-1-8B | 64.7 | 17.7 | 13.7 | 7.0 | -- |
| UI-Venus-1.5-8B | 73.7 | -- | 15.4 | 16.3 | 29.8 |
| GUI-Owl-1.5-8B | 69.0 | 38.2 | 17.2 | 12.6 | -- |
| MAI-UI-8B | 70.7 | 27.5 | 16.8 | 18.6 | -- |
| OpenMobile-2-9B | 74.0 | 38.5 | 38.3 | 46.5 | 48.9 |
Deploy
The commands below use a context length of 65536 and tensor parallel 2
vLLM
We use vLLM 0.19.1.
pip install vllm==0.19.1
vllm serve OpenMobile-2/OpenMobile-2-9B \
--tensor-parallel-size 2 \
--max-model-len 65536 \
--gpu-memory-utilization 0.90 \
--max-num-seqs 16 \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--gdn-prefill-backend triton
SGLang
We use SGLang 0.5.10.post1.
pip install sglang==0.5.10.post1
python -m sglang.launch_server \
--model-path OpenMobile-2/OpenMobile-2-9B \
--tp-size 2 \
--mem-fraction-static 0.8 \
--context-length 65536 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder \
--enable-multimodal
Citation
If you find this model useful, please cite our paper:
@article{openmobile2,
title={OpenMobile-2: Building Versatile Mobile Agents with Scalable Environments and App-Native Tools},
author={Chenyang Yan and Yingying Zhang and Kanzhi Cheng and Qiushi Sun and Zhengyuan Pan and Zheng Ma and Hang Yan and Yian Wang and Nuo Chen and Jialin Cao and Xingdong Gong and Wenpo Song and Han Chen and Zichen Ding and Fangzhi Xu and Shujian Huang and Xinyu Dai and Yichen Liu and Tiankuo Yao and Bo Wang and Ben Kao and Jianbing Zhang and Lewei Lu and Dahua Lin},
journal={arXiv preprint arXiv:2610.14157},
year={2026},
url={https://arxiv.org/abs/2610.14157}
}