Open-AutoGLM安装全流程:附常见报错解决方案
本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现自然语言驱动的安卓手机自动化操作。用户可通过语音指令(如‘打开小红书搜美食’)触发屏幕识别、云端推理与自动点击全流程,典型应用于APP批量操作、日常任务自动化等场景。
Open-AutoGLM安装全流程:附常见报错解决方案
Open-AutoGLM 是智谱开源的手机端 AI Agent 框架,它不是传统意义上的大模型推理服务,而是一个能“看懂屏幕、理解意图、自动操作”的多模态智能助理系统。你不需要写代码、不用点鼠标,只要说一句“打开小红书搜美食”,它就能自己完成打开App、输入关键词、点击搜索、浏览结果整套动作——就像给手机配了个随叫随到的数字管家。
但正因为它的能力跨了视觉、语言、操作系统控制三层,安装和调试比普通模型更讲究步骤顺序和环境细节。很多用户卡在 ADB 连不上、模型调不通、指令没响应这些环节,不是模型不行,而是某个小配置没对上。本文不讲原理、不堆术语,只聚焦一件事:从零开始,把 Open-AutoGLM 真正跑起来,并且知道每一步为什么这么干、出错了怎么快速定位。
全文基于真实部署经验整理,覆盖 Windows/macOS 双平台,包含 USB 与 WiFi 两种连接方式,所有命令可直接复制粘贴,所有报错都给出对应解法。如果你已经试过几次但始终卡在某一步,这篇文章就是为你写的。
1. 明确角色:Open-AutoGLM 不是“模型”,而是一套“AI操作员”
在动手前,先理清一个关键认知:Open-AutoGLM 本身不包含大模型权重,它是一个轻量级控制框架,真正干活的是云端部署的 autoglm-phone-9b 这类视觉语言模型。本地电脑只负责三件事:
- 用 ADB 抓取手机屏幕截图
- 把截图 + 你的自然语言指令一起发给云端模型
- 接收模型返回的操作指令(比如“点击坐标 (320, 650)”),再用 ADB 执行
所以整个流程是:你说话 → 本地抓图 → 云端思考 → 本地执行。这解释了为什么必须同时搞定 ADB 连接 和 云服务地址——缺一不可。
这也意味着:
你不需要显卡,本地电脑只需能跑 Python 和 ADB
你不能离线使用,必须有稳定网络连接到模型服务端
手机必须是 Android 7.0+,iOS 不支持(ADB 是安卓专属协议)
2. 环境准备:四件套一个都不能少
别跳过这步。90% 的“安装失败”其实都源于这里没配好。我们按顺序逐个确认:
2.1 安装并验证 ADB 工具
ADB(Android Debug Bridge)是连接电脑和安卓设备的唯一桥梁。它不是“装了就行”,必须确保终端里能随时调用。
-
Windows 用户:
- 去 Android SDK Platform-Tools 下载最新 ZIP 包
- 解压到一个无中文、无空格的路径,例如
C:\adb - 按
Win + R输入sysdm.cpl→ “高级” → “环境变量” → 在“系统变量”中找到Path→ “编辑” → “新建” → 粘贴你解压的完整路径(如C:\adb) - 重启命令行窗口(重要!新环境变量不会生效于已打开的窗口)
- 输入
adb version,看到类似Android Debug Bridge version 1.0.41即成功
-
macOS 用户:
- 同样下载 ZIP 包,解压到
~/Downloads/platform-tools - 打开 Terminal,运行:
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc - 输入
adb version验证
- 同样下载 ZIP 包,解压到
常见报错:
'adb' is not recognized as an internal or external command
原因:环境变量没生效,或路径写错。检查是否重启了终端,路径是否含空格/中文。
2.2 手机端设置:三步开启“被操控”权限
手机不是连上线就自动听指挥的,必须手动授权:
-
开启开发者模式:
进入「设置」→「关于手机」→ 连续点击「版本号」7 次 → 弹出“您现在是开发者!” -
开启 USB 调试:
返回「设置」→「系统」→「开发者选项」→ 找到「USB 调试」→ 打开开关此时用 USB 线连接电脑,第一次会弹窗问“允许 USB 调试吗?”,务必勾选“始终允许”,再点确定
-
安装并启用 ADB Keyboard(关键!):
- 下载 ADB Keyboard APK(推荐 v1.3)
- 手机安装后,进入「设置」→「语言与输入法」→「当前输入法」→ 切换为 ADB Keyboard
❗没有这一步,AI 就无法在需要输入文字的场景(如搜索框)自动打字。很多用户卡在“搜不到”,其实是键盘没切。
2.3 Python 环境:3.10+ 是硬性要求
Open-AutoGLM 依赖较新的异步库和类型提示特性,Python 3.9 及以下会报 SyntaxError。
- 检查当前版本:
python --version # 或 python3 --version - 若低于 3.10,请前往 python.org 下载安装 Python 3.10+(推荐 3.11)
- 安装时务必勾选 “Add Python to PATH”(Windows)或按默认设置(macOS)
3. 控制端部署:克隆、安装、验证三步到位
这一步在你的本地电脑上执行,目标是让 main.py 能顺利运行。
3.1 克隆代码并安装依赖
# 1. 克隆仓库(不要用 GitHub Desktop,用命令行)
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. 安装依赖(注意:requirements.txt 里有 torch,会自动匹配 CPU 版本)
pip install -r requirements.txt
pip install -e .
验证安装:运行
python -c "from phone_agent.adb import ADBConnection; print('OK')",无报错即成功。
3.2 连接设备:USB 与 WiFi 二选一
USB 方式(新手首选,最稳定)
- 用原装数据线连接手机与电脑
- 手机弹出“允许 USB 调试”时,勾选“始终允许”并确认
- 终端运行:
输出应类似:adb devices
出现List of devices attached 1234567890abcdef devicedevice表示连接成功。如果显示unauthorized,请检查手机是否点了“允许”。
WiFi 方式(适合远程调试)
必须先用 USB 连接一次,才能开启 WiFi 调试
- USB 连接成功后,运行:
adb tcpip 5555- 拔掉 USB 线,确保手机和电脑在同一 WiFi 下
- 查看手机 IP:设置 → WLAN → 点击当前网络 → 查看“IP 地址”(如
192.168.1.100)- 运行:
输出adb connect 192.168.1.100:5555connected to 192.168.1.100:5555即成功
❗常见报错:
failed to connect to '192.168.1.100:5555': Connection refused
原因:手机未开启“无线调试”(部分新机型需额外开启)。进入「开发者选项」→ 找到「无线调试」→ 打开,并在弹窗中点“允许”。
4. 启动 AI 代理:填对三个参数,指令立刻执行
这是最关键的一步。main.py 本身不干活,它只是“快递员”,把你的指令和截图送到云端模型那里。因此,--base-url 必须指向一个正在运行的、可访问的 AutoGLM-Phone 服务端。
4.1 确认云服务地址(重中之重)
文档中提到的 http://<云服务器IP>:<映射端口>/v1,这个地址不是免费提供的,你需要:
- 自己部署服务端(参考智谱官方 GitHub 的
autoglm-phone仓库) - 或使用 CSDN 星图镜像广场等平台提供的预置镜像(推荐新手)
- 或联系服务商获取测试地址
你可以先用浏览器访问该地址,如果返回
{"error":"Not Found"}或类似 JSON,说明服务已启动(404 是正常响应);如果打不开、超时、拒绝连接,则服务未就绪,此时运行main.py必然失败。
4.2 执行命令:替换占位符,一行搞定
在 Open-AutoGLM 目录下,运行:
python main.py \
--device-id 1234567890abcdef \
--base-url http://192.168.1.100:8800/v1 \
"打开小红书搜索美食"
--device-id:从adb devices输出的第一列复制(USB)或IP:5555(WiFi)--base-url:替换成你实际的服务地址,末尾必须带/v1- 最后字符串:你的自然语言指令,引号包裹,不要加句号
成功表现:终端会打印
Capturing screenshot...→Sending to model...→Received action: TAP at (320, 650)→ 手机屏幕自动点击
失败表现:卡在Sending to model...或报ConnectionError/Timeout,说明--base-url不通。
5. 常见报错与精准解决方案
下面列出部署过程中最高频的 7 个报错,每个都给出根本原因 + 一句话诊断法 + 立即生效的解决步骤,不绕弯子。
5.1 报错:OSError: [WinError 193] %1 is not a valid Win32 application
- 原因:你下载的 ADB 是 64 位,但 Python 是 32 位(或反之)
- 诊断:运行
python -c "import platform; print(platform.architecture())",输出('32bit', 'WindowsPE')即为 32 位 Python - 解决:卸载 32 位 Python,安装 64 位版本(官网下载时注意选
Windows x86-64 executable installer)
5.2 报错:adb: error: device 'xxx' not found
- 原因:ADB 连接了设备,但
--device-id填错了,或设备已断开 - 诊断:重新运行
adb devices,确认输出列表里有没有你填的 ID - 解决:复制
adb devices输出的第一列完整字符串,包括字母数字,重新填入--device-id
5.3 报错:ConnectionRefusedError: [Errno 111] Connection refused
- 原因:
--base-url地址无法访问,服务端没启动或防火墙拦截 - 诊断:在浏览器或
curl中访问该 URL,看是否能返回 JSON - 解决:
- 如果是本地服务端,检查是否运行了
vLLM或FastAPI服务 - 如果是云服务器,登录服务器运行
netstat -tuln | grep :8800,确认端口监听中 - 检查云服务器安全组/防火墙,放行对应端口(TCP)
- 如果是本地服务端,检查是否运行了
5.4 报错:ModuleNotFoundError: No module named 'PIL'
- 原因:
pillow库未安装(用于处理截图) - 诊断:运行
pip list | grep -i pillow,无输出即缺失 - 解决:
pip install pillow(注意不是PIL,是pillow)
5.5 报错:ValueError: too many values to unpack (expected 2)(出现在 adb.py)
- 原因:ADB 输出格式变更(新版 ADB 在某些系统下输出多列)
- 诊断:运行
adb devices -l,看输出是否有多余字段 - 解决:打开
phone_agent/adb.py,找到list_devices()函数,将解析逻辑改为:for line in output.strip().splitlines(): if '\t' in line and 'device' in line: parts = line.split('\t') device_id = parts[0].strip() # 忽略后续部分
5.6 报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xXX
- 原因:Windows 默认编码是 GBK,但 ADB 输出含 UTF-8 字符(如中文 App 名)
- 诊断:错误指向
subprocess.py或adb.py的decode()行 - 解决:在
phone_agent/adb.py开头添加:
或在调用import locale locale.setlocale(locale.LC_ALL, 'C')subprocess时强制指定编码:result = subprocess.run(..., encoding='utf-8', errors='ignore')
5.7 指令无响应,但日志显示 Received action: ... 却没执行
- 原因:ADB Keyboard 未启用,或手机开启了“USB安装”等安全限制
- 诊断:手动在手机上打开「设置」→「安全」→「未知来源应用」,找到「ADB Keyboard」并开启
- 解决:
- 确认「语言与输入法」中默认输入法是 ADB Keyboard
- 关闭手机「USB调试(安全设置)」中的“验证应用”选项(部分华为/小米机型有)
- 重启 ADB 服务:
adb kill-server && adb start-server
6. 进阶技巧:让 AI 更听话、更稳定
装好了只是起点。以下 3 个技巧能显著提升日常使用体验:
6.1 指令怎么写才有效?
AI 不是人,它依赖清晰的动词和明确的对象。避免模糊表达:
- “帮我看看小红书有什么好吃的” → 没有具体动作
- “打开小红书,搜索‘北京烤鸭’,点击第一个笔记” → 动作链明确
进阶写法:加入约束条件
- “打开抖音,搜索用户‘dycwo11nt61d’,只关注不点赞不评论”
- “打开设置,进入‘电池’页面,截图并告诉我当前剩余电量百分比”
6.2 如何查看实时截图和操作日志?
main.py 默认不保存截图,但你可以轻松加上:
- 打开
main.py,找到capture_screenshot()函数 - 在
return image前添加:
下次运行就会在当前目录生成带时间戳的 PNG 文件,方便你复盘 AI “看到”了什么。image.save(f"screenshot_{int(time.time())}.png") print(f"Screenshot saved as screenshot_{int(time.time())}.png")
6.3 用 Python API 实现批量任务
不想每次敲命令?封装成函数:
from phone_agent.main import run_agent
def batch_tasks(device_id, base_url):
tasks = [
"打开微信,发送'你好'给文件传输助手",
"打开相机,拍一张照片",
"打开设置,查看当前 WiFi 名称"
]
for i, task in enumerate(tasks):
print(f"\n--- Task {i+1}: {task} ---")
run_agent(
device_id=device_id,
base_url=base_url,
prompt=task,
max_steps=10
)
# 调用
batch_tasks("1234567890abcdef", "http://192.168.1.100:8800/v1")
7. 总结:你现在已经拥有了一个真正的手机 AI 助理
回顾一下,你完成了:
- 在本地电脑装好 ADB 并验证可用
- 在手机上开启开发者选项、USB 调试、启用 ADB Keyboard
- 克隆 Open-AutoGLM 代码,安装全部依赖
- 用 USB 或 WiFi 连接手机,确认
adb devices显示device - 获取有效的
--base-url,成功运行main.py并看到手机自动操作 - 掌握 7 个高频报错的精准解法,不再被卡住
- 学会写高效指令、保存截图、批量执行
Open-AutoGLM 的价值不在于它多炫酷,而在于它把“自动化”这件事拉到了普通人够得着的地方。你不需要懂模型结构,不需要调参,甚至不需要写一行推理代码——你只需要说人话,剩下的交给它。
下一步,试试让它帮你:
- 每天早上自动截图天气 App 发到钉钉群
- 批量给通讯录里所有备注“客户”的人发节日祝福
- 监控某个电商页面的价格变动,降价就通知你
这些都不是未来场景,而是你现在就能实现的日常。
---
> **获取更多AI镜像**
>
> 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)