Open-AutoGLM部署教程:Python API远程调用详细步骤
1. 技术背景与应用场景
随着多模态大模型的发展,AI智能体在移动端的应用逐渐成为研究热点。Open-AutoGLM 是由智谱开源的手机端 AI Agent 框架,基于视觉语言模型(VLM)实现对安卓设备的自动化操作。该框架能够理解用户以自然语言形式下达的任务指令,如“打开小红书搜索美食”,并结合屏幕图像识别、语义解析和动作规划能力,自动完成点击、滑动、输入等交互行为。
其核心组件 Phone Agent 构建于 AutoGLM-Phone 之上,通过 ADB(Android Debug Bridge)与设备通信,利用多模态感知技术实时分析手机界面内容,并生成可执行的操作序列。系统支持本地控制与远程调用两种模式,尤其适合需要长期运行或跨网络环境调试的场景。此外,为保障安全性,系统内置敏感操作确认机制,在涉及登录、支付或验证码输入时可暂停执行,交由人工接管。
本教程将重点介绍如何部署 Open-AutoGLM 控制端,并通过 Python API 实现对远程设备的连接与任务调度,帮助开发者快速搭建可扩展的移动端自动化测试或辅助系统。
2. 环境准备与依赖配置
2.1 硬件与软件要求
为确保 Open-AutoGLM 正常运行,需满足以下基础环境条件:
- 操作系统:Windows 10/11 或 macOS 10.15+
- Python 版本:建议使用 Python 3.10 或更高版本
- 安卓设备:Android 7.0 及以上系统的真机或模拟器
- ADB 工具包:用于设备连接与命令下发
2.2 安装并配置 ADB
ADB 是 Android SDK 的一部分,负责主机与安卓设备之间的通信。以下是不同平台下的安装与配置方法。
Windows 平台配置步骤:
- 下载 Android Platform Tools 压缩包。
- 解压至本地目录,例如
C:\platform-tools。 - 打开“运行”窗口(Win + R),输入
sysdm.cpl,进入“系统属性”。 - 点击“高级”选项卡 → “环境变量” → 在“系统变量”中找到
Path。 - 添加新条目:
C:\platform-tools。 - 打开命令提示符,执行:
若返回版本信息,则表示配置成功。adb version
macOS 平台配置方法:
假设解压后的文件位于~/Downloads/platform-tools,可在终端中执行以下命令添加路径:
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 调试
- 进入手机“设置” → “关于手机”。
- 连续点击“版本号”7次,直到提示“您已进入开发者模式”。
- 返回设置主界面,进入“开发者选项”。
- 启用“USB 调试”功能。
注意:部分厂商可能隐藏此菜单,需在“更多设置”或“系统更新”中查找。
3.2 安装 ADB Keyboard 输入法
由于自动化过程中无法依赖物理键盘输入文字,需借助虚拟输入法实现文本注入。
- 下载 ADB Keyboard APK 并安装到目标设备。
- 进入“设置” → “语言与输入法” → “默认键盘”。
- 选择“ADB Keyboard”作为当前输入法。
安装完成后,可通过 ADB 命令发送文本:
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "Hello World"若屏幕上弹出输入框并显示对应文字,则说明配置成功。
4. 部署 Open-AutoGLM 控制端代码
4.1 克隆项目仓库
在本地电脑上打开终端,执行以下命令获取 Open-AutoGLM 源码:
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM4.2 安装 Python 依赖
项目依赖多个第三方库,包括 PyTorch、transformers、Pillow 和 fastapi 等。建议在虚拟环境中进行安装:
python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate.bat (Windows)安装依赖项:
pip install -r requirements.txt pip install -e .其中-e .表示以可编辑模式安装当前包,便于后续开发调试。
5. 设备连接方式详解
5.1 USB 连接方式
最稳定的连接方式是通过 USB 数据线直连。
- 使用数据线连接手机与电脑。
- 手机端弹出“允许 USB 调试?”对话框时,点击“允许”。
- 在终端执行:
输出应类似:adb devicesList of devices attached 1234567890ABCDEF device
若未显示设备,请检查 USB 接口、数据线质量及驱动是否正常。
5.2 WiFi 远程连接方式
对于远程调试或无线部署场景,推荐使用 ADB over TCP/IP。
步骤一:启用 TCP/IP 模式
首先通过 USB 连接设备,然后执行:
adb tcpip 5555该命令将 ADB 监听端口设为 5555。
步骤二:断开 USB,通过 IP 连接
获取手机局域网 IP 地址(可在“设置”→“WLAN”中查看),例如192.168.1.100,然后执行:
adb connect 192.168.1.100:5555再次运行adb devices应能看到设备以 TCP 连接方式列出。
提示:重启手机后需重新执行
adb tcpip 5555,否则连接失效。
6. 启动 AI 代理与任务执行
6.1 命令行方式启动任务
当服务端模型已部署完毕(如运行在云服务器上的 vLLM 服务),可通过命令行直接触发任务。
python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://<云服务器公网IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:设备标识,可通过adb devices获取。--base-url:云端推理服务地址,格式为http://IP:PORT/v1。--model:指定使用的模型名称,需与服务端注册名一致。- 最后字符串:用户的自然语言指令。
程序会自动截取屏幕、上传至模型服务、接收动作指令并执行相应 ADB 操作。
6.2 使用 Python API 进行远程控制
除了命令行,Open-AutoGLM 提供了完整的 Python API,便于集成到其他系统中。
示例代码:设备连接管理
from phone_agent.adb import ADBConnection, list_devices # 创建 ADB 连接管理器 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}") else: print(f"启用 TCP/IP 失败: {message}") # 断开指定设备 conn.disconnect("192.168.1.100:5555")核心功能说明:
connect():建立与设备的 ADB 连接,支持 IP:PORT 形式。list_devices():获取当前所有连接的设备列表。enable_tcpip(port):将设备切换至网络调试模式。get_device_ip():查询设备当前的局域网 IP。disconnect():安全断开连接。
这些接口可用于构建动态设备池管理系统,适用于大规模自动化测试平台。
7. 常见问题与排查指南
7.1 连接失败:Connection Refused
现象:adb connect返回failed to connect。
原因与解决方案:
- 云服务器防火墙未开放对应端口(如 8800)。请检查安全组规则,放行所需端口。
- ADB 服务未正确监听 TCP 端口。确认执行了
adb tcpip 5555。 - 设备与电脑不在同一局域网内。请确保两者处于相同 WiFi 网络。
7.2 ADB 频繁掉线
现象:连接中断,设备状态变为offline。
可能原因:
- WiFi 信号不稳定,建议改用 USB 连接。
- 手机休眠导致 ADB 断开。可在“开发者选项”中关闭“USB 调试超时”或保持屏幕常亮。
- 多个 ADB 客户端争抢连接。确保只有一个进程在使用 ADB。
7.3 模型响应异常或乱码
现象:AI 返回无效动作、字符编码错误或长时间无响应。
排查方向:
- 检查
vLLM启动参数是否包含正确的--max-model-len和显存分配。 - 确认模型服务返回的是标准 JSON 格式,字段结构符合预期。
- 查看日志是否有 OOM(内存溢出)或 CUDA 错误。
7.4 敏感操作未拦截
现象:AI 自动执行了支付或删除操作。
建议措施:
- 启用内置的“敏感操作确认机制”,在配置文件中设置关键词白名单。
- 对涉及金融类 App 设置手动接管策略。
- 定期审查动作日志,增强审计能力。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。