2025-12-10
如果你想要改变世界,先改变你自己。——圣雄甘地
Open-AutoGLM 与 Phone Agent:把“会用手机”的 AI 真正带到你的桌面
在移动端的真实世界里,很多任务都需要“看懂屏幕 + 点按滑动 + 输入搜索 + 等待跳转”。Open-AutoGLM 的 Phone Agent 正是为此而生:它基于多模态视觉语言模型(VLM)理解手机屏幕内容,通过 ADB 远程操控设备,自动完成从意图解析到动作执行的完整流程。你只需用自然语言提出需求,例如“打开美团搜索附近的火锅店”,Agent 即会理解当前界面、规划步骤、执行操作、并在敏感场景请求确认或人工接管,保障安全与可控。
- 仓库地址:zai-org/Open-AutoGLM
- README(本文内容基于此):README.md
- 模型下载:
- AutoGLM-Phone-9B(中文应用优化):
- AutoGLM-Phone-9B-Multilingual(支持英文场景):
- 相关部署参考:与 GLM-4.1V-9B-Thinking 架构一致,可参考 GLM-V
- 重要声明:本项目仅供研究学习,严禁用于任何违法或违规用途。详见使用条款:privacy_policy.txt
项目核心能力一览
- 多模态屏幕理解:视觉语言模型对当前手机界面进行感知(图像 + 文本),精准识别元素与上下文。
- 自动化操作规划:根据意图生成可执行的动作序列(启动应用、点击、输入、滑动、返回、等待等)。
- ADB 设备控制:本地或远程(WiFi/TCP/IP)连接设备,执行高可靠的系统级操作。
- 安全机制:内置敏感操作确认、登录/验证码等场景的“人工接管”流程,保证安全与合规。
- 中文/英文双语:中文默认系统提示词(System Prompt),可一键切换英文(适用于英文内容界面)。
- 应用生态:支持 50+ 主流中文 App(微信、淘宝、美团、抖音、爱奇艺、12306、滴滴…),适合真实生活与工作场景。
环境与设备准备
- Python 环境
-
推荐 Python 3.10+
-
安装依赖:
1
2pip install -r requirements.txt
pip install -e .
- ADB(Android Debug Bridge)
- 下载官方平台工具并加入 PATH:platform-tools
-
macOS 示例:
1
export PATH=${PATH}:~/Downloads/platform-tools -
Windows 可参考第三方教程(例如 CSDN)配置环境变量
-
- Android 7.0+ 设备或模拟器
- 启用“开发者模式”和“USB 调试”
- 使用数据线连接,确认
adb devices能看到设备 - 注意权限与输入法设置(ADB Keyboard 需安装并在系统输入法中启用)
- ADB Keyboard(用于文本输入)
- 安装包:ADBKeyboard.apk
- 在系统设置中启用该输入法
启动模型服务(vLLM 方案)
Open-AutoGLM 提供 OpenAI 兼容的 REST 接口。以下示例使用 vLLM 启动本地服务,严格按照提供的启动参数配置:
1 | |
- 成功后本地服务地址为
http://localhost:8000/v1 - 若在远程服务器部署,使用服务器 IP 访问
- 也可使用 SGlang 等推理引擎,参考
requirements.txt的 For Model Deployment 章节
快速体验:命令行与 Python API
你可以直接用 CLI 发起指令,也可以在 Python 中创建 Phone Agent 执行任务。
命令行使用
1 | |
Python API 使用
1 | |
远程 ADB 调试(无线/TCP/IP)
无需 USB,Phone Agent 支持在同一网络环境下通过 WiFi/TCP/IP 连接设备,适合远程联调与多设备测试。
手机端开启无线调试
- 确保手机与电脑在同一 WiFi
- 开启“开发者选项”中的无线调试(系统设置路径因机型而异)
电脑端连接设备
1 | |
Python API 远程连接示例
1 | |
多设备与指定执行
1 | |
Prompt 与配置:做“懂你”的手机管家
System Prompt 切换
- 中文(默认):
--lang cn,配置文件phone_agent/config/prompts_zh.py - 英文:
--lang en,配置文件phone_agent/config/prompts_en.py
你可以直接修改对应配置文件,增强特定领域能力,或禁用某些应用(通过注入 app 名称)。
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
PHONE_AGENT_BASE_URL |
模型 API 地址 | http://localhost:8000/v1 |
PHONE_AGENT_MODEL |
模型名称 | autoglm-phone-9b |
PHONE_AGENT_MAX_STEPS |
每个任务最大步数 | 100 |
PHONE_AGENT_DEVICE_ID |
ADB 设备 ID | 自动检测 |
PHONE_AGENT_LANG |
语言(cn 或 en) |
cn |
模型配置(Python)
1 | |
Agent 配置(Python)
1 | |
调试与可观测性:让过程“看见”
开启 verbose=True 后,Agent 会打印每一步的“思考过程”和“执行动作”,示意如下:
1 | |
这非常适合教学演示、场景复盘与错误排查。
可执行动作与应用支持
- 动作类型:
Launch(启动应用)、Tap(点击坐标)、Type(文本输入)、Swipe(滑动)、Back、Home、Long Press、Double Tap、Wait(等待页面加载)、Take_over(人工接管) - 支持应用(部分):微信、QQ、微博、淘宝、京东、拼多多、美团、饿了么、肯德基、携程、12306、滴滴出行、bilibili、抖音、爱奇艺、网易云音乐、QQ音乐、喜马拉雅、大众点评、高德地图、百度地图、小红书、知乎、豆瓣…
完整列表:python main.py --list-apps
回调机制:安全与人工接管
你可以自定义敏感操作确认与人工接管逻辑:
1 | |
二次开发与项目结构
-
开发依赖:
1
pip install -e ".[dev]" -
运行测试:
1
pytest tests/ -
目录结构(节选):
1
2
3
4
5
6phone_agent/
├── agent.py # PhoneAgent 主类
├── adb/ # ADB 工具(连接/截图/输入/设备控制)
├── actions/ # 操作执行器
├── config/ # 应用映射与中/英文 Prompt
└── model/ # OpenAI 兼容模型客户端
常见问题速览
- 设备未找到:重启 ADB 服务(
adb kill-server && adb start-server && adb devices) - 文本输入不工作:确认 ADB Keyboard 安装并启用为当前输入法
- 截图黑屏:可能是敏感页面(支付/密码/银行),Agent 会请求人工接管
- Windows 编码异常(
UnicodeEncodeError gbk):运行前设置PYTHONIOENCODING=utf-8 - 非 TTY 环境交互模式报错:改用非交互模式直接指定任务,或在 TTY 终端运行
引用与学术参考
如果该项目对你有帮助,请引用以下论文:
1 | |
结语:让 AI“用手机”,从此不再是演示
Open-AutoGLM 的 Phone Agent 把“屏幕理解 + 动作执行 + 安全机制”合到一条可靠的工程链路里,既适合研究与教学,也能落地到真实的移动应用场景。无论你是做智能助手、自动化测试、RPA 方案,还是个人效率工具,它都能成为让手机端自动化“真的可用”的基础设施。
动手试试吧:安装 ADB,启动模型服务,连接一台设备,用自然语言给个任务。看着它“思考-执行-完成”,你就会明白——这不仅是一个 Demo,而是下一代人机交互的开始。