AutoGLM-Phone多设备控制:批量管理API使用教程
1. Open-AutoGLM:智谱开源的手机端AI Agent框架
你有没有想过,让AI帮你操作手机?不是简单的语音助手,而是真正“看得懂”屏幕、“点得准”按钮、“想得到”下一步动作的智能体。这就是Open-AutoGLM——由智谱AI开源的手机端AI Agent框架,它正在重新定义我们与移动设备的交互方式。
AutoGLM-Phone 是这个生态的核心引擎。它基于强大的视觉语言模型(VLM),结合 ADB(Android Debug Bridge)实现对安卓设备的自动化控制。你可以用自然语言下达指令,比如:“打开小红书,搜索‘上海美食探店’,点赞前三条笔记”,系统就会自动解析你的意图,识别当前屏幕内容,规划出一系列点击、滑动、输入等操作,并一步步执行完成。
更厉害的是,它不只是“盲点”,而是具备真正的多模态理解能力。它能看图识字、理解UI布局、判断按钮功能,甚至在遇到登录弹窗或验证码时主动暂停,提示你介入处理,保障安全。同时支持远程WiFi连接,意味着你可以在办公室控制家里的测试机,或者批量管理多个设备。
本文将带你从零开始,部署并使用 Open-AutoGLM 的控制端,重点讲解如何通过 Python API 实现批量设备管理和远程调用,真正把“AI 手机助理”变成可编程、可集成的生产力工具。
2. 环境准备:搭建本地控制环境
要让 AI 掌控手机,第一步是准备好你的“指挥中心”——本地电脑。无论你是 Windows 还是 macOS 用户,只要按以下步骤配置,就能顺利接入。
2.1 基础依赖安装
你需要确保本地环境满足以下条件:
- 操作系统:Windows 10+ 或 macOS
- Python 版本:建议 3.10 或以上(部分依赖对低版本兼容性较差)
- ADB 工具:这是连接和控制安卓设备的核心工具包
安装 ADB
ADB 包含在 Android SDK Platform Tools 中,可以从 Google 官方页面 下载。
Windows 用户:
- 解压下载的
platform-tools文件夹到任意路径(如C:\tools\platform-tools) - 按下
Win + R,输入sysdm.cpl,打开“系统属性” - 切换到“高级”选项卡 → “环境变量”
- 在“系统变量”中找到
Path,点击“编辑” → “新建” - 添加你的 ADB 路径(例如
C:\tools\platform-tools) - 打开命令提示符,运行
adb version,如果显示版本号即表示安装成功
macOS 用户:
可以直接在终端中临时添加路径:
export PATH=${PATH}:~/Downloads/platform-tools提示:如果你希望永久生效,可以将上述命令写入
~/.zshrc或~/.bash_profile文件中。
2.2 手机端设置:开启调试权限
接下来是手机端的准备工作。这一步至关重要,否则 ADB 无法建立连接。
开启开发者模式
进入手机“设置” → “关于手机” → 连续点击“版本号”7次,直到提示“您已进入开发者模式”。启用 USB 调试
返回设置主界面 → “开发者选项” → 打开“USB 调试”开关。安装 ADB Keyboard(推荐)
这是一个特殊的输入法,允许 AI 通过 ADB 发送文本,避免手动打字。- 下载 ADB Keyboard APK 并安装
- 进入“语言与输入法”设置 → 将默认输入法切换为 “ADB Keyboard”
注意:部分国产手机厂商(如小米、华为)可能会有额外的安全限制,需要单独授权“USB调试”权限,请根据提示确认授权。
3. 部署控制端代码:启动本地代理
现在,我们的电脑和手机已经“连上了线”,接下来要让它们“说上话”——部署 Open-AutoGLM 的控制端代码。
3.1 克隆项目并安装依赖
打开终端或命令行工具,执行以下命令:
# 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 创建虚拟环境(推荐) python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt pip install -e .说明:
pip install -e .表示以“开发模式”安装,这样你可以随时修改源码而无需重新安装。
3.2 验证设备连接状态
确保手机通过 USB 连接到电脑,然后运行:
adb devices你应该看到类似输出:
List of devices attached ABCDEF1234567890 device如果显示unauthorized,请检查手机是否弹出“允许USB调试?”的对话框,并点击“允许”。
4. 设备连接方式:USB 与 WiFi 双模式支持
AutoGLM-Phone 支持两种连接方式:USB 和 WiFi。前者稳定可靠,适合调试;后者灵活自由,适合远程或批量管理。
4.1 USB 直连(推荐初学者)
这是最简单的连接方式,只需一根数据线。
- 手机连接电脑
- 执行
adb devices确认设备在线 - 后续所有操作都基于该物理连接
4.2 WiFi 远程连接(适合远程控制)
当你想脱离数据线,甚至跨网络控制设备时,WiFi 模式就派上用场了。
步骤如下:
- 先用 USB 连接设备
- 在终端执行:
adb tcpip 5555这条命令会启动 ADB 的 TCP 服务,监听 5555 端口。
- 断开 USB 数据线
- 获取手机 IP 地址(可在“设置 → WLAN → 当前网络”中查看)
- 使用 IP 连接设备:
adb connect 192.168.1.100:5555再次运行adb devices,你会看到设备以 IP 形式列出。
提示:WiFi 连接可能因网络波动断开,建议在稳定的局域网环境下使用。若频繁掉线,可尝试重启 ADB 服务或改回 USB 模式。
5. 启动 AI 代理:执行自然语言指令
一切就绪,现在让我们正式“唤醒”AI,让它接管手机。
5.1 命令行快速体验
假设你已经在云服务器上部署了 AutoGLM 模型服务(如 vLLM),并且映射了端口(例如8800),那么可以在本地运行:
python main.py \ --device-id ABCDEF1234567890 \ --base-url http://123.45.67.89:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音,搜索抖音号 dycwo11nt61d,并关注该用户"参数说明:
--device-id:通过adb devices获取的设备标识--base-url:云服务的公网地址和端口,必须能被本地访问--model:指定使用的模型名称(需与服务端一致)- 最后的字符串:你的自然语言指令
执行后,你会看到 AI 开始截图、分析界面、生成动作序列,并自动完成整个流程。
5.2 使用 Python API 实现批量管理
对于开发者来说,更实用的方式是通过 API 编程化地控制多个设备。Open-AutoGLM 提供了简洁的 Python 接口,便于集成到自动化系统中。
示例:连接与管理设备
from phone_agent.adb import ADBConnection, list_devices # 创建 ADB 连接管理器 conn = ADBConnection() # 连接远程设备(WiFi) 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"设备已切换至WiFi模式,IP地址: {ip}") else: print(f"启用失败: {message}")批量控制多个设备(进阶用法)
你可以轻松扩展为多设备并发控制:
import threading from phone_agent.client import PhoneAgentClient def control_device(device_id, instruction): client = PhoneAgentClient( device_id=device_id, base_url="http://your-server-ip:8800/v1", model="autoglm-phone-9b" ) result = client.run(instruction) print(f"[{device_id}] 执行结果: {result}") # 并行控制三台设备 instructions = [ ("device_01", "打开微博刷新首页"), ("device_02", "进入微信搜索公众号‘AI前沿’"), ("device_03", "打开淘宝搜索‘机械键盘’并加入购物车") ] threads = [] for dev_id, inst in instructions: t = threading.Thread(target=control_device, args=(dev_id, inst)) threads.append(t) t.start() for t in threads: t.join()应用场景:可用于批量测试 App 功能、自动化数据采集、社交媒体运营、广告点击验证等场景。
6. 常见问题与排查建议
即使配置正确,也可能会遇到一些常见问题。以下是高频故障及解决方案:
6.1 ADB 连接失败
- 现象:
adb devices显示unauthorized或无设备 - 解决方法:
- 检查手机是否弹出“允许调试”对话框
- 重新插拔 USB 线
- 在开发者选项中关闭再开启“USB调试”
- 尝试更换 USB 线或接口(有些线仅支持充电)
6.2 WiFi 连接超时或断开
- 现象:
adb connect失败,或运行中突然断开 - 解决方法:
- 确保手机与电脑在同一局域网
- 检查路由器是否有设备隔离策略
- 重启 ADB 服务:
adb kill-server && adb start-server - 优先使用 USB 调试稳定后再切换 WiFi
6.3 模型无响应或输出乱码
- 现象:AI 不执行动作,或返回无法理解的字符
- 解决方法:
- 检查云服务端
vLLM是否正常运行 - 确认
--base-url地址可达(可用curl测试) - 查看服务端日志,确认
max_model_len和显存配置合理 - 模型加载是否完整?检查 GPU 显存占用情况
- 检查云服务端
6.4 输入中文失败
- 现象:AI 无法输入中文,或输入乱码
- 解决方法:
- 确保已安装并启用ADB Keyboard
- 在输入法设置中允许其“显示在通知栏”
- 测试发送文本:
adb shell input text "hello"是否正常
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。