AutoGLM-Phone如何连接真机?USB/WiFi双模式部署教程
1. Open-AutoGLM:智谱开源的手机端AI Agent框架
你有没有想过,让AI直接帮你操作手机?不是简单的语音助手,而是能“看懂”屏幕、理解界面、自动点击滑动,像真人一样完成复杂任务的智能体。这就是AutoGLM-Phone的核心能力。
它由智谱AI开源推出,基于强大的视觉语言模型(VLM),结合Android Debug Bridge(ADB)技术,构建了一个真正意义上的手机端AI代理框架。你只需要用自然语言下达指令,比如“打开小红书搜索附近的火锅店”,系统就能自动解析意图、识别当前界面元素、规划操作路径,并一步步执行点击、输入、滑动等动作,全程无需手动干预。
更关键的是,这个框架是开放的。开发者可以本地部署、调试、扩展,把它集成进自己的自动化流程或产品中。而连接真实手机设备,是这一切的第一步。本文将手把手教你如何通过USB 和 WiFi 两种方式,把你的安卓手机接入 AutoGLM-Phone 控制系统,实现真正的“AI接管”。
2. 核心原理:多模态感知 + 自动化执行
AutoGLM-Phone 的工作流程可以拆解为三个关键环节:
- 屏幕感知:通过 ADB 实时抓取手机屏幕画面,送入视觉语言模型进行分析。模型不仅能识别文字、按钮、图标,还能理解它们在界面上的布局和语义关系。
- 意图理解与规划:用户输入的自然语言指令(如“给昨天聊天的朋友发个笑脸表情”)被大模型解析,结合当前屏幕内容,推理出下一步该做什么——是点击消息列表?还是进入输入框?
- 动作执行:系统生成具体的 ADB 操作命令(如
adb shell input tap x y),发送到手机执行,完成点击、滑动、输入等动作。
整个过程形成一个“感知-决策-执行”的闭环。而且,为了安全起见,系统内置了敏感操作确认机制。当检测到支付、删除等高风险行为时,会暂停并提示用户确认。在需要输入验证码或登录密码的场景,也支持人工临时接管,确保灵活性与安全性兼备。
3. 硬件与环境准备
在开始之前,先确认你的开发环境是否满足以下条件:
3.1 基础配置要求
- 本地电脑操作系统:Windows 或 macOS(Linux 同理,但本文以 Win/Mac 为主)
- Python 版本:建议使用 Python 3.10 或更高版本
- 安卓设备:Android 7.0 及以上系统的手机或模拟器
- 网络环境:USB 数据线(推荐原装),或确保手机与电脑处于同一局域网
3.2 安装 ADB 工具
ADB(Android Debug Bridge)是连接和控制安卓设备的核心工具。你需要先安装它,并配置好环境变量。
Windows 用户:
- 下载 Android SDK Platform Tools 并解压到本地目录(例如
C:\platform-tools)。 - 按下
Win + R,输入sysdm.cpl,打开“系统属性”。 - 进入“高级”选项卡 → “环境变量”。
- 在“系统变量”中找到
Path,点击“编辑” → “新建”,添加你解压 platform-tools 的完整路径(如C:\platform-tools)。 - 打开命令提示符(CMD)或 PowerShell,输入:
如果返回类似adb versionAndroid Debug Bridge version 1.xx.xx的信息,说明安装成功。
macOS 用户:
- 下载并解压 platform-tools 到任意目录(例如
~/Downloads/platform-tools)。 - 打开终端(Terminal),运行以下命令临时添加路径(每次新开终端需重复):
若想永久生效,可将上述命令添加到 shell 配置文件中(如export PATH=${PATH}:~/Downloads/platform-tools~/.zshrc):echo 'export PATH=${PATH}:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc - 验证安装:
adb version
4. 手机端设置:开启调试权限
为了让电脑通过 ADB 控制手机,必须在手机上开启开发者权限。
4.1 开启开发者模式
- 进入手机“设置” → “关于手机”。
- 找到“版本号”或“内部版本号”,连续点击 7 次,直到提示“您已进入开发者模式”。
4.2 启用 USB 调试
- 返回“设置”主菜单,进入“开发者选项”(通常在“系统”或“更多设置”中)。
- 找到“USB 调试”选项,勾选启用。
- 当你首次通过 USB 连接电脑时,手机会弹出“允许 USB 调试吗?”的提示,务必点击“允许”,并勾选“始终允许”。
4.3 安装 ADB Keyboard(可选但推荐)
这是一个特殊的输入法应用,允许你通过 ADB 命令向手机输入文字,避免因默认输入法不兼容导致无法输入中文或特殊字符。
- 下载 ADB Keyboard APK 并安装到手机。
- 进入“设置” → “语言与输入法” → “当前输入法”或“默认键盘”。
- 将默认输入法切换为ADB Keyboard。
5. 部署控制端代码(Open-AutoGLM)
现在回到本地电脑,准备运行控制程序。
5.1 克隆项目仓库
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM5.2 安装依赖
pip install -r requirements.txt pip install -e .注意:建议在虚拟环境中操作,避免依赖冲突。可使用
python -m venv venv && source venv/bin/activate(macOS/Linux)或venv\Scripts\activate(Windows)创建并激活虚拟环境。
6. 连接设备:USB 与 WiFi 双模式详解
6.1 USB 连接(稳定首选)
这是最简单、最稳定的连接方式,适合调试阶段。
- 使用数据线将手机连接电脑。
- 手机弹出“允许调试”提示时,点击“允许”。
- 在终端运行:
正常输出应类似:adb devices
其中List of devices attached 1234567890ABCDEF device1234567890ABCDEF就是你的设备ID。
6.2 WiFi 远程连接(无线自由)
当你希望摆脱数据线束缚,或远程控制不在身边的设备时,WiFi 模式非常实用。但首次配置仍需借助 USB。
第一步:通过 USB 启用 ADB over TCP/IP
# 先用 USB 连接,然后执行 adb tcpip 5555这条命令会让手机监听 5555 端口的 TCP 连接。
第二步:断开 USB,通过 IP 连接
- 断开 USB 数据线。
- 查找手机的局域网 IP 地址(可在“设置”→“WLAN”→点击当前网络查看)。
- 在终端运行:
替换adb connect 192.168.x.x:5555192.168.x.x为你的手机IP。成功后会显示:connected to 192.168.x.x:5555 - 再次运行
adb devices,确认设备已连接。
小贴士:部分手机重启后会关闭 TCP 调试,需重新执行
adb tcpip 5555。可考虑使用第三方工具如“无线调试”App简化流程。
7. 启动 AI 代理:下达第一条指令
一切就绪,现在让 AI 接管手机!
7.1 命令行快速启动
确保你的云服务器上的 vLLM 服务已启动,并映射了对外端口(如 8800)。在 Open-AutoGLM 目录下运行:
python main.py \ --device-id 1234567890ABCDEF \ --base-url http://123.45.67.89:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:从adb devices获取的设备ID或IP:端口(如192.168.1.100:5555)--base-url:云服务器上 vLLM 服务的公网地址和端口--model:指定使用的模型名称- 最后的字符串:你的自然语言指令
执行后,你会看到 AI 开始截图、分析、生成操作步骤,并自动在手机上执行点击、搜索、关注等动作。
7.2 使用 Python API 灵活控制
如果你希望将 AutoGLM-Phone 集成到自己的项目中,可以直接调用其 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 if devices and devices[0].connection_type.value == "usb": success, msg = 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或无设备。 - 解决:
- 检查手机是否弹出“允许调试”对话框,点击“允许”。
- 重新插拔 USB 线,或更换接口/数据线。
- 在开发者选项中关闭再重新开启“USB 调试”。
8.2 WiFi 连接失败
- 现象:
adb connect提示“failed to connect”。 - 解决:
- 确认手机与电脑在同一 WiFi 网络。
- 确保已执行
adb tcpip 5555。 - 检查手机防火墙或安全软件是否阻止了 ADB。
- 尝试重启 ADB 服务:
adb kill-server && adb start-server。
8.3 模型无响应或乱码
- 现象:AI 不执行操作,或输出乱码指令。
- 解决:
- 检查
--base-url是否正确指向 vLLM 服务的/v1接口。 - 确认 vLLM 启动时设置了正确的
--model和--max-model-len参数。 - 查看服务器日志是否有 CUDA 显存不足或请求超时错误。
- 检查
8.4 输入中文失败
- 现象:需要输入文字时,手机无反应。
- 解决:
- 确保已安装并启用ADB Keyboard。
- 在“语言与输入法”中将其设为默认输入法。
- 测试命令:
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "你好"。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。