Open-AutoGLM步骤详解:从克隆仓库到首次运行全记录
1. 背景与核心价值
1.1 Open-AutoGLM:智谱开源的手机端AI Agent框架
Open-AutoGLM 是由智谱AI推出的开源项目,旨在构建一个可在移动端运行的AI智能体(Agent)框架。该框架基于视觉语言模型(VLM),结合Android Debug Bridge(ADB)实现对安卓设备的自动化控制。其核心目标是让AI具备“看懂屏幕、理解意图、自动操作”的能力,从而成为真正意义上的手机端AI助手。
与传统自动化脚本不同,Open-AutoGLM 不依赖固定UI路径或硬编码规则,而是通过多模态感知实时解析屏幕内容,并结合大模型的推理能力动态规划操作路径。这种“感知-决策-执行”闭环使得系统能够适应界面变化、处理复杂交互流程,极大提升了自动化任务的泛化能力和实用性。
1.2 AutoGLM-Phone 的技术定位
AutoGLM-Phone 是 Open-AutoGLM 框架的核心实现之一,专为手机场景设计。它利用视觉语言模型理解当前屏幕状态(如按钮位置、文本信息、布局结构),并通过自然语言指令驱动整个操作流程。例如用户输入“打开小红书搜索美食”,系统将自动完成以下动作:
- 解析语义意图:识别“打开应用”、“关键词搜索”等子任务;
- 屏幕感知:截图并分析当前界面元素;
- 动作规划:决定点击、滑动、输入等操作序列;
- 执行控制:通过 ADB 发送指令操控设备;
- 反馈验证:确认操作结果是否符合预期。
此外,系统还内置了安全机制,在涉及敏感操作(如支付、权限授权)时会暂停并提示人工确认,支持在验证码、登录弹窗等不可控场景下进行人工接管。同时提供远程调试能力,可通过WiFi连接设备,便于开发测试和部署管理。
2. 环境准备与依赖配置
2.1 硬件与软件要求
要成功部署 Open-AutoGLM 控制端并在真机上运行AI代理,需满足以下基础环境条件:
| 类别 | 要求 |
|---|---|
| 操作系统 | Windows 10+ 或 macOS 12+ |
| Python版本 | 建议使用 Python 3.10 或更高版本 |
| 安卓设备 | Android 7.0 及以上版本的手机或模拟器 |
| ADB工具 | 必须安装并正确配置环境变量 |
| 网络环境 | 若使用远程连接,需确保本地电脑与云服务器/手机处于同一局域网 |
注意:推荐使用虚拟环境(如
venv或conda)隔离项目依赖,避免与其他Python项目产生冲突。
2.2 ADB 工具安装与配置
ADB(Android Debug Bridge)是连接和控制安卓设备的关键工具。以下是不同平台下的配置方法。
Windows 平台配置步骤
- 下载 Android SDK Platform Tools 并解压。
- 将解压后的文件夹路径添加至系统环境变量:
- 按
Win + R输入sysdm.cpl→ “高级” → “环境变量” - 在“系统变量”中找到
Path,点击“编辑” - 添加 platform-tools 所在目录路径(如
C:\platform-tools)
- 按
- 验证安装:
adb version若输出类似Android Debug Bridge version 1.xx.xx则表示配置成功。
macOS 平台配置方式
打开终端,执行以下命令(假设 platform-tools 解压在 Downloads 目录):
export PATH=${PATH}:~/Downloads/platform-tools为永久生效,可将上述命令写入 shell 配置文件(如.zshrc或.bash_profile):
echo 'export PATH=${PATH}:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc再次运行adb version进行验证。
3. 手机端设置与连接准备
3.1 开启开发者选项与USB调试
在安卓设备上启用调试功能是建立 ADB 连接的前提。
- 进入设置 → 关于手机,连续点击“版本号”7次,直到提示“您已进入开发者模式”。
- 返回设置主菜单,进入开发者选项。
- 启用USB调试(部分厂商还需开启“USB安装”、“USB调试(安全设置)”等附加选项)。
提示:某些品牌(如小米、华为)可能需要额外授权,请根据提示允许电脑调试权限。
3.2 安装 ADB Keyboard 输入法
由于自动化过程中可能需要文本输入(如搜索框、登录名),而标准ADB无法直接调用软键盘,因此需安装专用输入法:
- 访问 ADB Keyboard GitHub Release 页面 下载最新版 APK。
- 将 APK 文件传输到手机并安装。
- 进入设置 → 语言与输入法 → 默认键盘,选择ADB Keyboard作为当前输入法。
启用后,可通过 ADB 命令发送文本:
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "hello world"这将直接输入指定内容,无需手动点击。
4. 部署控制端代码与依赖安装
4.1 克隆 Open-AutoGLM 仓库
在本地电脑创建工作目录并拉取源码:
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM该项目包含完整的客户端逻辑、ADB封装模块以及与云端模型通信的接口。
4.2 安装 Python 依赖
建议先创建虚拟环境:
python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows然后安装项目依赖:
pip install -r requirements.txt pip install -e .其中-e .表示以可编辑模式安装当前包,便于后续修改调试。
常见问题:若出现
torch安装失败,请访问 PyTorch官网 获取适配你系统的安装命令。
5. 设备连接方式详解
5.1 USB 连接模式(推荐用于调试)
使用数据线将手机连接至电脑,执行:
adb devices正常情况下输出如下:
List of devices attached ABCDEF1234567890 device若显示unauthorized,请检查手机是否弹出“允许USB调试?”对话框,并点击“允许”。
5.2 WiFi 远程连接模式(适合无线部署)
当希望脱离数据线、实现远程控制时,可使用 ADB over TCP/IP。
步骤一:通过USB启用TCP模式
adb tcpip 5555此命令将设备监听在 5555 端口,等待网络连接。
步骤二:断开USB,使用IP连接
获取手机局域网IP地址(可在设置 → WLAN → 当前网络详情中查看),然后执行:
adb connect 192.168.x.x:5555连接成功后,再次运行adb devices应能看到设备ID及tcpip标记。
优势:支持跨房间、跨设备远程调试;可用于无人值守自动化任务。
6. 启动 AI 代理并执行任务
6.1 命令行方式启动主程序
一切准备就绪后,即可启动 AI 代理并下发自然语言指令。
python main.py \ --device-id <你的设备ID或IP:5555> \ --base-url http://<云服务器IP>:<映射端口>/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
| 参数 | 说明 |
|---|---|
--device-id | 通过adb devices获取的设备标识符,支持物理ID或IP:端口格式 |
--base-url | 指向运行 vLLM 或其他推理服务的公网地址,格式为http://IP:PORT/v1 |
--model | 指定使用的模型名称,必须与后端注册的模型一致 |
| 最后字符串 | 用户输入的自然语言指令,支持中文长句描述 |
示例完整命令(替换实际值):
python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://47.98.123.45:8800/v1 \ --model autoglm-phone-9b \ "帮我打开微信,进入设置,清除缓存"6.2 使用 Python API 实现远程连接管理
对于集成到其他系统或批量控制多个设备的场景,可使用内置的 Python 接口。
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}") # 在USB设备上启用TCP/IP(方便后续无线调试) success, message = conn.enable_tcpip(5555) if success: ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开指定设备 conn.disconnect("192.168.1.100:5555")该API提供了更细粒度的控制能力,适用于自动化测试平台、远程运维系统等工程化场景。
7. 常见问题与排查建议
7.1 连接类问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
adb devices无设备显示 | USB调试未开启、驱动异常 | 检查开发者选项,重插数据线,尝试更换线缆 |
显示unauthorized | 未授权电脑调试 | 手机端确认“允许USB调试”弹窗 |
adb connect失败 | 网络不通、端口未开放 | 确保在同一局域网,关闭防火墙或开放5555端口 |
7.2 模型服务相关问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 请求超时或返回空响应 | 云服务器防火墙拦截 | 检查安全组规则,放行对应端口(如8800) |
| 返回乱码或格式错误 | vLLM 启动参数不匹配 | 确认--max-model-len、--dtype等参数与模型兼容 |
| 模型响应极慢 | GPU显存不足或batch过大 | 调整--gpu-memory-utilization至0.8以下 |
7.3 安全与稳定性建议
- 敏感操作防护:系统默认会在涉及支付、删除、权限变更等操作前暂停,等待人工确认。
- 人工接管机制:遇到验证码、滑块验证、登录弹窗等情况,可通过日志提示手动介入。
- 定期重启ADB服务:长时间运行可能导致 ADB 进程卡死,建议定时执行
adb kill-server && adb start-server。
8. 总结
Open-AutoGLM 提供了一个完整且可扩展的手机端AI Agent实现方案,融合了视觉语言模型的强大理解力与 ADB 的精确控制能力。本文详细记录了从环境搭建、代码部署、设备连接到最终运行的全流程,涵盖 USB 与 WiFi 两种连接模式,并提供了命令行与 Python API 两种调用方式。
通过本指南,开发者可以快速上手该项目,将其应用于自动化测试、辅助操作、无障碍服务、远程运维等多个实际场景。未来随着多模态模型能力的持续提升,此类AI代理有望进一步逼近“通用手机助手”的理想形态。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。