Open-AutoGLM部署教程:云服务器端口映射配置步骤
Open-AutoGLM – 智谱开源的手机端AI Agent框架。该项目基于视觉语言模型,打造了一个能“看懂屏幕、听懂指令、自动操作”的智能手机助理系统。通过自然语言下达任务,AI即可理解当前界面状态,自主规划并执行点击、滑动、输入等操作,真正实现“动口不动手”的交互体验。
AutoGLM-Phone 是一个基于视觉语言模型的 AI 手机智能助理框架。它能以多模态方式理解屏幕内容,并通过 ADB 自动操控设备。用户只需用自然语言下指令,如“打开小红书搜美食”,模型即可解析意图、理解界面并自动规划、执行操作流程,无需手动点击。Phone Agent 是在此基础上构建的完整应用框架,支持远程调试、敏感操作确认和人工接管机制,适用于自动化测试、辅助操作、远程控制等多种场景。
本文将重点讲解如何在云服务器上部署 Open-AutoGLM 的推理服务,并完成端口映射配置,使本地电脑可通过网络调用云端 AI 模型能力,实现对安卓设备的远程智能控制。
1. 云服务器环境准备与模型部署
要让本地设备调用 AI 能力,首先需要在云服务器上部署模型推理服务。Open-AutoGLM 使用 vLLM 作为后端推理引擎,因此我们需要先搭建运行环境。
1.1 服务器基础环境
建议使用具备 GPU 的云服务器(如 NVIDIA T4 或 A10),操作系统推荐 Ubuntu 20.04+。
安装必要依赖:
sudo apt update sudo apt install -y python3-pip git docker.io nvidia-docker2确保 CUDA 驱动和 NVIDIA Container Toolkit 已正确安装:
nvidia-smi # 应能看到 GPU 信息 docker run --rm --gpus all nvidia/cuda:12.1-base nvidia-smi # 测试 Docker 调用 GPU1.2 拉取并运行 vLLM 镜像
Open-AutoGLM 推荐使用 vLLM 提供 OpenAI 兼容 API 接口。我们通过 Docker 启动服务:
docker run -d \ --gpus all \ --shm-size 1g \ -p 8800:8000 \ --name autoglm-vllm \ vllm/vllm-openai:v0.5.5 \ --model zaihui/autoglm-phone-9b \ --dtype half \ --max-model-len 4096 \ --gpu-memory-utilization 0.9注意:
-p 8800:8000表示将容器内的 8000 端口映射到主机的 8800 端口--model指定 HuggingFace 上的官方模型--gpu-memory-utilization 0.9提高显存利用率,避免 OOM- 若显存不足可尝试添加
--quantization awq进行量化加速
启动后可通过以下命令查看日志:
docker logs -f autoglm-vllm当看到Uvicorn running on http://0.0.0.0:8000字样时,表示服务已就绪。
1.3 验证云端 API 可访问性
在本地电脑或另一台机器上测试接口是否正常:
curl http://<你的云服务器IP>:8800/v1/models预期返回包含autoglm-phone-9b的 JSON 响应。若无法连接,请检查以下几点:
- 安全组/防火墙是否放行了8800 端口
- 云服务商控制台是否开启入站规则(TCP 8800)
- 本地网络是否允许出站请求
一旦确认 API 可达,说明云端模型服务已成功部署并对外提供服务。
2. 本地控制端环境搭建
接下来我们在本地电脑配置控制端,用于连接手机设备并向云端模型发送推理请求。
2.1 硬件与环境要求
- 操作系统:Windows 或 macOS
- Python 版本:建议 Python 3.10+
- 安卓设备:Android 7.0+ 的真实手机或模拟器
- ADB 工具:Android Debug Bridge,用于设备通信
2.2 安装 ADB 工具
Windows 用户
- 下载 Android SDK Platform Tools
- 解压到任意目录(如
C:\platform-tools) - 添加路径至系统环境变量:
Win + R输入sysdm.cpl- 进入“高级”→“环境变量”
- 在“系统变量”中找到
Path,点击编辑 → 新建 → 添加解压路径
- 打开命令行输入:
adb version若显示版本号则安装成功。
macOS 用户
在终端执行:
# 假设解压目录为 ~/Downloads/platform-tools export PATH=${PATH}:~/Downloads/platform-tools可将其写入.zshrc或.bash_profile实现永久生效:
echo 'export PATH=${PATH}:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc再次运行adb version验证。
3. 手机端设置与设备连接
3.1 开启开发者选项与 USB 调试
- 进入手机“设置” → “关于手机”
- 连续点击“版本号”7次,直到提示“您已进入开发者模式”
- 返回设置主菜单 → “开发者选项”
- 启用“USB 调试”功能
部分品牌还需额外开启“USB 调试(安全设置)”或“允许通过 USB 安装应用”。
3.2 安装 ADB Keyboard(关键步骤)
由于 AI 代理需自动输入文字,而大多数输入法不支持 ADB 文字注入,必须使用专用输入法。
- 下载 ADB Keyboard APK 并安装
- 进入“设置” → “语言与输入法” → “默认键盘”
- 切换为ADB Keyboard
这样 AI 才能通过命令实现文本输入,例如:
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "hello world"4. 部署 Open-AutoGLM 控制代码
在本地电脑克隆项目仓库并安装依赖:
# 克隆项目 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 创建虚拟环境(推荐) python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate.bat (Windows) # 安装依赖 pip install -r requirements.txt pip install -e .安装完成后,即可使用main.py启动代理。
5. 设备连接方式详解
5.1 USB 连接方式(稳定推荐)
使用数据线将手机连接电脑,首次连接会弹出授权提示,请点击“允许”。
验证设备是否识别:
adb devices输出应类似:
List of devices attached ABCDEF1234567890 device其中ABCDEF1234567890即为设备 ID。
5.2 WiFi 远程连接(适合无线场景)
若想摆脱数据线束缚,可通过 WiFi 连接设备。
第一步:使用 USB 连接并启用 TCP/IP 模式
adb tcpip 5555此命令让设备监听 5555 端口的 ADB 请求。
第二步:断开 USB,通过 IP 连接
获取手机局域网 IP(可在“设置”→“WLAN”中查看),然后执行:
adb connect 192.168.x.x:5555连接成功后,再次运行adb devices应能看到 IP 地址形式的设备条目。
提示:WiFi 连接可能因休眠断开,建议关闭手机自动锁屏或保持屏幕常亮。
6. 启动 AI 代理并执行任务
一切准备就绪后,即可启动 AI 代理,让它接管手机操作。
6.1 命令行方式启动
在项目根目录运行:
python main.py \ --device-id ABCDEF1234567890 \ --base-url http://<云服务器公网IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:从adb devices获取的设备标识--base-url:指向你云服务器上 vLLM 提供的 OpenAI 兼容接口- 最后的字符串:自然语言指令,AI 将据此理解目标并执行操作
执行过程中,你会看到 AI 不断截图上传、分析界面、生成动作指令(如点击坐标、滑动方向),并在设备上实时执行。
6.2 使用 Python API 编程调用
除了命令行,也可在脚本中集成调用:
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}") # 获取设备 IP(仅限已连接设备) ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")该 API 支持批量设备管理、状态监控、异常处理等高级功能,适合集成进自动化平台。
7. 常见问题与排查建议
7.1 连接失败:adb devices 显示 unauthorized
原因:未授权电脑调试权限
解决:手机上弹出的“允许 USB 调试?”对话框中点击“允许”
7.2 ADB 连接频繁断开(尤其是 WiFi 模式)
原因:手机休眠导致网络中断
建议:
- 关闭自动锁屏
- 在开发者选项中关闭“USB 调试超时”
- 使用 USB 连接更稳定
7.3 模型无响应或返回乱码
可能原因:
- vLLM 启动参数错误(特别是
max-model-len设置过小) - 显存不足导致推理崩溃
- 模型未正确加载(检查日志是否有
Loaded model提示)
解决方案:
- 增加
--max-model-len 4096 - 添加
--gpu-memory-utilization 0.9 - 使用
nvidia-smi观察显存占用 - 查看
docker logs autoglm-vllm定位错误
7.4 云服务器端口无法访问
检查项:
- 是否在云平台安全组中放行8800 端口(或其他自定义映射端口)
- 本地是否被防火墙拦截
- 是否误用了内网 IP 而非公网 IP
- vLLM 容器是否绑定到了
0.0.0.0而非127.0.0.1
可用以下命令测试端口连通性:
telnet <公网IP> 8800 # 或 nc -zv <公网IP> 88008. 总结
本文详细介绍了 Open-AutoGLM 的完整部署流程,重点围绕云服务器端口映射配置这一核心环节展开。我们完成了以下关键步骤:
- 在云服务器上使用 Docker 部署 vLLM 推理服务,并通过
-p 8800:8000映射端口 - 在本地电脑安装 ADB 工具链,配置开发环境
- 设置手机开发者选项与 ADB Keyboard,确保可被远程控制
- 通过 USB 或 WiFi 方式连接设备
- 使用
main.py调用云端模型,实现自然语言驱动的自动化操作 - 提供常见问题排查指南,保障部署稳定性
整个系统实现了“本地采集画面 + 云端理解决策 + 本地执行操作”的闭环架构,充分发挥了边缘设备与云计算的协同优势。
现在,你可以尝试更多复杂指令,比如:“登录我的淘宝账号,搜索‘蓝牙耳机’,按销量排序,加入购物车前三个商品”。随着模型不断迭代,未来甚至能处理跨 App 多步骤任务,真正成为你的数字分身。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。