项目介绍
智谱开源了 AutoGLM 项目,这是一个集模型、代码、框架和 Demo 于一体的手机自动化智能体解决方案。项目提供的资源包括 MIT 许可的核心模型、用于手机使用(Phone Use)的能力框架与工具链、可直接运行的 Demo(覆盖 50+ 高频中文 App)、针对 Android 的适配层与示例工程,以及详细的文档和上手指南。
Phone Agent 是基于 AutoGLM 构建的手机端智能助理框架,它能够以多模态方式理解手机屏幕内容,并通过自动化操作帮助用户完成任务。系统通过 ADB(Android Debug Bridge)来控制设备,以视觉语言模型进行屏幕感知,再结合智能规划能力生成并执行操作流程。用户只需用自然语言描述需求,如“打开小红书搜索美食”,Phone Agent 即可自动解析意图、理解当前界面、规划下一步动作并完成整个流程。系统还内置敏感操作确认机制,并支持在登录或验证码场景下进行人工接管。同时,它提供远程 ADB 调试能力,可通过 WiFi 或网络连接设备,实现灵活的远程控制与开发。
模型下载地址
建议根据需求选择模型:处理纯中文任务可选用 AutoGLM-Phone-9B;如需处理英文内容,则使用多语言版本 AutoGLM-Phone-9B-Multilingual,其能力足以覆盖绝大多数手机操作场景。
环境准备
1. Python 环境
建议使用 Python 3.10 及以上版本。
2. ADB (Android Debug Bridge)
- 下载官方 ADB 安装包,并解压到自定义路径。
- 将 ADB 工具的路径添加到系统的环境变量中。
- MacOS/Linux: 在终端中执行
export PATH=${PATH}:~/你的/platform-tools路径。
- Windows: 可参考相关教程进行配置。
3. Android 设备准备
需要一台 Android 7.0+ 的设备或模拟器,并启用开发者模式和 USB 调试。
- 启用开发者模式:进入“设置 > 关于手机”,连续快速点击“版本号”7-10次,直到出现“您已处于开发者模式”的提示。
- 启用 USB 调试:进入“设置 > 系统 > 开发者选项”,找到并开启“USB 调试”开关。
- 验证连接:使用 USB 数据线连接手机和电脑,在命令行执行
adb devices。如果看到设备序列号并显示 device 状态,则表示连接成功。部分机型在设置后可能需要重启才能生效。
请务必仔细检查手机端弹出的 USB 调试授权提示,并选择“允许”。

4. 安装 ADB Keyboard(用于文本输入)
在安卓设备上下载并安装 ADB Keyboard 应用。安装完成后,需要进入系统“设置 > 语言与输入法”中,将“ADB Keyboard”启用为当前输入法。
部署与运行
1. 安装项目依赖
克隆项目代码后,在项目根目录下执行以下命令安装必要的Python依赖包:
pip install -r requirements.txt
pip install -e .
2. 连接安卓设备
使用一根可传输数据的 USB 线缆连接手机和电脑,并确保已按照上文开启 USB 调试。通过以下命令确认设备已被识别:
adb devices
命令行应返回类似 1234567890ABCDEF device 的设备信息。
3. 启动模型服务
推荐使用 vLLM 框架高效部署模型。首先从 Hugging Face 或 ModelScope 下载模型文件:
- 中文版:
zai-org/AutoGLM-Phone-9B
- 中英双语版:
zai-org/AutoGLM-Phone-9B-Multilingual
使用以下命令启动模型服务(参数已优化):
python -m vllm.entrypoints.openai.api_server \
--model zai-org/AutoGLM-Phone-9B \
--served-model-name autoglm-phone-9b \
--port 8000 \
--max-model-len 25480 \
--limit-mm-per-prompt image=10 \
--mm_processor_kwargs ‘{“max_pixels”: 5000000}’ \
--chat-template-content-format string \
--allowed-local-media-path /
服务成功启动后,终端会显示 Uvicorn running on http://0.0.0.0:8000。此时,模型 API 服务地址为:http://localhost:8000/v1(服务器部署请替换为对应 IP)。
4. 使用 Phone Agent
方式一:通过命令行交互
这是最直接的使用方式。
# 启动交互式对话模式
python main.py --base-url http://localhost:8000/v1
# 执行单条自然语言指令
python main.py --base-url http://localhost:8000/v1 “打开美团,搜个附近评分最高的火锅店”
# 使用英文指令
python main.py --lang en --base-url http://localhost:8000/v1 “Open WeChat and send a message to Mom”
# 查看当前支持的应用列表
python main.py --list-apps
方式二:通过 Python API 调用
可以在自己的脚本中轻松集成自动化能力。
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
agent = PhoneAgent(ModelConfig(
base_url=“http://localhost:8000/v1”,
model_name=“autoglm-phone-9b”
))
agent.run(“打开淘宝,搜降噪耳机,然后截图发我”)
远程调试配置
Phone Agent 支持通过 WiFi 网络进行远程 ADB 调试,无需保持 USB 连接。
配置步骤
- 在手机上启用无线调试:确保手机与电脑处于同一 WiFi 网络。进入“开发者选项”,找到并开启“无线调试”。

- 在电脑上连接设备:记录手机无线调试界面显示的 IP 地址和端口号(通常是 5555),使用以下命令连接:
adb connect 192.168.1.100:5555
- 验证连接:执行
adb devices,应能看到 192.168.1.100:5555 device。
指定远程设备运行任务
在运行 Phone Agent 时,通过 --device-id 参数指定远程设备:
python main.py --device-id 192.168.1.100:5555 --base-url http://localhost:8000/v1 “打开抖音刷视频”
支持的应用与操作
Phone Agent 目前支持超过 50 款主流中文应用,涵盖社交、购物、娱乐、出行等多个类别。运行 python main.py --list-apps 可查看完整列表。
| Agent 能够执行的基础操作包括: |
操作 |
描述 |
Launch |
启动应用 |
Tap |
点击指定坐标 |
Type |
输入文本 |
Swipe |
滑动屏幕 |
Back |
返回上一页 |
Home |
返回桌面 |
Long Press |
长按 |
Double Tap |
双击 |
Wait |
等待页面加载 |
Take_over |
请求人工接管(用于登录、验证码等复杂场景) |
高级功能:自定义回调
你可以定义回调函数来处理敏感操作确认和人工接管请求,以实现更安全的自动化流程。
def my_confirmation(message: str) -> bool:
“”“敏感操作确认回调”“”
return input(f“确认执行 {message}?(y/n): “).lower() == “y”
def my_takeover(message: str) -> None:
“”“人工接管回调”“”
print(f“请手动完成: {message}”)
input(“完成后按回车继续...”)
agent = PhoneAgent(
confirmation_callback=my_confirmation,
takeover_callback=my_takeover,
)
示例与二次开发
项目 examples/ 目录下提供了更多使用示例,包括基础任务、单步调试和批量任务执行等。
进行二次开发前,请安装开发依赖:
pip install -e “.[dev]”
运行测试:
pytest tests/
项目地址
开源代码与最新文档请访问项目 GitHub 主页:
https://github.com/zai-org/Open-AutoGLM