Open-AutoGLM部署技巧:快速获取设备IP地址的两种方法
Open-AutoGLM – 智谱开源的手机端AI Agent框架,为开发者提供了一种全新的自动化交互方式。它结合视觉语言模型与安卓系统底层控制能力,让自然语言指令可以直接转化为手机操作行为。
AutoGLM-Phone 是一个基于视觉语言模型的 AI 手机智能助理框架。它能以多模态方式理解屏幕内容,并通过 ADB 自动操控设备。用户只需用自然语言下指令,如“打开小红书搜美食”,模型即可解析意图、理解界面并自动规划、执行操作流程,无需手动点击。
Phone Agent 是一个基于 AutoGLM 构建的手机端智能助理框架,它能够以多模态方式理解手机屏幕内容,并通过自动化操作帮助用户完成任务。系统通过 ADB(Android Debug Bridge)来控制设备,以视觉语言模型进行屏幕感知,再结合智能规划能力生成并执行操作流程。用户只需用自然语言描述需求,如“打开小红书搜索美食”,Phone Agent 即可自动解析意图、理解当前界面、规划下一步动作并完成整个流程。系统还内置敏感操作确认机制,并支持在登录或验证码场景下进行人工接管。同时,它提供远程 ADB 调试能力,可通过 WiFi 或网络连接设备,实现灵活的远程控制与开发。
在实际部署过程中,一个关键步骤是准确获取安卓设备的 IP 地址,以便通过无线 ADB 实现远程连接。本文将详细介绍两种稳定高效的设备 IP 获取方法,助你顺利完成 Open-AutoGLM 的本地控制端配置。
1. 硬件与环境准备
在开始之前,请确保你的开发环境满足以下基本要求:
- 操作系统:Windows 或 macOS 均可支持
- Python 版本:建议使用 Python 3.10 及以上版本
- 安卓设备:Android 7.0+ 的真实手机或模拟器
- ADB 工具:用于与设备通信的核心工具包
安装并配置 ADB
ADB(Android Debug Bridge)是连接电脑与安卓设备的关键桥梁。你需要从官方 Android SDK 平台工具中下载platform-tools包。
Windows 配置步骤:
- 下载后解压
platform-tools.zip到任意目录(例如C:\adb\) - 按 Win + R 输入
sysdm.cpl,打开“系统属性” - 进入“高级”选项卡 → “环境变量”
- 在“系统变量”区域找到
Path,点击编辑 → 新建 → 添加 ADB 解压路径 - 打开命令提示符,输入
adb version,若显示版本信息则表示配置成功
macOS 配置方法:
如果你使用的是 Mac,可以在终端中临时添加路径(重启失效):
export PATH=${PATH}:~/Downloads/platform-tools如需永久生效,可将上述命令写入 shell 配置文件(如.zshrc或.bash_profile)。
验证方式相同:运行adb version查看输出。
2. 手机端设置
为了让电脑能顺利控制手机,需要在设备上开启必要的调试权限。
开启开发者模式
进入手机“设置” → “关于手机” → 连续点击“版本号”7次,直到提示“您已进入开发者模式”。
启用 USB 调试
返回设置主菜单 → “开发者选项” → 找到并勾选“USB 调试”。
注意:不同品牌手机可能对“开发者选项”的位置略有调整,请根据具体机型查找。
安装 ADB Keyboard(可选但推荐)
为了实现文本输入自动化,建议安装 ADB Keyboard APK:
- 下载 APK 文件并安装到手机
- 进入“设置” → “语言与输入法” → “默认键盘”
- 将输入法切换为“ADB Keyboard”
这样,AI Agent 就可以通过 ADB 发送文本,而无需依赖物理键盘或第三方输入法。
3. 部署控制端代码(Open-AutoGLM)
接下来,在本地电脑上部署 Open-AutoGLM 控制端。
克隆项目仓库
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM安装依赖库
pip install -r requirements.txt pip install -e .这会安装所有必需的 Python 包,并将当前项目注册为可调用模块,便于后续脚本调用。
4. 设备连接方式概述
Open-AutoGLM 支持两种设备连接方式:USB 和 WiFi。其中,WiFi 连接更适用于远程调试和无线自动化场景,但前提是必须知道设备的局域网 IP 地址。
USB 连接测试
先通过 USB 线连接手机与电脑,然后运行:
adb devices如果输出类似:
List of devices attached ABCDEF123 device说明设备已正确识别。
启用无线 ADB(TCP/IP 模式)
首次使用 WiFi 连接时,需先通过 USB 设置端口监听:
adb tcpip 5555此命令会让设备在 5555 端口启动 TCP/IP 调试服务。
断开 USB 后,即可通过 IP 地址连接:
adb connect 192.168.x.x:5555连接成功后,再次运行adb devices应能看到设备以 IP 形式列出。
5. 快速获取设备IP地址的两种实用方法
在无线连接场景中,最关键也最容易出错的一步就是准确获取安卓设备的局域网 IP 地址。以下是两种经过验证、简单高效的方法,适用于绝大多数主流机型。
5.1 方法一:通过 ADB 命令直接查询(推荐)
这是最可靠且通用的方式,无需依赖第三方应用或手动查看设置界面。
步骤如下:
- 使用 USB 线连接手机与电脑
- 确保
adb devices能看到设备 - 执行以下命令获取 IP 地址:
adb shell ip route | awk '{print $9}'或者更兼容旧版系统的写法:
adb shell ifconfig wlan0 | grep 'inet addr:' | cut -d: -f2 | awk '{print $1}'对于较新安卓系统(Android 8+),推荐使用:
adb shell ip addr show wlan0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1说明:
wlan0是大多数安卓设备的无线网卡名称。该命令会输出形如192.168.1.100的 IP 地址。
自动化脚本示例(Python)
你可以将这一过程封装成函数,方便集成到控制程序中:
import subprocess def get_device_ip(): try: result = subprocess.run( ["adb", "shell", "ip", "route"], capture_output=True, text=True, check=True ) # 提取第九个字段(通常是IP) for line in result.stdout.splitlines(): if "wlan0" in line and "src" in line: return line.split()[8] except Exception as e: print(f"获取IP失败: {e}") return None # 调用示例 ip = get_device_ip() if ip: print(f"设备IP地址: {ip}")这种方法的优势在于:
- 不依赖图形界面
- 可脚本化批量处理
- 准确率高,适合自动化流程
5.2 方法二:通过手机设置界面手动查看(备用方案)
当 ADB 无法正常工作或网络异常时,可以采用手动方式查看。
操作路径(以原生安卓为例):
- 打开“设置” → “WLAN”
- 点击当前连接的 Wi-Fi 名称
- 查看“IP 地址”字段,通常位于底部信息区
不同品牌差异提示:
- 小米/Redmi:进入 Wi-Fi 详情页后点击“高级设置”
- 华为/Honor:可能需要展开“显示更多选项”
- 三星:长按 Wi-Fi 名称 → 修改网络 → 显示高级选项 → IP 地址
- OPPO/vivo:一般在“路由器信息”中可见
小技巧:部分手机支持“双击状态栏查看 IP”,可在开发者社区搜索对应机型是否支持。
虽然这种方式直观易懂,但在自动化部署中效率较低,仅建议作为排查问题时的辅助手段。
6. 启动 AI 代理并执行任务
完成设备连接后,就可以启动 Open-AutoGLM 的主程序,让 AI 接管手机操作。
6.1 命令行方式运行任务
在项目根目录下执行:
python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://<云服务器IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:填写通过前述方法获取的设备 IP + 端口号(格式:IP:5555)--base-url:指向运行 vLLM 或其他推理服务的公网地址- 最后的字符串:即自然语言指令,支持复杂语义理解和多步操作规划
6.2 使用 Python API 进行远程管理
除了命令行,Open-AutoGLM 还提供了完整的 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}") # (可选)启用 TCP/IP 并获取 IP success, message = conn.enable_tcpip(5555) ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")该 API 支持设备发现、连接管理、状态监控等功能,非常适合构建自动化测试平台或远程运维系统。
7. 常见问题与排查建议
在实际部署过程中,可能会遇到一些典型问题。以下是常见故障及其解决方案。
7.1 ADB 连接被拒绝或超时
- 原因:防火墙阻止了 5555 端口,或设备未正确启用 TCP/IP
- 解决方法:
- 检查手机是否执行了
adb tcpip 5555 - 确认路由器或电脑防火墙未屏蔽该端口
- 尝试更换端口(如 5554、5556)
- 检查手机是否执行了
7.2 获取不到 IP 地址
- 现象:
adb shell ip route返回空或错误 - 可能原因:
- 设备未连接 Wi-Fi(处于飞行模式或仅使用数据网络)
- ADB 权限未授权(首次连接需在手机上确认“允许调试”)
- 应对措施:
- 确保 Wi-Fi 已连接且有网络访问权限
- 拔插 USB 或重启 ADB 服务:
adb kill-server && adb start-server
7.3 模型响应缓慢或乱码
- 检查点:
- vLLM 服务是否正常运行
--base-url是否正确映射到模型服务端口- 显存是否足够(特别是运行 9B 模型时)
max-model-len参数是否设置合理(建议 ≥ 8192)
7.4 输入中文失败
- 若使用 ADB Keyboard 仍无法输入中文:
- 回到“语言与输入法”设置,确认 ADB Keyboard 已激活
- 可尝试发送 Unicode 编码字符进行测试:
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "你好世界"
8. 总结
本文围绕 Open-AutoGLM 的部署核心环节——设备 IP 获取,详细介绍了两种实用方法:ADB 命令直查法和手动设置查看法。前者适合自动化流程,后者可用于快速验证。
我们还完整梳理了从环境搭建、手机配置、代码部署到最终任务执行的全流程,并提供了 Python API 示例和常见问题解决方案,帮助开发者高效落地这一强大的手机端 AI Agent 框架。
掌握这些技巧后,你不仅能轻松实现“打开小红书搜美食”这类基础操作,还能进一步拓展至自动化测试、远程客服、批量账号运营等复杂场景。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。