Open-AutoGLM远程开发指南:跨网络设备控制实战
1. Open-AutoGLM:手机端AI Agent的全新打开方式
你有没有想过,让AI直接帮你操作手机?不是简单的语音助手,而是真正“看得懂”屏幕、“想得清楚”下一步、“动得了手”完成全流程任务的智能体。这就是Open-AutoGLM—— 智谱开源的一款面向手机端的AI Agent框架。
它不只是一个模型,而是一整套“感知-决策-执行”的闭环系统。通过结合视觉语言模型(VLM)和Android Debug Bridge(ADB),Open-AutoGLM 能够理解手机屏幕上显示的内容,解析用户的自然语言指令,并自动规划出一系列点击、滑动、输入等操作,最终替你完成复杂任务。比如你说:“打开小红书搜美食”,它就能自己启动App、进入搜索框、输入关键词、浏览结果,甚至点进感兴趣的笔记。
这背后的核心,是多模态能力与自动化控制的深度融合。它“看”图的能力来自强大的视觉语言模型,“动手”的能力则依赖 ADB 这个安卓系统的“后门工具”。两者结合,让AI真正拥有了“使用手机”的能力。
2. Phone Agent:让AI成为你的手机管家
在 Open-AutoGLM 的基础上,Phone Agent是一个更完整、更实用的手机智能助理实现。它不仅仅能执行简单命令,还能应对复杂的交互场景,比如登录验证、弹窗处理、多步骤跳转等。
整个系统的工作流程非常清晰:
- 屏幕感知:每隔几秒,系统会通过 ADB 截取当前手机屏幕画面。
- 多模态理解:将截图 + 用户指令一起输入到云端的视觉语言模型中,模型会分析:“现在屏幕上有什么?”、“用户想干什么?”、“下一步该点哪里?”
- 动作规划:模型输出具体的设备操作指令,比如
tap(500, 800)表示点击坐标 (500,800),input("美食")表示输入文字。 - 执行反馈:ADB 在本地执行这些操作,并再次截屏上传,形成一个持续的“观察-行动”循环。
最贴心的是,系统还内置了敏感操作确认机制。当检测到可能涉及隐私或资金的操作(如支付、删除账号),AI不会贸然执行,而是暂停并提示你手动接管。同样,在遇到验证码、人脸识别等AI无法处理的环节,也会自动停下来等你介入。
此外,Phone Agent 支持远程 ADB 调试,这意味着你不需要把手机一直连在电脑上。只要手机和电脑在同一局域网,或者通过公网连接,就可以实现远程控制。这对于开发者调试、远程运维、自动化测试等场景来说,简直是效率神器。
3. 本地环境搭建:从零开始配置控制端
要让 AI 接管你的手机,首先得在本地电脑上搭好“指挥中心”。这个过程分为三步:准备环境、设置手机、部署代码。
3.1 硬件与软件要求
- 操作系统:Windows 或 macOS 均可
- Python版本:建议使用 Python 3.10 或更高版本
- 安卓设备:Android 7.0 及以上版本的真机或模拟器
- ADB 工具:这是连接和控制安卓设备的核心工具包
3.2 安装并配置 ADB
Windows 用户
- 下载 Android SDK Platform Tools 并解压。
- 按下
Win + R,输入sysdm.cpl,打开“系统属性”。 - 进入“高级”选项卡 → “环境变量”。
- 在“系统变量”中找到
Path,点击编辑,添加你解压后的platform-tools文件夹路径。 - 打开命令提示符,输入:
如果返回类似adb versionAndroid Debug Bridge version 1.xx.xx,说明安装成功。
macOS 用户
打开终端,执行以下命令(假设你把 platform-tools 解压到了 Downloads 目录):
export PATH=${PATH}:~/Downloads/platform-tools你可以将这行命令写入.zshrc或.bash_profile文件,避免每次重启终端都要重新设置。
验证方式同上:
adb version4. 手机端设置:开启“被控制”模式
为了让电脑能远程操控手机,我们需要在手机上做一些关键设置。
4.1 开启开发者选项
进入手机“设置” → “关于手机” → 连续点击“版本号”7次,直到提示“您已进入开发者模式”。
4.2 启用 USB 调试
返回设置主界面 → “系统” → “开发者选项” → 找到并勾选“USB 调试”。
注意:不同品牌手机路径略有差异,请根据实际情况查找。
4.3 安装 ADB Keyboard(推荐)
这是一个特殊的输入法,允许我们通过 ADB 命令向手机输入文字,而无需手动打字。
- 下载 ADB Keyboard APK 并安装。
- 进入“设置” → “语言与输入法” → “默认键盘” → 切换为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 # Windows然后安装依赖:
pip install -r requirements.txt pip install -e .-e .表示以可编辑模式安装,方便后续修改调试。
6. 设备连接:USB 与 WiFi 两种方式
连接设备是关键一步。Open-AutoGLM 支持两种连接方式:USB 和 WiFi。
6.1 USB 连接(稳定首选)
使用数据线将手机连接电脑。
手机弹出“允许USB调试?”对话框时,点击“允许”。
在终端运行:
adb devices输出应类似:
List of devices attached 1234567890ABCDEF device出现
device状态即表示连接成功。
6.2 WiFi 远程连接(灵活高效)
如果你不想一直插着线,可以用 WiFi 连接。但首次必须通过 USB 设置。
- 先用 USB 连接手机,确保
adb devices能识别。 - 执行以下命令开启 ADB over TCP/IP:
adb tcpip 5555 - 断开 USB 数据线。
- 查找手机的局域网 IP 地址(可在“设置”→“WLAN”中查看)。
- 使用 IP 连接设备:
成功后会提示:adb connect 192.168.x.x:5555connected to 192.168.x.x:5555
之后只要在同一网络下,随时可以用adb connect重新连接。
7. 启动 AI 代理:让 AI 开始操作手机
一切就绪,现在可以下达指令,让 AI 接管手机了。
7.1 命令行方式启动
在项目根目录运行:
python main.py \ --device-id 192.168.x.x:5555 \ --base-url http://<云服务器IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:设备标识,可以是adb devices显示的 ID,也可以是IP:5555格式的远程地址。--base-url:指向你部署在云服务器上的 vLLM 服务地址,格式为http://公网IP:端口/v1。--model:指定使用的模型名称,需与服务端加载的一致。- 最后的字符串:你的自然语言指令,越清晰越好。
执行后,你会看到 AI 开始自动截图、调用模型、生成操作,并在手机上一步步执行——就像有人在替你操作一样。
7.2 使用 Python API 编程控制
除了命令行,你还可以在自己的脚本中集成 Phone Agent 的功能。
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}") # 断开连接 conn.disconnect("192.168.1.100:5555")这种方式适合嵌入到自动化测试、远程运维、批量任务等系统中。
8. 常见问题与排查建议
尽管流程清晰,但在实际操作中仍可能遇到一些问题。以下是高频问题及解决方案。
8.1 ADB 连接失败
- 现象:
adb devices显示unauthorized或offline - 原因:未授权调试或服务异常
- 解决:
- 检查手机是否弹出“允许USB调试?”提示,确认勾选“始终允许”。
- 重启 ADB 服务:
adb kill-server adb start-server
8.2 WiFi 连接被拒绝
- 现象:
adb connect返回failed to connect - 原因:防火墙阻止、IP错误、端口未开放
- 解决:
- 确保手机和电脑在同一局域网。
- 检查路由器是否有设备隔离策略。
- 尝试先用 USB 执行
adb tcpip 5555再断开。
8.3 模型无响应或乱码
- 现象:AI 不执行操作,或输出奇怪字符
- 原因:vLLM 服务异常、显存不足、max-model-len 设置不当
- 解决:
- 检查云服务器日志,确认模型已正确加载。
- 确保 GPU 显存足够(至少 24GB 对于 9B 模型)。
- 调整
--max-model-len参数,避免过长上下文导致崩溃。
8.4 输入中文失败
- 现象:搜索框无法输入中文
- 原因:默认输入法未切换为 ADB Keyboard
- 解决:
- 进入手机“语言与输入法”设置,手动切换默认输入法为 ADB Keyboard。
- 或通过 ADB 命令切换:
adb shell ime set com.android.adbkeyboard/.AdbIME
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。