Open-AutoGLM成本优化案例:零显卡环境部署实操手册
本文介绍了如何在星图GPU平台上自动化部署智谱开源的Open-AutoGLM手机端AI Agent框架,实现低成本AI手机助手。该方案通过云端模型服务与本地控制分离的架构,让用户能够通过自然语言指令,指挥AI自动完成如打开应用、搜索内容等手机操作任务。
Open-AutoGLM成本优化案例:零显卡环境部署实操手册
1. 引言
想不想让AI帮你操作手机?比如,你随口说一句“帮我打开小红书,搜一下周末去哪玩”,AI就能自动完成解锁、打开App、搜索、浏览这一系列操作。这听起来像是科幻电影里的场景,但现在,借助智谱开源的Open-AutoGLM框架,这个想法已经可以落地了。
Open-AutoGLM,特别是其Phone Agent项目,就是一个能“看懂”手机屏幕并“动手”操作的AI智能助理。它通过视觉语言模型理解屏幕上显示的内容,再通过ADB(安卓调试桥)自动执行点击、滑动等操作,把我们的自然语言指令变成手机上的实际行动。
不过,运行这样一个强大的AI模型,通常需要昂贵的显卡(GPU)来提供算力,这成了很多个人开发者和中小团队尝试的门槛。今天,我要分享的,正是一个极具性价比的解决方案:如何在零显卡的普通云服务器上,成功部署并运行Open-AutoGLM的AI手机助手。
本文将手把手带你走通整个流程,从云端模型服务的搭建,到本地电脑与手机的连接控制,最终实现用一句自然语言命令AI操作手机。我们追求的目标是:低成本、可实操、每一步都有结果。
2. 项目核心:Phone Agent 是如何工作的?
在开始动手之前,我们花几分钟了解一下Phone Agent到底是怎么运转的。理解了原理,后面遇到问题你就能自己排查了。
你可以把Phone Agent想象成一个由“眼睛”、“大脑”和“手”组成的智能体:
- 眼睛(视觉感知):通过ADB实时获取手机屏幕截图。这个截图不是给人看的,是喂给“大脑”——视觉语言模型(VLM)的。
- 大脑(分析与规划):核心是一个名为
autoglm-phone-9b的模型。它同时接收两种信息:你发出的文字指令(如“打开微信”)和“眼睛”传来的屏幕截图。模型需要完成多步思考:- 理解指令:你要我干什么?
- 解析屏幕:当前手机屏幕上有什么?哪个是微信图标?
- 规划动作:要完成“打开微信”,我需要先点击这里,再滑动那里...
- 生成操作:将规划好的动作,转换成ADB能执行的命令,比如
tap(500, 800)(点击坐标500,800)。
- 手(执行操作):通过ADB连接,将“大脑”生成的点击、滑动等命令,真实地发送到你的安卓手机或模拟器上执行。
整个过程形成一个闭环:截图→分析→生成操作→执行→再截图→再分析...直到任务完成。系统还设计了安全机制,遇到登录、支付等敏感操作时会暂停,等待用户确认。
而我们本次部署的核心挑战在于,让这个强大的“大脑”在一个没有显卡的服务器上也能全速思考。解决方案就是利用 vLLM 这一高效的推理引擎,它能够优化模型在CPU上的运行效率,使其在成本低廉的云服务器上达到可用甚至流畅的速度。
3. 第一步:云端模型服务部署(零显卡服务器)
我们的主战场是一台没有独立显卡的云服务器。这里以性价比高的CPU型云服务器为例。
3.1 服务器准备与环境配置
首先,你需要准备一台云服务器。国内外主流云厂商(如阿里云、腾讯云、AWS Lightsail等)的入门级CPU实例通常就够用了,内存建议8GB或以上。
通过SSH连接到你的服务器,开始以下操作:
# 1. 更新系统包
sudo apt-get update && sudo apt-get upgrade -y
# 2. 安装必要的系统工具和Python环境
sudo apt-get install -y python3-pip python3-venv git curl
# 3. 创建项目目录并进入
mkdir -p ~/auto_glm && cd ~/auto_glm
# 4. 创建独立的Python虚拟环境(避免依赖冲突)
python3 -m venv venv
source venv/bin/activate # 激活虚拟环境
3.2 安装与配置 vLLM (CPU版本)
接下来安装核心的模型推理引擎 vLLM。注意,我们需要安装支持CPU推理的版本。
# 安装支持CPU推理的vLLM。这是一个稍慢但稳定的安装方式。
pip install vllm --extra-index-url https://download.pytorch.org/whl/cpu
# 安装完成后,验证安装
python -c "import vllm; print('vLLM导入成功,版本:', vllm.__version__)"
3.3 下载与启动 AutoGLM-Phone 模型
vLLM 提供了一个命令行工具,可以非常方便地启动一个兼容OpenAI API格式的模型服务。
# 1. 使用 vLLM 启动模型服务。
# 这里我们启动智谱开源的 autoglm-phone-9b 模型。
# `--model` 参数指定模型,vLLM会自动从Hugging Face下载。
# `--api-key` 可以随意设置一个,用于简单的访问控制。
# `--port` 指定服务监听的端口,例如 8800。
# `--max-model-len` 限制模型处理的最大长度,对于CPU环境,设置小一些可以节省内存。
# `--disable-custom-all-reduce` 是CPU运行的必要参数。
# `--tensor-parallel-size 1` 表示使用单进程,适合CPU。
vllm serve autoglm/autoglm-phone-9b \
--api-key token-abc123 \
--port 8800 \
--max-model-len 1024 \
--disable-custom-all-reduce \
--tensor-parallel-size 1
执行这个命令后,你会看到大量输出。请耐心等待,直到看到类似以下的日志,说明模型加载成功并开始服务:
INFO 07-10 14:30:15 llm_engine.py:197] Initializing an LLM engine (v0.5.2) with config: ...
INFO 07-10 14:30:15 model_runner.py:237] Loading model weights took 15.32 GB
INFO 07-10 14:30:16 llm_engine.py:404] Model autoglm/autoglm-phone-9b is ready on GPU:0.
Uvicorn running on http://0.0.0.0:8800 (Press CTRL+C to quit)
关键点说明:
- 首次运行:
vLLM会自动从网络下载模型文件(约10多GB),下载速度和服务器网络有关,请保持连接稳定。 - 内存占用:该模型在CPU上运行需要约12-16GB内存。确保你的服务器内存足够,否则可能会因内存不足(OOM)而失败。
- 服务地址:
http://0.0.0.0:8800表示服务监听在本机所有网络接口的8800端口。你需要确保服务器的安全组或防火墙规则放行了8800端口的入站流量。
3.4 验证云端服务
模型服务启动后,我们可以在服务器上简单测试一下它是否正常工作。
打开另一个SSH终端窗口,连接到同一台服务器,执行:
curl http://localhost:8800/v1/models
如果返回一个包含模型信息的JSON,例如 {"object":"list","data":[{"id":"autoglm/autoglm-phone-9b", ...}]},那么恭喜你,云端AI“大脑”已经成功上线!
现在,这个服务提供了一个标准的OpenAI兼容API。你可以通过 http://<你的服务器公网IP>:8800/v1/chat/completions 来访问它。记住这个地址,下一步本地控制端需要连接到这里。
4. 第二步:客户端与真机连接(本地电脑)
“大脑”在云端准备好了,现在我们需要在本地电脑配置“手”和“眼睛”,即控制端,并通过ADB连接安卓手机。
4.1 硬件与环境准备
- 操作系统:Windows 10/11 或 macOS。
- Python:建议安装 Python 3.10 或以上版本。
- 安卓设备:一部Android 7.0以上的真实手机(推荐),或一个安卓模拟器(如MuMu模拟器、夜神模拟器)。
- ADB工具:这是与安卓设备通信的桥梁。
安装ADB:
- Windows:从官网下载
platform-tools包,解压后,将其路径(例如C:\platform-tools)添加到系统的Path环境变量中。打开命令提示符,输入adb version能显示版本号即成功。 - macOS:可以通过Homebrew安装
brew install android-platform-tools,或在终端临时添加路径export PATH=$PATH:~/Downloads/platform-tools(假设解压在该目录)。
4.2 手机端设置
要让电脑控制手机,需要在手机上开启几个开关:
- 开启开发者模式:
- 进入手机“设置” > “关于手机”。
- 连续点击“版本号”7次左右,直到出现“您已处于开发者模式”的提示。
- 开启USB调试:
- 返回“设置”,找到新出现的“开发者选项”。
- 打开“USB调试”开关。
- 安装ADB Keyboard(关键步骤):
- 这是一个特殊的输入法,允许电脑通过ADB向手机输入文字。
- 在手机浏览器中搜索并下载
ADBKeyboard.apk文件进行安装。 - 安装后,进入“设置” > “系统” > “语言与输入法” > “虚拟键盘”。
- 启用“ADB Keyboard”,并将其设为“默认输入法”。
4.3 部署控制端代码 (Open-AutoGLM)
控制端是运行在你本地电脑上的Python程序,它负责连接云端“大脑”和本地手机。
# 1. 克隆Open-AutoGLM的代码仓库
git clone https://github.com/zai-org/Open-AutoGLM
cd Open-AutoGLM
# 2. 安装Python依赖包
pip install -r requirements.txt
# 以“可编辑”模式安装当前目录的包,方便后续修改
pip install -e .
4.4 连接安卓设备
确保手机用USB线连接电脑,或者手机和电脑在同一个WiFi网络下。
-
USB连接(最稳定):
adb devices如果连接成功,你会看到类似
List of devices attached和一行设备ID(如abc123def device)。 -
WiFi连接(更灵活):
# 先用USB线连接一次,开启无线调试端口 adb tcpip 5555 # 断开USB线,查看手机IP(通常在设置-关于手机-状态信息里) # 假设手机IP是 192.168.1.100 adb connect 192.168.1.100:5555再次运行
adb devices,应该能看到通过IP连接的设备。
5. 第三步:启动AI代理,见证自动化
万事俱备,只欠指令。现在,让我们命令AI开始工作。
5.1 通过命令行运行
在本地电脑的 Open-AutoGLM 项目目录下,打开终端,运行以下命令:
python main.py \
--device-id <你的设备ID> \
--base-url http://<云服务器公网IP>:8800/v1 \
--model "autoglm-phone-9b" \
"打开抖音,搜索抖音号为'dycwo11nt61d'的博主并关注他!"
参数解释:
--device-id:填写adb devices命令列出的设备ID或IP地址(如abc123def或192.168.1.100:5555)。--base-url:填写你在第三步搭建的云端模型服务地址。- 最后的字符串:就是你给AI下的自然语言指令。
运行命令后,你会看到程序开始运行:它先截取手机屏幕,发送到云端模型,模型返回操作指令(如“点击搜索框”),本地控制端再通过ADB执行点击...如此循环,直到任务完成或无法继续。整个过程会在终端打印出详细的日志。
5.2 通过Python API连接(更灵活)
如果你想集成到自己的脚本中,可以使用其Python API:
from phone_agent.adb import ADBConnection, list_devices
# 创建连接管理器
conn = ADBConnection()
# 连接远程设备(WiFi连接示例)
success, message = conn.connect("192.168.1.100:5555")
print(f"连接状态: {message}")
# 列出所有已连接的ADB设备
devices = list_devices()
for device in devices:
print(f"设备ID: {device.device_id} - 类型: {device.connection_type.value}")
# 更多操作,如启用TCP/IP、获取设备IP等...
# success, message = conn.enable_tcpip(5555)
# ip = conn.get_device_ip()
6. 常见问题与排查指南
第一次部署很难一帆风顺,这里列出几个常见坑点:
- 云端服务连接被拒绝:
- 检查:在本地电脑浏览器访问
http://<云服务器公网IP>:8800/v1/models。 - 解决:如果无法访问,99%是服务器安全组/防火墙没开8800端口。请登录云服务器控制台,配置安全组规则,允许
0.0.0.0/0访问8800端口(仅用于测试,生产环境建议设置IP白名单)。
- 检查:在本地电脑浏览器访问
- ADB设备找不到/离线:
- 检查:反复执行
adb devices。 - 解决:重新插拔USB线;在手机上撤销USB调试授权后重新连接;WiFi连接不稳定时,换用USB线。
- 检查:反复执行
- 模型服务启动失败或内存不足:
- 现象:
vLLM serve命令报错Killed或OOM。 - 解决:确认服务器内存是否足够(建议16GB+)。尝试在启动命令中加入
--max-model-len 512进一步降低内存消耗。
- 现象:
- AI执行动作错误(如点错地方):
- 原因:模型对屏幕理解有偏差,或不同手机分辨率导致坐标计算错误。
- 解决:这是当前技术的局限性。可以尝试将指令描述得更清晰,或等待模型后续迭代。
7. 总结
通过以上步骤,我们成功实现了一个零显卡、低成本的Open-AutoGLM手机AI助手完整部署。我们来回顾一下关键路径:
- 算力成本优化:利用
vLLM引擎,我们将对显卡要求高的视觉语言模型,成功部署在了普通的CPU云服务器上,极大地降低了尝试门槛。 - 架构清晰分离:采用了“云端模型服务 + 本地控制执行”的架构。云端负责昂贵的AI推理,本地只负责轻量的设备控制和指令转发,结构灵活,便于维护。
- 流程完全贯通:从服务器环境配置、模型服务启动,到本地ADB连接、控制端安装,最后用自然语言驱动AI操作手机,形成了一个完整的闭环。
这个方案不仅适用于个人学习和体验,也为中小型团队探索AI自动化流程提供了一个可行的技术原型。你可以在此基础上,尝试更复杂的指令,如“把我的微信聊天记录截图并保存到相册”,或者将其集成到自动化测试、无障碍辅助等实际场景中。
技术的魅力在于将想象变为现实。现在,你的AI手机助手已经就绪,接下来,就看你如何指挥它了。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)