AutoGLM-Phone 是智谱 AI 推出的端侧智能体模型,具备通过自然语言指令直接操作手机 GUI(图形用户界面)的能力。它可以模拟人类操作,自动执行如"点外卖"、"查价格"、"发朋友圈"等跨应用任务。
本指南将带你完成从 算力 云服务器 搭建 、Docker 环境配置 、vLLM 模型加速部署 到 本地 ADB 联调 的全流程。通过本教程,你将构建一套属于自己的 AI 手机操作助手。
open-AutoGLM GitHub地址 :github.com/zai-org/Ope...
视频教程:www.bilibili.com/video/BV1dW...
一、注册算力云服务器账号
1.注册
注册账号:访问下方链接注册,可获取专属算力优惠券:
2.选购
2.1 显卡选择
建议选择显存 40G 左右的显卡(如 A40, A100-40G, 或 4090),以确保模型加载和推理的稳定性。

2.2 计费模式
推荐选择"按小时租用",灵活划算。

2.3 带宽配置
- 强烈建议将带宽拉满(最大值)。
- 原因:模型文件和 Docker 镜像体积巨大,低带宽会导致下载耗时极长。
- 注意:部分区域带宽速率一天仅允许修改一次,请谨慎操作。
- 预算有限也可选择 32Mbps(免费)下载速率在4M。

2.4 镜像选择
直接选择ubuntu22.04系统

2.5 端口映射
创建实例后,请务必查看控制台提供的外网 端口 与容器内端口 的对应关系。后续启动服务时,需根据此映射关系设置 -p 参数。
二、服务器环境配置 (Docker)
连接上服务器(SSH)后,首先需要配置 Docker 环境。
官方文档:docs.docker.com/engine/inst...
1. 清理旧版本
如果系统自带了旧版 Docker,建议先卸载以避免冲突:
arduino
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
2. 安装 Docker Engine
按照以下步骤安装最新版 Docker:
bash
# 1. 更新索引并安装依赖
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 2. 安装 Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 3. 验证安装
docker --version
3. 配置国内镜像加速(推荐)
为了提升拉取镜像的速度,建议配置国内加速源。
bash
# 编辑配置文件
sudo vim /etc/docker/daemon.json
在文件中按 i 键进入编辑模式,粘贴以下内容:
json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
]
}
保存退出(按 Esc 输入 :wq 回车),然后重启服务:
perl
sudo service docker restart
# 验证配置是否生效
sudo docker info | grep Mirrors -A 4
三、模型下载
我们需要将 ZhipuAI/AutoGLM-Phone-9B 模型下载到服务器的 /opt/model 目录。推荐使用 ModelScope(魔搭社区)进行下载。
1. 使用 ModelScope 下载(推荐)
bash
# 1. 安装下载工具
pip install modelscope
# 2. 创建目录并下载
mkdir -p /opt/model
modelscope download --model 'ZhipuAI/AutoGLM-Phone-9B' --local_dir '/opt/model'
2. 使用 Git LFS 下载
bash
git lfs install
cd /opt/model
git clone https://www.modelscope.cn/ZhipuAI/AutoGLM-Phone-9B.git
3. 使用 Python SDK 下载
ini
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/AutoGLM-Phone-9B')
四、部署 vLLM 推理服务
我们将使用 vLLM 框架来加速模型的推理。
1. 准备 NVIDIA Container Toolkit
bash
# 1. 检查宿主机驱动(应显示显卡信息表)
#报错或找不到命令:说明你宿主机还没装显卡驱动,请先安装 NVIDIA 驱动。可根据教程自行下载。https://blog.csdn.net/a772304419/article/details/146601092
nvidia-smi
# 2. 配置 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
# 3. 安装工具包并配置 Docker
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# 4. 生成配置文件
sudo nvidia-ctk runtime configure --runtime=docker
# 5. 重启
sudo systemctl restart docker
2. 启动vLLM 容器
下载并运行 vLLM 镜像,将模型路径映射到容器内部。
bash
# 拉取镜像
docker pull vllm/vllm-openai:v0.12.0
# 启动容器
# 注意:-p 8800:8000 表示将宿主机的8800端口映射到容器的8000端口
# 请根据你在"第一部分"中查看的实际外网端口情况修改 8800
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
3. 在容器内启动服务
进入容器终端后,执行以下命令:
css
# 1. 安装依赖 (忽略冲突警告)
pip install -U transformers --pre
# 2. 启动 API Server (严格复制以下命令)
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
注:--model 参数需指向容器内挂载的路径 /app/model 或者具体的子文件夹名。
4. 验证服务
模型服务启动后,可以使用检查脚本验证部署是否成功:
bash
python scripts/check_deployment_cn.py --base-url http://你的IP:你的端口/v1 --model 模型名称
脚本将发送测试请求并展示模型的推理结果,你可以根据输出判断模型部署是否正常工作。
基于给定的任务, 预期输出如下。如果思维链长度很短, 或者出现了乱码, 很可能是模型部署失败, 请仔细检查文档要求的配置和依赖。
markdown
<think>用户想要比较这个洗发水在京东和淘宝上的价格,然后选择最便宜的平台下单。当前在小红书app上,显示的是一个关于LUMMI MOOD洗发水的帖子。
我需要:
1. 先启动京东app,搜索这个洗发水
2. 查看京东的价格
3. 再启动淘宝app,搜索这个洗发水
4. 查看淘宝的价格
5. 比较价格后,选择最便宜的京东或淘宝下单
首先,我需要从当前的小红书界面退出,然后启动京东app。</think>
<answer>do(action="Launch", app="京东")
参数说明:
--base-url: 模型服务地址(根据实际部署地址修改)--model: 模型名称--messages-file: 可选,指定自定义测试消息文件(默认使用scripts/sample_messages.json)
五、客户端与真机连接 (本地电脑)
服务端准备就绪后,我们需要在本地电脑配置控制端,通过 ADB 控制安卓手机,并调用云端的 AI 模型。
硬件与环境准备
-
操作系统:Windows / macOS
-
Python:建议 Python 3.10+
-
安卓设备:Android 7.0+ 手机或模拟器。
-
ADB 工具:
-
配置 环境变量 (以 Windows 为例):点击查看教程
- 解压下载的包。
Win + R输入sysdm.cpl-> 高级 -> 环境变量。- 在
System Path中添加 ADB 解压路径。 - 命令行输入
adb version验证。
-
MacOS 配置方法 :在
Terminal或者任何命令行工具里
ruby
# 假设解压后的目录为 ~/Downlaods/platform-tools。如果不是请自行调整命令。
export PATH=${PATH}:~/Downloads/platform-tools
-
手机端设置
-
开启开发者模式:设置 -> 关于手机 -> 连续点击"版本号"直至提示已开启。
-
开启 USB 调试:设置 -> 开发者选项 -> 勾选"USB 调试"。
-
安装 ADB Keyboard:
- 下载并安装ADB Keyboard apk。
- 在手机"语言与输入法"设置中,将默认输入法切换为 ADB Keyboard。
部署控制端代码 (Open-AutoGLM)
在本地电脑上下载控制代码:
bash
# 1. 克隆仓库
git clone https://github.com/zai-org/Open-AutoGLM
cd Open-AutoGLM
# 2. 安装依赖
pip install -r requirements.txt
pip install -e .
连接设备
确保手机通过 USB 连接电脑,或处于同一 WiFi 下。
- USB 方式:
bash
adb devices
# 输出应包含 device ID
- WiFi 远程方式:
perl
# 需先用 USB 连接开启 tcpip
adb tcpip 5555
# 断开 USB,连接手机 IP
adb connect 192.168.x.x:5555
六、启动 AI 代理
一切准备就绪,现在让 AI 接管手机。
命令行运行
在本地 Open-AutoGLM 目录下运行:
csharp
python main.py \
--device-id <你的设备ID或IP:5555> \
--base-url http://<云服务器IP>:<映射端口>/v1 \
--model "autoglm-phone-9b" \
"打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"
- --device-id : 通过
adb devices获取的 ID。 - --base-url: 替换为你云服务器的公网 IP 和映射出的端口(例如 8800)。
- 最后的字符串: 就是你给 AI 下达的自然语言指令。
python API 远程连接
python
from phone_agent.adb import ADBConnection, list_devices
# 创建连接管理器
conn = ADBConnection()
# 连接远程设备
success, message = conn.connect("192.168.1.100:5555")
print(f"连接状态: {message}")
# 列出已连接设备
devices = list_devices()
for device in devices:
print(f"{device.device_id} - {device.connection_type.value}")
# 在 USB 设备上启用 TCP/IP
success, message = conn.enable_tcpip(5555)
ip = conn.get_device_ip()
print(f"设备 IP: {ip}")
# 断开连接
conn.disconnect("192.168.1.100:5555")
-
常见问题排查
- 连接被拒绝:检查云服务器防火墙是否放行了对应端口。
- ADB 掉线:WiFi 连接不稳定,尝试使用 USB 线连接。
- 模型乱码/无响应:检查 vLLM 启动参数是否完全一致,尤其是显存和 max-model-len 设置。