一、 产品概述与核心能力
AutoGLM-Phone 是智谱 AI 推出的端侧智能体模型,具备通过自然语言指令直接操作手机 GUI(图形用户界面)的能力。根据官方资料,它是一种基于图形用户界面(GUI)的自主任务完成智能体,能够模拟人类操作手机,执行社交媒体互动、在线购物、酒店预订等跨应用任务。
其核心架构融合了大语言模型的语义理解与任务规划能力,实现了从"思考"到"行动"的闭环。用户通过自然语言下达指令,AutoGLM-Phone 可自动分解任务、定位屏幕元素、执行点击/滑动等操作,并处理任务执行中的异常情况。
二、 部署前准备:环境与资源规划
1. 算力云服务器选购与配置
1.1 服务器规格选择
- 显卡 :建议选择显存 40G 左右的显卡(如 A40, A100-40G, 或 4090),以确保 AutoGLM-Phone-9B 模型加载和推理的稳定性。
- 计费模式:推荐选择"按小时租用",灵活划算。
- 带宽配置 :强烈建议将带宽拉至最大值。模型文件和 Docker 镜像体积巨大,低带宽会导致下载耗时极长。
- 系统镜像 :直接选择 Ubuntu 22.04 系统。
- 端口映射 :创建实例后,务必记录控制台提供的外网端口 与容器内端口的对应关系,用于后续服务映射。
1.2 基础环境连接
通过 SSH 连接至您租用的云服务器。
bash
ssh username@your_server_ip
2. Docker 环境安装与配置
2.1 清理旧版本并安装 Docker Engine
执行以下命令安装最新版 Docker:
bash
# 更新索引并安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl
# 添加 Docker 官方 GPG 密钥
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
# 添加 Docker APT 源
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
# 安装 Docker 及相关组件
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
docker --version
2.2 配置国内镜像加速
编辑 Docker 守护进程配置文件以提升镜像拉取速度。
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 回车),然后重启 Docker 服务。
bash
sudo service docker restart
# 验证配置生效
sudo docker info | grep Mirrors -A 4
三、 模型下载与准备
我们需要将 ZhipuAI/AutoGLM-Phone-9B 模型下载到服务器的 /opt/model 目录。推荐使用 ModelScope(魔搭社区)进行下载。
1. 使用 ModelScope 下载(推荐)
bash
# 安装下载工具
pip install modelscope
# 创建目录并下载模型
sudo mkdir -p /opt/model
sudo chmod 777 /opt/model # 确保有写入权限
modelscope download --model 'ZhipuAI/AutoGLM-Phone-9B' --local_dir '/opt/model'
2. 备用下载方案
若 ModelScope 下载缓慢,可使用 Git LFS 或 Python SDK 作为备用方案。
bash
# 方案二:Git LFS
git lfs install
cd /opt/model
git clone https://www.modelscope.cn/ZhipuAI/AutoGLM-Phone-9B.git
# 方案三:Python SDK
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/AutoGLM-Phone-9B')
四、 使用 vLLM 部署高性能推理服务
vLLM 框架能显著提升大模型推理的吞吐量和效率。我们将通过 Docker 运行 vLLM 服务。
1. 准备 NVIDIA Container Toolkit
确保宿主机已安装 NVIDIA 驱动,并配置容器工具包。
bash
# 检查宿主机 NVIDIA 驱动
nvidia-smi
# 配置 NVIDIA 容器库(若 nvidia-smi 正常,此步可跳过)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
2. 启动 vLLM 推理服务容器
使用 Docker 命令启动服务。请将 <your_cloud_port> 替换为云服务器控制台映射给你的外网端口(例如 30001)。
bash
docker run -d --gpus all \
-p <your_cloud_port>:8000 \
-v /opt/model:/app/model \
--name autoglm-vllm \
vllm/vllm-openai:latest \
--model /app/model \
--served-model-name AutoGLM-Phone-9B \
--max-model-len 8192 \
--tensor-parallel-size 1
参数说明:
-p <your_cloud_port>:8000: 将容器内的 8000 端口映射到宿主机外网端口。-v /opt/model:/app/model: 将宿主机模型目录挂载到容器内。--gpus all: 允许容器使用所有 GPU。--max-model-len 8192: 设置模型最大上下文长度。--tensor-parallel-size 1: 设置张量并行大小,单卡设为 1。
3. 验证服务状态
服务启动后,可通过以下命令检查日志和进行 API 测试。
bash
# 查看容器日志
docker logs -f autoglm-vllm
# 使用 curl 测试 OpenAI 兼容接口
curl http://localhost:<your_cloud_port>/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "AutoGLM-Phone-9B",
"prompt": "请打开微信",
"max_tokens": 100,
"temperature": 0.1
}'
五、 本地 ADB 连接与 AutoGLM-Controller 配置
模型服务部署完成后,需在本地环境配置 Android 设备连接与控制端。
1. 安卓设备无线 ADB 调试配置
- 进入手机「设置 > 开发者选项」,启用「无线调试」。
- 选择「使用配对码配对设备」,记下显示的 IP 地址、端口和配对码。
- 在本地电脑(与手机在同一 WiFi 下)执行配对命令:
bash
adb pair <手机IP地址>:<配对端口>
# 根据提示输入配对码
- 配对成功后,执行连接命令:
bash
adb connect <手机IP地址>:<调试端口>
- 验证连接:
bash
adb devices
# 应显示已连接的设备
2. 配置并运行 AutoGLM-Controller 应用
AutoGLM-Controller 是连接 AI 服务与手机 ADB 的桥梁。根据开源项目指南,需进行以下配置:
-
获取项目 :从 GitHub 克隆项目。
bashgit clone https://github.com/Chenhaja/Voice-Control-AutoGLM-Android-Termux.git -
配置讯飞语音 SDK (如需语音控制):
- 在
SpeechApplication中填写个人讯飞 appID。 - 将 SDK 文件(
Msc.jar及Jnilibs目录下的.so文件)放入项目指定位置。
- 在
-
修改服务地址 :在应用配置中,将 AI 服务地址指向你部署的云服务器
http://<你的服务器IP>:<你的外网端口>/v1。 -
编译并运行应用。
六、 启动与执行:连接 AI 与手机
1. 启动完整的 AutoGLM-Phone 服务链
在本地运行 AutoGLM-Phone 主程序,并指向云端 vLLM 服务。
bash
# 假设你已克隆 open-AutoGLM 官方仓库
cd Open-AutoGLM
# 启动主程序,连接云端模型服务和本地 ADB
python main.py \
--base-url http://<你的服务器IP>:<你的外网端口>/v1 \
--model "AutoGLM-Phone-9B" \
--android-mode
关键参数 --android-mode:此参数用于启用与 AutoGLM-Controller 应用的通信通道,是实现手机操作的关键。
2. 执行自然语言指令
启动成功后,即可通过命令行或集成的语音接口向 AutoGLM-Phone 发送指令。例如:
- "帮我点一份附近评分最高的外卖。"
- "打开抖音,找到第一条视频并点赞。"
- "查一下明天从北京到上海的航班,按价格排序。"
模型将理解指令,通过 ADB 控制手机自动执行一系列操作,并返回任务执行结果。
七、 总结与关键点
根据官方架构与部署实践,成功运行 AutoGLM-Phone 需紧密整合三个核心层:
- 云端推理层:基于 vLLM 的高性能模型服务,负责核心的任务理解与规划。确保显卡显存充足(>=40G)并正确配置端口映射是此层稳定的基础。
- 本地控制层:AutoGLM-Controller 应用与 ADB。必须确保稳定的 WiFi 网络环境以实现无线 ADB 连接,并正确配置应用中的服务端地址。
- 通信与执行层 :
--android-mode参数是连接 AI 决策与物理操作的关键开关,它激活了与控制器应用的文件或 Socket 通信,将 AI 生成的"操作序列"转换为实际的 ADB 命令。
此部署方案将计算密集的模型推理置于云端,本地只需处理轻量的控制通信,实现了资源与效率的平衡。对于追求更高隐私或离线可用的场景,可参考社区方案,在 Termux 或本地高性能机器上部署完整的模型,但需应对更复杂的依赖与环境配置挑战。