Open-AutoGLM镜像部署:从环境配置到首次运行完整流程
1. Open-AutoGLM – 智谱开源的手机端AI Agent框架
你有没有想过,让AI帮你操作手机?不是简单的语音助手,而是真正“看得懂”屏幕、“想得出”步骤、“点得准”按钮的智能体。Open-AutoGLM 正是这样一个由智谱AI开源的手机端AI Agent框架,它把大模型的能力和设备控制能力结合在一起,实现了用自然语言驱动手机自动完成复杂任务。
这个项目的核心是 AutoGLM-Phone —— 一个基于视觉语言模型(VLM)构建的多模态智能助理系统。它能通过截图理解当前手机界面的内容,识别文字、图标、按钮位置,再结合用户的指令进行意图解析与动作规划,最后通过 ADB(Android Debug Bridge)自动执行点击、滑动、输入等操作。整个过程就像一个“数字打工人”,替你在手机上完成各种重复性或繁琐的操作。
比如你说:“打开小红书搜索美食推荐”,它会:
- 自动唤醒手机并解锁(如果已授权)
- 找到小红书App图标并点击打开
- 等待加载后识别搜索框并点击
- 输入“美食推荐”
- 触发搜索并浏览结果
这一切都不需要你手动干预,只需要一句话。
2. Phone Agent:多模态理解 + 自动化执行的完整闭环
Phone Agent 是基于 AutoGLM 构建的实际运行框架,它的设计目标是实现“感知-思考-行动”的完整闭环。整个系统分为三个核心模块:
- 视觉感知层:通过定时截屏获取手机当前画面,送入视觉语言模型进行分析,理解界面上有哪些元素、它们的功能是什么。
- 决策规划层:接收用户自然语言指令,结合当前界面状态,推理出下一步该做什么——是点击某个按钮?还是输入一段文字?
- 执行控制层:通过 ADB 发送具体的设备操作命令,如 tap(点击)、swipe(滑动)、input text(输入文本)等。
这套系统最大的优势在于“无需App适配”。传统自动化工具往往依赖控件ID或XPath,一旦App更新就容易失效。而 Open-AutoGLM 完全基于图像理解和语义推理,只要人能看懂的界面,AI也能操作。
此外,系统还内置了安全机制:
- 敏感操作(如支付、删除账号)会暂停并提示确认
- 遇到验证码、登录弹窗等无法自动处理的情况,支持人工接管
- 支持远程调试,可通过WiFi连接设备,方便开发者在不同环境下测试
这意味着你不仅可以在本地USB连接手机做实验,还能将一台安卓设备放在服务器机房,通过网络远程调用,打造真正的“云手机AI代理”。
3. 硬件与环境准备
要让 Open-AutoGLM 跑起来,你需要准备好以下几样东西:
3.1 基础硬件要求
- 本地电脑:Windows 或 macOS 均可,用于运行控制端代码
- 安卓设备:Android 7.0 及以上版本的真机或模拟器(建议使用真机,性能更稳定)
- 网络环境:本地电脑与安卓设备处于同一局域网(若使用WiFi连接)
3.2 软件依赖
- Python 3.10+:推荐使用虚拟环境管理依赖
- ADB 工具:Android SDK Platform Tools 的一部分,用于设备通信
- Git:用于克隆项目仓库
3.3 ADB 安装与配置
Windows 用户
- 下载 Android Platform Tools 并解压
- 按
Win + R输入sysdm.cpl→ 高级 → 环境变量 - 在“系统变量”中找到
Path,点击编辑 → 新建 → 添加解压后的文件夹路径(例如:C:\platform-tools) - 打开命令提示符,输入
adb version,看到版本号即表示安装成功
macOS 用户
打开终端,执行以下命令(假设 platform-tools 解压在 Downloads 目录):
export PATH=${PATH}:~/Downloads/platform-tools你可以将这行命令添加到.zshrc或.bash_profile中,避免每次重启终端都要重新设置。
验证方式同样是运行:
adb version出现类似Android Debug Bridge version 1.x.x即为正常。
4. 手机端设置:开启调试权限
为了让电脑能够控制手机,必须开启一些开发者选项。
4.1 开启开发者模式
进入手机“设置” → “关于手机” → 连续点击“版本号”7次,直到提示“您已进入开发者模式”。
4.2 启用 USB 调试
返回设置主菜单 → “开发者选项” → 找到“USB调试”并开启。
⚠️ 注意:不同品牌手机路径略有差异,部分厂商可能还需要额外开启“USB安装”、“USB调试(安全设置)”等选项。
4.3 安装 ADB Keyboard(关键!)
这是很多人忽略但极其重要的一步:默认输入法不支持 ADB 文本输入。
你需要下载并安装 ADB Keyboard 的 APK 文件(可在 GitHub Release 页面获取),安装完成后:
- 进入“设置” → “语言与输入法” → “默认键盘”或“当前输入法”
- 选择ADB Keyboard作为默认输入法
这样 AI 才能在需要时自动输入文字,比如搜索关键词、填写表单等。
5. 部署控制端代码(Open-AutoGLM)
现在回到本地电脑,开始部署控制端程序。
5.1 克隆项目仓库
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM5.2 创建虚拟环境(推荐)
python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows5.3 安装依赖
pip install -r requirements.txt pip install -e .
-e .表示以可编辑模式安装当前项目,便于后续修改调试。
安装过程中可能会遇到某些包编译失败(尤其是 PyTorch 相关),建议提前确保 pip 版本最新:
pip install --upgrade pip6. 连接设备:USB 与 WiFi 两种方式
设备连接是整个流程中最容易出问题的一环,我们分别介绍两种常用方式。
6.1 USB 连接(最稳定)
- 使用数据线将手机连接电脑
- 手机弹出“允许USB调试?”对话框时,勾选“始终允许”并点击确定
- 在终端运行:
adb devices输出应类似:
List of devices attached ABCDEF1234567890 device只要有设备ID和device状态,说明连接成功。
6.2 WiFi 远程连接(适合长期运行)
如果你希望摆脱数据线束缚,可以使用 ADB over TCP/IP 方式。
第一步:先用 USB 连接启用 TCP 模式
adb tcpip 5555这条命令会让设备监听 5555 端口的 ADB 连接。
第二步:断开 USB,通过 IP 连接
先查看手机IP地址(设置 → WLAN → 当前网络详情),然后执行:
adb connect 192.168.x.x:5555再次运行adb devices,应该能看到设备以 IP 形式列出。
✅ 小贴士:重启手机后 TCP 模式会失效,需重新执行
adb tcpip 5555。可考虑写个脚本自动完成。
7. 启动 AI 代理:下达第一条指令
所有准备工作完成后,终于可以启动 AI 代理了!
7.1 前提条件回顾
- 云端 vLLM 服务已部署,并开放了
/v1接口(如http://your-server-ip:8800/v1) - 防火墙已放行对应端口
- 本地 ADB 连接正常
- ADB Keyboard 已设为默认输入法
7.2 命令行方式启动
在 Open-AutoGLM 根目录下运行:
python main.py \ --device-id ABCDEF1234567890 \ --base-url http://123.45.67.89:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:来自adb devices输出的设备ID,如果是WiFi连接则填IP:5555--base-url:你的云服务器上 vLLM 服务的地址,注意要包含/v1--model:指定使用的模型名称,需与服务端加载的一致- 最后的字符串:你要下达的自然语言指令
运行后你会看到:
- 实时截屏上传日志
- 模型返回的操作建议(如“点击坐标 (x=500, y=800)”)
- ADB 执行记录
- 如果一切顺利,几秒内就能看到手机自动完成整个流程
7.3 使用 Python API 更灵活地控制
除了命令行,你也可以在自己的脚本中集成 Phone Agent 的功能。
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")这种方式适合嵌入到更大的自动化系统中,比如配合定时任务、Web接口或企业工作流引擎使用。
8. 常见问题排查指南
即使严格按照步骤操作,也难免遇到问题。以下是高频故障及解决方案:
8.1 ADB 连接失败
- 现象:
adb devices显示unauthorized
解决:手机端确认是否弹出授权对话框,勾选“始终允许”后再重试 - 现象:
adb connect失败或频繁掉线
解决:检查WiFi信号强度,尝试重启 ADB 服务:adb kill-server && adb start-server
8.2 模型无响应或乱码
- 现象:请求长时间挂起或返回乱码字符
解决:检查服务端 vLLM 是否正确加载模型,重点关注:--model参数路径是否正确--tensor-parallel-size是否匹配GPU数量--max-model-len是否足够大(建议 ≥ 8192)- 日志中是否有 CUDA OOM 错误
8.3 操作执行错误
- 现象:AI 识别错按钮位置,导致点击偏差
解决:可能是分辨率适配问题,尝试调整screen_scale参数或更换设备测试 - 现象:无法输入中文
解决:确认 ADB Keyboard 已设为默认输入法,并在设置中关闭其“英文优先”选项
8.4 权限相关问题
- 现象:无法唤醒屏幕或检测不到截屏
解决:部分国产ROM限制后台截屏权限,需手动授予“无障碍服务”或“投屏权限”
9. 总结:迈向真正的手机自动化智能体
Open-AutoGLM 不只是一个技术玩具,它是通向“通用手机AI助手”的重要一步。通过本次部署,你应该已经体验到了:
- 如何用自然语言驱动手机完成复杂任务
- 多模态模型如何理解界面并做出决策
- ADB 如何成为连接AI与物理设备的桥梁
虽然目前还存在一些局限(如对动态页面响应慢、复杂逻辑规划能力有限),但随着模型能力提升和工程优化,这类系统有望在未来替代大量重复性手机操作。
下一步你可以尝试:
- 将多个指令串联成工作流
- 结合 OCR 或语音识别扩展输入方式
- 部署在树莓派 + 安卓盒子上打造“AI手机工作站”
技术正在变得越来越“无形”,而 Open-AutoGLM 正是这种趋势的一个缩影:不再需要学习复杂的脚本语法,只需说话,就能让机器为你办事。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。