Open-AutoGLM部署全攻略:本地+远程连接一次讲清
你有没有想过,不用动手点屏幕,只说一句“帮我订一杯瑞幸咖啡”,手机就自动打开APP、选门店、加小料、下单付款?这不是科幻电影——Open-AutoGLM 就是让这件事在普通安卓手机上真实发生的开源框架。
它不是App,也不是插件,而是一个真正能“看懂屏幕、听懂人话、自己动手”的系统级AI Agent。背后没有定制硬件,不依赖特定品牌,只靠一个9B参数的视觉语言模型 + ADB自动化能力,就能把你的旧手机变成AI超级助理。
但问题来了:这么酷的东西,到底怎么装?能不能用WiFi连?家里那台老安卓机行不行?云服务器要配多高?指令写错一个字会不会乱点?
别急,这篇就是为你写的实操型部署指南。不讲虚的,不堆术语,从零开始,手把手带你完成本地控制端搭建、真机连接、远程调试、指令调用全流程。所有步骤都经过实测验证,连报错截图和绕过方案都给你备好了。
1. 先搞清楚:Open-AutoGLM到底是什么?
Open-AutoGLM 是智谱AI开源的手机端AI Agent框架,核心定位很明确:让AI成为你手机的“手”和“眼”。
它不做APP适配,不改系统源码,而是用三步完成任务闭环:
- 看:通过截图+OCR+视觉理解,实时解析当前屏幕内容(按钮文字、图标位置、输入框状态)
- 想:用9B规模的AutoGLM-Phone模型理解你的自然语言指令,拆解成可执行动作序列(比如“搜美食”→先点搜索框→输入关键词→点搜索按钮)
- 做:通过ADB发送触摸、滑动、返回等底层指令,真实模拟人工操作
关键特性一句话总结:
不需要ROOT,不越狱,不重刷系统
支持USB直连 + WiFi远程双模式
内置敏感操作确认机制(如支付、删除)
登录页/验证码页可自动暂停,交由人工接管
所有模型推理可部署在云端,本地只跑轻量控制逻辑
注意:它本身不包含大模型服务。你需要额外部署一个支持/v1/chat/completions接口的LLM服务端(比如vLLM托管的autoglm-phone-9b),Open-AutoGLM只是它的“手机操作手”。
2. 硬件与环境准备:三类设备,一个都不能少
部署Open-AutoGLM不是单机任务,它涉及三个角色协同工作:你的电脑(控制端)+ 你的安卓手机(被控端)+ 你的云服务器(模型服务端)。我们按角色逐个说明最低要求。
2.1 控制端:你的本地电脑(Windows/macOS)
这是你发号施令的地方,负责运行Open-AutoGLM控制代码、连接手机、转发指令。
- 操作系统:Windows 10/11 或 macOS Monterey(12.0)及以上
- Python版本:3.10~3.12(实测3.13部分依赖不兼容,建议锁定3.11)
- 必备工具:ADB调试桥(Android Debug Bridge)
- Windows:下载platform-tools压缩包,解压后将路径加入系统环境变量(
sysdm.cpl → 高级 → 环境变量 → 系统变量 → Path → 新建) - macOS:终端执行
# 假设解压到 ~/Downloads/platform-tools echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc - 验证:终端输入
adb version,看到类似Android Debug Bridge version 1.0.41即成功
- Windows:下载platform-tools压缩包,解压后将路径加入系统环境变量(
小贴士:Mac用户若遇到
command not found: adb,检查是否用的是zsh(默认)还是bash,对应修改.zshrc或.bash_profile
2.2 被控端:你的安卓手机(真机优先)
模拟器理论上可行,但UI识别准确率低、ADB稳定性差,强烈推荐真机。要求如下:
- Android版本:7.0(Nougat)及以上(低于此版本ADB权限机制不同,无法稳定控制)
- 必须开启:
- 开发者选项(设置 → 关于手机 → 连续点击“版本号”7次)
- USB调试(设置 → 开发者选项 → 启用“USB调试”)
- 必须安装:ADB Keyboard(GitHub Release页下载apk)
- 安装后进入「设置 → 语言与输入法 → 当前键盘」,切换为ADB Keyboard
- 这是实现“AI输入文字”的关键——普通输入法会拦截ADB发送的文本,而ADB Keyboard专为此设计
注意:部分国产手机(华为、小米、OPPO)需额外开启「USB调试(安全设置)」或关闭「MIUI优化」「纯净后台」,否则ADB连接后显示
unauthorized。具体路径见各品牌官网“ADB授权”说明。
2.3 模型服务端:你的云服务器(或本地高性能PC)
Open-AutoGLM不跑大模型,只调用API。你需要一个能响应POST /v1/chat/completions请求的服务。推荐方案:
- vLLM部署autoglm-phone-9b(官方推荐)
- 显存要求:24GB VRAM(A10/A100)可流畅运行;16GB(3090/4090)需启用
--enable-prefix-caching - 启动命令示例:
python -m vllm.entrypoints.openai.api_server \ --model zhiyonghuang/autoglm-phone-9b \ --tensor-parallel-size 1 \ --max-model-len 8192 \ --port 8800 \ --host 0.0.0.0
- 显存要求:24GB VRAM(A10/A100)可流畅运行;16GB(3090/4090)需启用
- 替代方案:Ollama(
ollama run autoglm-phone-9b)、FastChat(需配置OpenAI兼容API) - 关键检查项:
- 服务启动后,浏览器访问
http://<服务器IP>:8800/v1/models应返回JSON含模型名 - 云服务器防火墙放行8800端口(阿里云/腾讯云需在安全组中添加入方向规则)
- 服务启动后,浏览器访问
3. 控制端部署:5分钟跑通本地代码
一切准备就绪,现在在你的电脑上部署控制逻辑。全程无需编译,纯Python。
3.1 克隆仓库并安装依赖
# 克隆官方仓库(注意:非fork,用原始zai-org) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 创建虚拟环境(推荐,避免依赖冲突) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 安装核心依赖 pip install -r requirements.txt pip install -e . # 安装为可编辑包,支持后续代码调试验证安装:运行
python -c "import phone_agent; print('OK')"无报错即成功
3.2 获取设备ID:USB直连 or WiFi远程?
Open-AutoGLM必须知道“操控哪台设备”。设备标识有两种形式:
- USB直连:
adb devices返回的9位十六进制ID(如ABCDEF123) - WiFi远程:
<手机IP>:5555(如192.168.1.100:5555)
USB连接(新手首选,最稳)
- 用原装数据线连接手机与电脑
- 手机弹出“允许USB调试吗?” → 勾选“始终允许”,点确定
- 终端执行:
adb devices # 正常输出: # List of devices attached # ABCDEF123 device
WiFi远程(摆脱线缆,适合开发调试)
必须先用USB连一次,才能开启WiFi调试:
# 第一步:USB连接后,开启TCP/IP模式 adb tcpip 5555 # 第二步:拔掉USB线,确保手机和电脑在同一WiFi下 # 查看手机IP:设置 → WLAN → 点击当前网络 → IP地址(如192.168.1.100) # 第三步:用IP连接 adb connect 192.168.1.100:5555 # 验证 adb devices # 应显示 192.168.1.100:5555 device如果
adb connect失败:
- 检查手机WiFi是否与电脑同网段
- 尝试重启手机ADB:
adb kill-server && adb start-server- 部分路由器禁用ARP广播,可换用手机热点共享给电脑
4. 启动AI代理:两种调用方式任选
控制端、手机、模型服务全部就位,现在正式让AI接管手机。
4.1 命令行快速启动(适合测试指令)
在Open-AutoGLM项目根目录下执行:
python main.py \ --device-id ABCDEF123 \ --base-url http://192.168.1.200:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书,搜索'北京烤鸭',点第一个笔记,保存图片"参数说明:
--device-id:你的设备ID(USB)或IP:端口(WiFi)--base-url:模型服务地址,末尾必须带/v1--model:模型名称,需与vLLM启动时--model参数一致- 最后字符串:你的自然语言指令(支持中文,无需标点)
成功表现:终端实时打印操作日志(如INFO: Found '搜索' button at (520, 120)→INFO: Tapping (520, 120)→INFO: Input text '北京烤鸭'),手机同步执行动作。
4.2 Python API集成(适合嵌入脚本)
如果你需要批量处理、加条件判断或接入Web界面,直接调用SDK更灵活:
from phone_agent.agent import PhoneAgent from phone_agent.adb import ADBConnection # 1. 初始化ADB连接管理器 conn = ADBConnection() conn.connect("ABCDEF123") # 或 "192.168.1.100:5555" # 2. 创建AI代理实例 agent = PhoneAgent( device_id="ABCDEF123", base_url="http://192.168.1.200:8800/v1", model_name="autoglm-phone-9b" ) # 3. 执行指令(阻塞式,等待任务完成) result = agent.run("截图当前屏幕并保存到相册") print(f"任务状态:{result.status},耗时:{result.duration:.1f}s") # 4. 断开连接 conn.disconnect("ABCDEF123")API优势:可捕获
result.screenshot_path获取截图路径,result.action_log查看每步操作详情,便于调试和审计。
5. 常见问题排查:90%的失败都发生在这里
部署中最容易卡住的环节,我们按发生频率排序,并给出实测有效的解决方案。
5.1 ADB连接显示unauthorized或offline
- 原因:手机未授权电脑调试,或授权记录损坏
- 解决:
- 手机设置 → 开发者选项 → 关闭“USB调试”,再重新打开
- 电脑终端执行
adb kill-server && adb start-server - 重新USB连接,手机弹窗务必勾选“始终允许”,再点确定
5.2 指令执行卡在“正在截图”或“找不到按钮”
- 原因:OCR识别失败(屏幕暗、字体小、动态加载未完成)
- 解决:
- 在
main.py中增加等待时间:--screenshot-delay 2(单位秒) - 手动截一张图,用
adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png导出,检查是否清晰 - 若屏幕有深色模式,尝试在手机设置中临时切为浅色
- 在
5.3 模型返回乱码、空响应或超时
- 原因:vLLM服务未正确启动,或
--max-model-len设置过小 - 检查清单:
- 访问
http://<服务器IP>:8800/v1/models是否返回JSON - vLLM日志中是否有
ERROR或OOM字样 - 启动命令中
--max-model-len必须 ≥ 8192(autoglm-phone-9b最小要求) - 云服务器安全组是否放行8800端口?本地能否
curl http://192.168.1.200:8800/v1/models?
- 访问
5.4 执行到微信/支付宝时触发“环境异常”
- 原因:超级APP主动检测ADB调试环境,强制退出
- 临时绕过(仅测试用):
- 华为/小米手机:开发者选项中关闭「USB调试(安全设置)」
- 所有手机:在vLLM启动时添加环境变量
ANDROID_HOME=/path/to/platform-tools(部分APP检测此变量) - 注意:这不能解决根本问题,商业场景需与APP厂商合作
6. 进阶技巧:让AI更听话、更可靠
部署只是起点,真正发挥价值在于用好它。这些技巧来自真实项目踩坑经验:
6.1 指令写作心法(比调参更重要)
Open-AutoGLM对指令表述非常敏感。实测有效写法:
- 推荐:“打开淘宝,搜索‘iPhone 15壳’,选销量最高的一款,加入购物车”
- 避免:“帮我买个手机壳”(意图模糊,无目标APP和筛选条件)
- 加限定词:用“第一个”“销量最高”“价格最低”代替“好的那个”
- 分步指令:复杂任务拆成两句,如先“打开小红书”,再“搜索‘健身餐’”
6.2 敏感操作人工接管实战
当AI执行支付、删除联系人等操作时,会自动暂停并等待确认:
- 终端会打印:
PAUSE: Detected payment screen. Waiting for manual confirmation... - 此时你只需在手机上完成支付/输入密码,AI检测到界面变化(如跳转到“支付成功”页)后自动继续
- 如需取消,按Ctrl+C终止进程即可
6.3 多设备并行控制
一台电脑可同时控制多台手机(需不同device-id):
# 终端1:控制手机A python main.py --device-id ABCDEF123 --base-url ... "任务A" # 终端2:控制手机B python main.py --device-id 123456789 --base-url ... "任务B"提示:多设备时,确保每台手机ADB Keyboard已启用,且未相互干扰。
7. 总结:这不是玩具,而是生产力新范式
Open-AutoGLM的价值,从来不在“能点开抖音”这种演示级功能,而在于它提供了一套可复用、可扩展、可审计的手机自动化协议。
- 对开发者:它是构建垂直领域Agent的脚手架(电商导购Agent、教育陪练Agent、老年助手机器人)
- 对企业:它让RPA能力下沉到移动端,无需APP改造即可自动化客服回访、订单核验、巡检打卡
- 对个人:它是最硬核的“数字分身”——当你开会时,AI正帮你抢演唱会门票;当你睡觉时,AI在比价、填表、整理截图
当然,它也有现实边界:超级APP的围剿、OCR在复杂UI下的误判、长流程任务的容错成本……但这些恰恰是下一步演进的方向。
所以,别把它当成一个“能用就行”的工具。把它当作一块砖——你砌在哪里,AI就站在哪里。
现在,关掉这篇文章,拿起你的旧手机,照着步骤走一遍。当第一次看到“打开知乎,搜索‘大模型部署’,点开第三篇,复制链接”被完整执行时,你会明白:未来已来,只是还没铺满地面。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。