手把手教你部署Open-AutoGLM模型服务(本地+云端)
手把手教你部署Open-AutoGLM模型服务(本地+云端)
你是否想过,只需说一句“打开小红书搜美食”,手机就能自动完成打开App、输入关键词、点击搜索的全过程?这不是科幻电影,而是Open-AutoGLM正在实现的现实——一个真正能“看懂屏幕、听懂人话、动手操作”的手机AI智能体。它不依赖预设脚本,不靠固定坐标点击,而是用视觉语言模型理解界面、用推理能力规划动作、用ADB精准执行每一步。本文将带你从零开始,完整走通本地开发环境搭建 + 云端模型服务部署 + 真机联动控制全流程,不跳过任何一个关键细节,不回避任何常见坑点。无论你是刚接触ADB的新手,还是想快速验证多模态Agent能力的开发者,都能照着操作,30分钟内让AI第一次在你的手机上自主完成任务。
1. Open-AutoGLM是什么:不是另一个聊天机器人,而是一个会“动手”的AI
Open-AutoGLM不是传统意义上的大语言模型API,它是一个端到端的手机AI Agent框架,核心价值在于“感知-决策-执行”闭环。它的特别之处,不在于说了什么,而在于做了什么。
1.1 它解决的是什么问题?
过去,自动化手机操作主要靠两种方式:
- UI Automator/Espresso等测试框架:需要写大量代码定位控件ID或坐标,换一个App界面就全失效;
- 宏录制工具(如Tasker):只能做固定路径的重复操作,无法应对界面变化或动态内容。
而Open-AutoGLM用多模态能力绕开了这些限制:它把手机屏幕截图当作“输入图片”,把你的自然语言指令当作“输入文本”,通过视觉语言模型(VLM)同时理解这两者,再生成一连串可执行的ADB命令——点击哪里、滑动多长、输入什么文字。整个过程像一个经验丰富的真人用户在操作,而不是机械的像素坐标搬运工。
1.2 核心能力一句话说清
- 看得懂:能识别微信聊天窗口里的“文件传输助手”按钮、美团首页的“搜索框”图标、抖音底部的“+号”拍摄入口;
- 听得懂:支持“帮我把这张截图发给张三”“找到上个月的工资条PDF并转发到邮箱”这类含指代、时间、动作的复杂指令;
- 做得准:所有操作都通过标准ADB命令执行,兼容Android 7.0+真机与模拟器,不越狱、不Root;
- 守得住:遇到支付密码框、短信验证码页等敏感场景,会主动暂停并提示人工接管,安全机制内置在流程里。
关键提醒:Open-AutoGLM本身不包含模型权重,它是一个“大脑+手脚”的框架。你需要为它接入一个视觉语言模型服务(如智谱BigModel、ModelScope,或自己部署vLLM),它才能真正“思考”。这就像给一台精密机器人装上不同的AI芯片——芯片决定它有多聪明,框架决定它能不能动、怎么动。
2. 本地环境准备:让电脑和手机“说上话”
一切自动化操作的前提,是你的电脑能稳定控制安卓设备。这一步看似简单,却是90%失败案例的根源。我们不讲理论,只列实操要点。
2.1 ADB配置:三步验证法(Windows/macOS通用)
别被“环境变量”吓住,用最直白的方式搞定:
- 下载即用版ADB:去Android官网平台工具页面下载最新
platform-tools-latest-<系统>.zip,解压到一个无中文、无空格的路径,例如C:\adb(Windows)或~/adb(macOS); - 添加到PATH(一次设置,永久生效):
- Windows:右键“此电脑”→“属性”→“高级系统设置”→“环境变量”→在“系统变量”中找到
Path→“编辑”→“新建”→粘贴你解压的完整路径(如C:\adb)→确定; - macOS:打开终端,运行
echo 'export PATH=$PATH:~/adb' >> ~/.zshrc && source ~/.zshrc(如果用bash则改.bash_profile);
- Windows:右键“此电脑”→“属性”→“高级系统设置”→“环境变量”→在“系统变量”中找到
- 终极验证:打开新终端(Windows用CMD/PowerShell,macOS用Terminal),输入
adb version,看到类似Android Debug Bridge version 1.0.41即成功。如果报错“不是内部或外部命令”,请回头检查第2步是否漏掉“新终端”。
2.2 手机端设置:三个开关必须打开
很多用户卡在“adb devices看不到设备”,90%是因为这三个设置没开全:
- 开发者模式:进入“设置→关于手机”,连续点击“版本号”7次,直到弹出“您现在处于开发者模式”;
- USB调试:返回“设置→系统→开发者选项”,找到并开启“USB调试”;
- 安装ADB Keyboard:这是关键!Open-AutoGLM需要向App输入文字,而标准键盘无法被ADB直接控制。
- 去GitHub Releases下载ADB Keyboard APK,用浏览器在手机上安装;
- 安装后,进入“设置→系统→语言和输入法→虚拟键盘”,启用“ADB Keyboard”并设为默认;
- 验证方法:连接电脑后,在手机任意输入框长按,选择“输入法”→切换为“ADB Keyboard”,能正常打字即成功。
2.3 设备连接:USB优先,WiFi备用
- USB直连(推荐新手):用原装数据线连接手机与电脑→手机弹出“允许USB调试吗?”勾选“始终允许”→终端运行
adb devices,输出类似ABC123456789 device即连接成功; - WiFi无线连接(适合远程调试):
- 先用USB线连接,运行
adb tcpip 5555(开启TCP/IP模式); - 拔掉USB线,确保手机与电脑在同一WiFi下;
- 在手机“设置→关于手机→状态”中找到IP地址(如
192.168.1.100); - 终端运行
adb connect 192.168.1.100:5555,看到connected to 192.168.1.100:5555即成功; - 注意:部分路由器会隔离同一WiFi下的设备互访,若失败请换用USB或检查路由器设置。
- 先用USB线连接,运行
3. 控制端部署:在本地电脑跑起Open-AutoGLM框架
框架代码是你的“指挥中心”,它负责接收指令、调用模型、下发ADB命令。部署极简,但有两处易错点需特别注意。
3.1 克隆与安装:避开Python依赖陷阱
# 1. 克隆官方仓库(不要用fork,确保获取最新修复) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 创建干净虚拟环境(强烈推荐!避免包冲突) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装依赖(重点:-e . 表示可编辑安装,否则main.py会报错找不到模块) pip install --upgrade pip pip install -r requirements.txt pip install -e .避坑指南:
- 如果
pip install -e .报错ModuleNotFoundError: No module named 'phone_agent',说明未激活虚拟环境或路径错误,请确认当前目录是Open-AutoGLM根目录;requirements.txt中torch和transformers版本已锁定,切勿手动升级,否则可能与vLLM/SGLang不兼容。
3.2 验证控制端:先不接模型,看框架能否“动起来”
在Open-AutoGLM目录下,运行一个纯ADB测试命令,验证框架基础功能:
# 不指定模型,只测试ADB连接(替换your_device_id为adb devices显示的ID) python main.py --device-id your_device_id "test adb connection"如果手机屏幕短暂亮起、无报错退出,说明控制端已就绪。此时框架已能发送ADB命令,只是还没接入“大脑”(模型服务)。
4. 模型服务部署:本地GPU or 云端API?两种方案详解
模型服务是Open-AutoGLM的“大脑”,它决定AI的理解力和规划能力。你有两个选择:用现成的云端API(快、省事),或在本地/服务器部署开源模型(可控、隐私强)。我们分别给出最优实践。
4.1 方案A:使用第三方模型服务(推荐新手,5分钟启动)
无需GPU,无需下载20GB模型,一行命令直连:
智谱BigModel(中文优化最佳):
python main.py \ --base-url https://open.bigmodel.cn/api/paas/v4 \ --model "autoglm-phone" \ --apikey "your_api_key_here" \ "打开小红书搜索‘北京烤鸭’"获取API Key:注册智谱AI平台→进入“API密钥”→创建新密钥。免费额度足够日常测试。
ModelScope(支持多语言):
python main.py \ --base-url https://api-inference.modelscope.cn/v1 \ --model "ZhipuAI/AutoGLM-Phone-9B" \ --apikey "your_api_key_here" \ "Open Chrome and search for 'AI phone agent'"获取API Key:登录魔搭ModelScope→右上角头像→“API密钥”。
为什么推荐此方案?
- 零硬件要求:笔记本CPU即可;
- 模型已针对手机UI微调:对“微信图标”“抖音底部栏”等元素识别率远高于通用VLM;
- 自动处理多图输入:框架会自动截屏、裁剪关键区域、拼接为多图输入,你无需关心技术细节。
4.2 方案B:本地/云端自行部署模型(适合进阶用户)
当你需要更高响应速度、完全数据私有、或定制化模型时,可部署开源模型。我们以vLLM为例(SGLang步骤类似):
步骤1:准备硬件与环境
- 最低要求:NVIDIA GPU(RTX 3090 / A10G 24G显存),CUDA 12.1+;
- 安装vLLM:
pip install vllm(注意:必须用Python 3.10+,且vLLM 0.6.0+才支持多图); - 下载模型:
git lfs install && git clone https://huggingface.co/zai-org/AutoGLM-Phone-9B(约20GB,建议用aria2c加速)。
步骤2:启动模型服务(关键参数解析)
python3 -m vllm.entrypoints.openai.api_server \ --served-model-name autoglm-phone-9b \ --model zai-org/AutoGLM-Phone-9B \ --port 8000 \ --host 0.0.0.0 \ # 允许外部访问(云端部署必需) --max-model-len 25480 \ --mm-encoder-tp-mode data \ --mm_processor_cache_type shm \ --mm_processor_kwargs "{\"max_pixels\":5000000}" \ --limit-mm-per-prompt "{\"image\":10}" \ --chat-template-content-format string参数为什么这么设?
--host 0.0.0.0:不加此参数,服务只监听localhost,本地电脑无法访问;--max-model-len 25480:模型最大上下文长度,低于此值会导致长任务截断;--mm_processor_kwargs:控制图像预处理分辨率,过高显存溢出,过低影响识别精度;--limit-mm-per-prompt:单次请求最多处理10张图(框架会自动截多张屏),设太小会丢关键信息。
步骤3:验证服务可用性
服务启动后,访问http://localhost:8000/v1/models,应返回JSON包含autoglm-phone-9b。再用curl测试:
curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "autoglm-phone-9b", "messages": [{"role": "user", "content": "Hello"}] }'返回非空choices[0].message.content即成功。
5. 真机联动实战:让AI第一次“动手”完成任务
现在,把前面所有环节串起来。我们以一个真实高频需求为例:自动在淘宝搜索商品并截图结果。
5.1 完整命令行执行(本地模型服务)
# 假设:设备ID为ABC123,模型服务运行在本地8000端口 python main.py \ --device-id ABC123 \ --base-url http://localhost:8000/v1 \ --model "autoglm-phone-9b" \ "打开淘宝App,搜索‘无线蓝牙耳机’,等待搜索结果加载完成后,截取整个屏幕并保存为result.png"5.2 关键执行过程拆解(你看到的 vs AI做的)
| 你输入的指令 | AI后台实际执行的动作 |
|---|---|
| “打开淘宝App” | adb shell monkey -p com.taobao.taobao 1(启动包名)→ 截屏 → VLM识别“首页”状态 → 确认启动成功 |
| “搜索‘无线蓝牙耳机’” | VLM识别首页“搜索框”图标位置 →adb shell input tap x y→adb shell input text "无线蓝牙耳机"→adb shell input keyevent 66(回车) |
| “等待加载完成” | 每2秒截屏一次 → VLM分析“搜索结果页”是否出现商品列表 → 连续3次检测到即判定加载完成 |
| “截取整个屏幕并保存” | adb shell screencap -p /sdcard/result.png→adb pull /sdcard/result.png ./result.png |
效果验证:几秒后,你会看到手机自动完成所有操作,且本地目录生成
result.png。打开图片,正是淘宝搜索结果页——这就是Open-AutoGLM的“动手”能力。
5.3 Python API调用:嵌入你自己的项目
比命令行更灵活,适合集成到Web服务或自动化脚本:
from phone_agent import PhoneAgent from phone_agent.model import ModelConfig # 配置模型服务(可换为BigModel或ModelScope URL) model_config = ModelConfig( base_url="http://localhost:8000/v1", model_name="autoglm-phone-9b", ) # 初始化Agent(自动连接设备) agent = PhoneAgent(model_config=model_config, device_id="ABC123") # 执行任务(返回结构化结果) result = agent.run("打开微信,给‘张三’发送消息:今天会议推迟到3点") print(f"任务状态: {result.status}") # success / failed / interrupted print(f"执行步骤: {len(result.steps)} 步") # 查看详细动作链 print(f"耗时: {result.duration:.1f} 秒")6. 常见问题排查:这些问题90%的人都会遇到
部署中最常卡住的不是代码,而是环境细节。我们按发生频率排序,给出直击要害的解决方案。
6.1 “adb devices 显示 offline 或 unauthorized”
- 原因:手机弹出的“允许USB调试”对话框被忽略,或选择了“拒绝”;
- 解决:拔掉USB线→关闭手机开发者选项→重新开启→连接→务必在手机上点“允许”并勾选“始终允许”。
6.2 “Connection refused” 错误(模型服务连不上)
- 本地部署:检查
--host 0.0.0.0是否添加;防火墙是否阻止8000端口;用curl http://localhost:8000/v1/models本地测试; - 云端部署:云服务器安全组是否开放端口;
--host必须是0.0.0.0而非127.0.0.1;本地命令中的--base-url要写服务器公网IP,不是localhost。
6.3 “Model not found” 或 “No response”
- 检查模型名:vLLM启动时
--served-model-name必须与--model参数完全一致(区分大小写); - 检查显存:
nvidia-smi查看GPU内存,若不足,降低--max-model-len或换小模型; - 检查图片路径:vLLM的
--allowed-local-media-path /必须设置为/(根目录),否则框架传入的临时截图路径被拒绝。
6.4 “AI一直循环点击,不执行下一步”
- 典型场景:在微信聊天页,指令“发送消息”,但AI反复点击输入框却无法输入;
- 原因:ADB Keyboard未设为默认输入法,或手机系统拦截了ADB输入;
- 解决:回到2.2节,严格重做ADB Keyboard安装与启用;在手机“设置→应用→ADB Keyboard→权限”中开启“显示在其他应用上层”。
7. 总结:你已经掌握了AI手机助理的启动钥匙
回顾整个流程,你完成了三件关键事:
- 打通了人机通信链路:让电脑通过ADB稳定控制手机,这是所有自动化的物理基础;
- 部署了AI决策中枢:无论是调用云端API还是自建vLLM服务,你已拥有了一个能理解屏幕、规划动作的“大脑”;
- 实现了端到端任务闭环:从一句自然语言,到手机真实操作,再到结果反馈,你亲手验证了Open-AutoGLM的核心价值——它不是一个玩具,而是一个可立即投入生产力的工具。
下一步,你可以:
- 尝试更复杂的指令,如“对比京东和拼多多上iPhone15的价格,截图价格页并发送到钉钉”;
- 修改
config.yaml中的system_prompt,让AI更专注某类任务(如电商导购); - 将
main.py封装为Web API,用Flask/FastAPI提供HTTP接口,让团队其他成员也能调用。
Open-AutoGLM的意义,不在于它多强大,而在于它把曾经属于实验室的多模态Agent能力,变成了开发者手边一个pip install就能用的工具。当AI不再只是回答问题,而是真正开始动手做事,人机协作的新范式,就从你运行成功的第一个命令开始。
--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。