手把手教你部署Open-AutoGLM,让AI替你操作手机
1. 引言:什么是 Open-AutoGLM?
AutoGLM-Phone 是由智谱 AI 开源的手机端 AI Agent 框架,基于视觉语言模型(VLM)构建,能够以多模态方式理解安卓设备屏幕内容,并通过 ADB(Android Debug Bridge)实现自动化操作。用户只需输入自然语言指令,如“打开小红书搜索美食”,系统即可自动解析意图、识别界面元素、规划操作路径并执行点击、滑动、输入等动作。
该框架的核心优势在于:
- 无需 Root 设备:完全依赖 ADB 和标准 Android 接口。
- 跨应用任务支持:可完成涉及多个 App 的复杂流程,例如比价下单、信息收集等。
- 远程控制能力:支持 WiFi 连接,便于开发调试和无人值守运行。
- 安全机制完善:敏感操作需人工确认,验证码场景支持接管。
本教程将带你从零开始,完整部署 Open-AutoGLM 系统,涵盖云服务器配置、vLLM 模型服务搭建、本地 ADB 联调全流程,最终实现用一句话让 AI 自动操作你的手机。
2. 准备云端推理环境
2.1 选择合适的算力云平台
由于 AutoGLM-Phone-9B 是一个参数量达 90 亿的大模型,对显存要求较高,建议使用具备以下配置的 GPU 实例:
- GPU 显存 ≥ 40GB:推荐 A40、A100-40G 或 RTX 4090
- 操作系统:Ubuntu 22.04 LTS
- 网络带宽:建议拉满公网带宽(至少 32Mbps),避免大模型下载耗时过长
- 计费模式:按小时租用,灵活可控
注:部分云服务商提供新用户优惠券或免费试用额度,可优先选择支持国内镜像加速的服务商以提升体验。
2.2 安装 Docker 与容器运行时
连接到云服务器后,首先安装 Docker 引擎:
# 卸载旧版本 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done # 更新索引并安装依赖 sudo apt-get update sudo apt-get install ca-certificates curl gnupg # 添加官方 GPG 密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 添加仓库源 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装 Docker sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin验证安装是否成功:
docker --version2.3 配置国内镜像加速器
为加快后续镜像拉取速度,建议配置国内加速源:
sudo mkdir -p /etc/docker cat <<EOF | sudo tee /etc/docker/daemon.json { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io" ] } EOF # 重启 Docker 服务 sudo systemctl restart docker验证配置生效:
sudo docker info | grep Mirrors -A 42.4 下载 AutoGLM-Phone 模型
推荐使用 ModelScope 工具下载模型文件至/opt/model目录:
# 安装 modelscope pip install modelscope # 创建目录并下载模型 mkdir -p /opt/model modelscope download --model 'ZhipuAI/AutoGLM-Phone-9B' --local_dir '/opt/model'可选方式:也可使用 Git LFS 或 Python SDK 下载,确保模型完整无损。
2.5 部署 vLLM 推理服务
安装 NVIDIA Container Toolkit
确保宿主机已安装 NVIDIA 驱动:
nvidia-smi若未安装,请先手动安装对应驱动。然后配置容器支持:
# 添加 NVIDIA 容器仓库 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \ sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list # 安装工具包 sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker启动 vLLM 容器
拉取并启动 vLLM 容器,挂载模型目录:
docker pull vllm/vllm-openai:v0.12.0 docker run -it \ --entrypoint /bin/bash \ --gpus all \ -p 8800:8000 \ --ipc=host \ -v /opt/model:/app/model \ --name autoglm \ vllm/vllm-openai:v0.12.0进入容器后,安装必要依赖并启动 API 服务:
pip install -U transformers --pre python3 -m vllm.entrypoints.openai.api_server \ --served-model-name autoglm-phone-9b \ --allowed-local-media-path / \ --mm-encoder-tp-mode data \ --mm_processor_cache_type shm \ --mm_processor_kwargs "{\"max_pixels\":5000000}" \ --max-model-len 25480 \ --chat-template-content-format string \ --limit-mm-per-prompt "{\"image\":10}" \ --model /app/model \ --port 8000注意:请根据实际端口映射情况调整
-p参数,如外网访问端口为8800,则客户端应请求http://<IP>:8800/v1
2.6 验证模型服务可用性
在本地或服务器上运行测试脚本验证部署结果:
import requests base_url = "http://<your-server-ip>:8800/v1" headers = {"Content-Type": "application/json"} data = { "model": "autoglm-phone-9b", "messages": [ {"role": "user", "content": "当前屏幕显示什么?"} ], "max_tokens": 128 } response = requests.post(f"{base_url}/chat/completions", json=data, headers=headers) print(response.json())预期输出包含<think>和<answer>标签的结构化响应,表示模型已正确加载并可推理。
3. 配置本地控制端与真机连接
3.1 环境准备
- 操作系统:Windows 或 macOS
- Python 版本:建议 3.10+
- ADB 工具:需提前安装并加入环境变量
Windows 配置 ADB
- 下载 Android Platform Tools
- 解压后将路径添加至系统
PATH - 打开命令行执行
adb version验证
macOS 配置 ADB
export PATH=${PATH}:~/Downloads/platform-tools可将其写入.zshrc或.bash_profile永久生效。
3.2 手机端设置
开启开发者模式
设置 → 关于手机 → 连续点击“版本号”7次启用 USB 调试
设置 → 开发者选项 → 开启“USB 调试”安装 ADB Keyboard 输入法
- 下载地址:ADBKeyboard.apk
- 安装后,在“语言与输入法”中设为默认输入法
此步骤用于实现文本输入自动化,否则无法通过 ADB 发送中文字符。
3.3 部署 Open-AutoGLM 控制代码
在本地电脑执行:
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e .3.4 连接设备
USB 连接方式
adb devices输出示例:
List of devices attached ABCDEF1234567890 device记录设备 ID(如ABCDEF1234567890)
WiFi 远程连接方式
首次需通过 USB 连接启用 TCP/IP 模式:
adb tcpip 5555 adb disconnect adb connect 192.168.x.x:5555断开 USB 后仍可通过 IP 地址保持连接。
4. 启动 AI 代理执行任务
4.1 命令行方式运行
在Open-AutoGLM根目录下执行:
python main.py \ --device-id <your-device-id-or-ip:5555> \ --base-url http://<cloud-server-ip>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:来自adb devices的设备标识--base-url:云服务器上的 vLLM 服务地址- 最后字符串:自然语言指令,支持复杂语义理解
4.2 使用 Python API 编程调用
from phone_agent.adb import ADBConnection, list_devices # 初始化连接管理器 conn = ADBConnection() # 连接设备(支持 IP:Port) success, msg = conn.connect("192.168.1.100:5555") print(f"连接状态: {msg}") # 列出所有连接设备 devices = list_devices() for dev in devices: print(f"{dev.device_id} - {dev.connection_type.value}") # 获取设备 IP(适用于 USB 转无线) if conn.enable_tcpip(5555): ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")此方式适合集成进自动化系统或 Web 服务中。
4.3 典型应用场景示例
| 用户指令 | AI 行为 |
|---|---|
| “帮我查一下今天北京天气” | 打开天气 App → 输入城市 → 返回预报结果 |
| “把这张图发给张三微信” | 截图 → 打开微信 → 搜索联系人 → 发送图片 |
| “对比京东和淘宝上某洗发水价格” | 多轮跳转 App → 提取价格 → 输出最低价平台 |
AI 会自动生成<think>思维链,明确每一步逻辑,确保可解释性和可控性。
5. 常见问题与排查建议
5.1 连接失败类问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
adb devices无设备 | 未开启 USB 调试 | 检查开发者选项 |
unauthorized设备 | 未授权调试 | 手机弹窗点击“允许” |
connection refused | 云服务器防火墙阻断 | 放行对应端口(如 8800) |
| ADB 频繁掉线 | WiFi 不稳定 | 改用 USB 连接 |
5.2 模型服务异常
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 返回乱码或空响应 | vLLM 参数错误 | 检查--max-model-len是否为 25480 |
| OOM 错误 | 显存不足 | 更换 A100/A40 等高显存卡 |
| 图像编码失败 | --allowed-local-media-path未设置 | 必须包含/ |
| 多图处理失败 | --limit-mm-per-prompt设置不当 | 确保"image":10 |
5.3 输入法相关问题
- 若无法输入中文,请确认:
- ADB Keyboard 已安装
- 已在系统设置中设为默认输入法
- 无其他输入法抢占焦点
6. 总结
本文详细介绍了如何从零部署 Open-AutoGLM 这一强大的手机端 AI Agent 框架,覆盖了以下关键环节:
- 云端环境搭建:选用高性能 GPU 实例,配置 Docker 与 vLLM 加速推理;
- 模型下载与服务部署:使用 ModelScope 获取 ZhipuAI/AutoGLM-Phone-9B 模型,并通过 vLLM 提供 OpenAI 兼容接口;
- 本地控制端配置:安装 ADB、设置手机权限、部署 Open-AutoGLM 客户端;
- 设备连接与任务执行:支持 USB 与 WiFi 两种连接方式,可通过 CLI 或 API 下达自然语言指令;
- 问题排查指南:针对常见连接、模型、输入问题提供解决方案。
Open-AutoGLM 的出现标志着 AI 对移动设备的操控能力迈入新阶段。未来可广泛应用于自动化测试、无障碍辅助、智能客服、个人数字助理等领域。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。