| Paper | Huggingface | App |
English | 中文
MobiAgent is a powerful and customizable mobile agent system including:
- An agent model family: MobiMind
- An agent acceleration framework: AgentRR
- An agent benchmark: MobiFlow
System Architecture:
[2025.11.03]✅ Added multi-task execution module support and user preference support. For details about multi-task usage and configuration, see here.[2025.11.03]🧠 Introduced a user profile memory system: async preference extraction with LLM, raw-text preference storage and retrieval, optional GraphRAG via Neo4j. Preferences are retrieved as original texts and appended to experience prompts to personalize planning, see here.[2025.10.31]🔥We've updated the MobiMind-Mixed model based on Qwen3-VL-4B-Instruct! Download it at MobiMind-Mixed-4B-1031, and add--use_qwen3flag when running dataset creation and agent runner scripts.[2025.9.30]🚀 added a local experience retrieval module, supporting experience query based on task description, enhancing the intelligence and efficiency of task planning![2025.9.29]We've open-sourced a mixed version of MobiMind, capable of handling both Decider and Grounder tasks! Feel free to download and try it at MobiMind-Mixed-7B.[2025.8.30]We've open-sourced the MobiAgent!
Mobile App Demo:
MobiAgent_Demo.mp4
AgentRR Demo (Left: first task; Right: subsequent task)
AgentRR.mp4
Multi Task Demo
task: 帮我在小红书找一下推荐的最畅销的男士牛仔裤,然后在淘宝搜这一款裤子,把淘宝中裤子品牌、名称和价格用微信发给小赵
Multi_Task_Demo.mp4
agent_rr/- Agent Record & Replay frameworkcollect/- Data collection, annotation, processing and export toolsrunner/- Agent executor that connects to phone via ADB, executes tasks, and records execution tracesMobiFlow/- Agent evaluation benchmark based on milestone DAGapp/- MobiAgent Android appdeployment/- Service deployment for MobiAgent mobile application
If you would like to try MobiAgent directly with our APP, please download it in Download Link and enjoy yourself!
If you would like to try MobiAgent with python scripts which leverage Android Debug Bridge (ADB) to control your phone, please follow these steps:
Create virtual environment, e.g., using conda:
conda create -n MobiMind python=3.10
conda activate MobiMindSimplest environment setup (in case you want to run the agent runner alone, and do not want heavy dependencies like torch to be installed):
# Install simplest dependencies
pip install -r requirements_simple.txtFull environment setup (in case you want to run the full pipeline):
pip install -r requirements.txt
# Download OmniParser model weights
for f in icon_detect/{train_args.yaml,model.pt,model.yaml} ; do huggingface-cli download microsoft/OmniParser-v2.0 "$f" --local-dir weights; done
# Download embedding model utils
huggingface-cli download BAAI/bge-small-zh --local-dir ./utils/experience/BAAI/bge-small-zh
# Install OCR utils
sudo apt install tesseract-ocr tesseract-ocr-chi-sim # chinese optional
# If you need GPU acceleration for OCR, install paddlepaddle-gpu according to your CUDA version
# For details, refer to https://www.paddlepaddle.org.cn/install/quick, for example CUDA 11.8:
python -m pip install paddlepaddle-gpu==3.1.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
- Download and install ADBKeyboard on your Android device
- Enable Developer Options on your Android device and allow USB debugging
- Connect your phone to the computer using a USB cable
After downloading the decider, grounder, and planner models, use vLLM to deploy model inference services:
vllm serve IPADS-SAI/MobiMind-Decider-7B --port <decider port>
vllm serve IPADS-SAI/MobiMind-Grounder-3B --port <grounder port>
vllm serve Qwen/Qwen3-4B-Instruct --port <planner port>Write the list of tasks that you would like to test in runner/mobiagent/task.json, then launch agent runner:
python -m runner.mobiagent.mobiagent --service_ip <Service IP> --decider_port <Decider Service Port> --grounder_port <Grounder Service Port> --planner_port <Planner Service Port>Parameters:
--service_ip: Service IP (default:localhost)--decider_port: Decider service port (default:8000)--grounder_port: Grounder service port (default:8001)--planner_port: Planner service port (default:8002)
The runner automatically controls the device and invoke agent models to complete the pre-defined tasks.
For detailed usage instructions, see the README.md files in each sub-module directory.
If you find MobiAgent useful in your research, please feel free to cite our paper:
@misc{zhang2025mobiagentsystematicframeworkcustomizable,
title={MobiAgent: A Systematic Framework for Customizable Mobile Agents},
author={Cheng Zhang and Erhu Feng and Xi Zhao and Yisheng Zhao and Wangbo Gong and Jiahui Sun and Dong Du and Zhichao Hua and Yubin Xia and Haibo Chen},
year={2025},
eprint={2509.00531},
archivePrefix={arXiv},
primaryClass={cs.MA},
url={https://arxiv.org/abs/2509.00531},
}
We gratefully acknowledge the open-source projects like MobileAgent, UI-TARS, and Qwen-VL, etc. We also thank the National Innovation Institute of High-end Smart Appliances for their support of this project.




