实测分享:我是如何用Open-AutoGLM自动搜小红书美食的
随着AI智能体技术的发展,手机端自动化操作正从“手动点击”迈向“自然语言驱动”的新阶段。最近我尝试使用智谱开源的Open-AutoGLM框架,仅通过一句指令:“打开小红书搜索美食”,就让AI自动完成了应用启动、关键词输入、结果浏览等全流程操作。整个过程无需手动干预,真正实现了“动口不动手”。
本文将基于真实测试场景,详细记录我是如何部署 Open-AutoGLM 并实现对小红书的自动化搜索操作的,涵盖环境配置、设备连接、指令执行与问题排查全过程,帮助开发者快速上手这一前沿的多模态AI Agent框架。
1. 技术背景与核心价值
1.1 什么是 Open-AutoGLM?
Open-AutoGLM – 智谱开源的手机端AI Agent框架,是基于 AutoGLM 构建的多模态手机智能助理系统。它结合了视觉语言模型(VLM)和 ADB 自动化控制能力,能够:
- 感知屏幕内容:通过截图理解当前界面元素(如按钮、输入框、标题)
- 解析用户意图:接收自然语言指令并转化为可执行任务
- 自主规划动作:决定下一步应点击、滑动或输入什么
- 执行设备操作:通过 ADB 发送 tap、swipe、input 命令完成交互
其最大亮点在于:你不需要写任何代码逻辑来判断“现在是不是在首页”或“搜索框在哪”,AI会自己看图决策。
1.2 核心优势对比传统自动化方案
| 维度 | 传统脚本(Appium/Auto.js) | Open-AutoGLM |
|---|---|---|
| 开发成本 | 高(需定位控件ID/坐标) | 低(只需一句话指令) |
| 界面适配性 | 差(UI变更即失效) | 强(视觉理解动态适应) |
| 可读性 | 代码复杂难维护 | 指令直观易理解 |
| 多跳任务支持 | 有限 | 支持长链条推理与状态追踪 |
例如,在“打开小红书 → 搜索‘甜品’→ 浏览前3条笔记”这个任务中,传统方式需要编写多个条件判断和等待逻辑,而 Open-AutoGLM 只需一条指令即可完成。
2. 环境准备与本地部署
要运行 Open-AutoGLM,需在本地电脑配置控制端,并通过 ADB 连接安卓设备。以下是完整部署流程。
2.1 硬件与软件要求
- 操作系统:Windows 或 macOS
- Python 版本:建议 3.10+
- 安卓设备:Android 7.0+ 手机或模拟器
- ADB 工具:用于设备通信
- 网络环境:本地电脑与云服务可互通
2.2 安装 ADB 调试工具
Windows 用户:
- 下载 Android SDK Platform Tools
- 解压后将文件夹路径添加到系统
PATH环境变量 - 打开命令行输入:
若返回版本号则安装成功。adb version
macOS 用户:
在终端执行:
export PATH=${PATH}:~/Downloads/platform-tools注意:若解压路径不同,请替换为实际路径。
2.3 手机端设置
开启开发者模式
设置 → 关于手机 → 连续点击“版本号”7次启用 USB 调试
设置 → 开发者选项 → 启用“USB 调试”安装 ADB Keyboard 输入法
- 下载 ADB Keyboard APK 并安装
- 进入“语言与输入法”设置,切换默认输入法为 ADB Keyboard
目的:允许 AI 通过 ADB 发送文本输入,避免物理键盘干扰
3. 部署 Open-AutoGLM 控制端
Open-AutoGLM 是一个客户端-服务端架构系统,其中模型运行在云端,本地负责设备控制和指令转发。
3.1 克隆项目并安装依赖
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 安装依赖 pip install -r requirements.txt pip install -e .推荐使用虚拟环境(venv)隔离依赖。
3.2 获取设备连接信息
确保手机已通过 USB 或 WiFi 连接到电脑。
查看设备列表:
adb devices输出示例:
List of devices attached emulator-5554 device记下设备 ID(如emulator-5554),后续用于连接。
使用 WiFi 远程连接(推荐)
若想脱离 USB 线缆,可启用无线调试:
# 先用 USB 连接,开启 TCP/IP 模式 adb tcpip 5555 # 断开 USB,通过 IP 连接(需在同一局域网) adb connect 192.168.1.100:5555之后即可拔掉数据线,继续使用 ADB 控制设备。
4. 启动 AI 代理并执行任务
一切准备就绪后,即可启动主程序并下发自然语言指令。
4.1 命令行方式运行任务
在项目根目录执行:
python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://<your-server-ip>:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书搜索美食相关的笔记"参数说明:
| 参数 | 说明 |
|---|---|
--device-id | 设备 ID,可通过adb devices获取 |
--base-url | 云服务器上 vLLM 服务的公网地址(含端口) |
--model | 指定使用的模型名称 |
| 最后的字符串 | 用户自然语言指令 |
示例中的
<your-server-ip>需替换为你实际部署模型服务的公网 IP 和映射端口(如 8800)。
4.2 实际执行过程观察
当我运行上述命令后,AI 代理开始工作,日志显示以下行为序列:
- 识别当前界面:截图分析发现桌面无小红书图标,决定先拉起应用抽屉
- 滑动查找 App:向上滑动两次,在第二页找到“小红书”图标并点击
- 等待加载完成:检测到首页“推荐”标签出现,确认进入主界面
- 定位搜索框:识别顶部搜索栏区域,发送点击事件
- 输入关键词:通过 ADB Keyboard 输入“美食”
- 触发搜索:点击“搜索”按钮,进入结果页
- 浏览内容:向下滚动浏览前几条笔记,任务完成
整个过程约耗时 45 秒,完全无人工干预。
5. Python API 方式集成与扩展
除了命令行,Open-AutoGLM 还提供 Python API,便于嵌入到其他系统中。
5.1 使用 ADBConnection 管理设备
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}")5.2 获取设备 IP 地址(用于无线连接)
# 在 USB 连接状态下启用 TCP/IP success, message = conn.enable_tcpip(5555) if success: ip = conn.get_device_ip() print(f"设备 IP: {ip}")该功能可用于自动化部署场景,动态获取设备网络信息。
5.3 自定义任务流程(高级用法)
你可以封装常用任务为函数,例如:
def search_xiaohongshu(keyword): command = f""" python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://<server-ip>:8800/v1 \ --model autoglm-phone-9b \ "打开小红书搜索{keyword}" """ import os os.system(command) # 调用 search_xiaohongshu("北京早餐推荐")6. 常见问题与排查建议
在实测过程中,我也遇到了一些典型问题,总结如下供参考。
6.1 ADB 连接失败
现象:adb devices显示unauthorized或无法识别设备
解决方法:
- 检查手机是否弹出“允许USB调试?”对话框,点击“允许”
- 重新插拔 USB 线,或重启 ADB 服务:
adb kill-server adb start-server
6.2 模型响应慢或乱码
现象:AI 输出非中文、重复动作、无响应
可能原因:
- 云服务器显存不足,导致模型推理异常
max_model_len设置过小,截断上下文- 输入图像分辨率过高,影响 VLM 理解效率
优化建议:
- 确保 GPU 显存 ≥ 24GB(推荐 A100/H100)
- 设置
--max-model-len 8192以支持长上下文 - 调整截图尺寸至 720p 左右
6.3 输入法未生效导致无法打字
现象:搜索时无法输入文字
检查项:
- 是否已安装 ADB Keyboard?
- 是否已在“语言与输入法”中设为默认?
- 是否有其他输入法抢占焦点?
可在设置中临时禁用其他输入法,确保 ADB Keyboard 唯一可用。
6.4 云服务防火墙限制
现象:连接超时、HTTP 502 错误
解决方案:
- 检查云服务器安全组规则,放行对应端口(如 8800)
- 使用
telnet <ip> 8800测试连通性 - 若使用 Docker 部署,确认端口已正确映射:
docker run -p 8800:80 ...
7. 总结
通过本次实测,我深刻体会到 Open-AutoGLM 在手机端自动化领域的突破性意义。它不再依赖传统的“坐标+控件ID”编程范式,而是通过视觉理解 + 语言指令 + 自主决策的方式,实现了真正意义上的“通用手机助手”。
对于开发者而言,Open-AutoGLM 提供了一种全新的自动化思路——你不再需要关心“怎么点”,只需要告诉 AI “你想做什么”。无论是批量测试、数据采集,还是个人效率提升,它都具备极强的应用潜力。
当然,目前仍存在一些局限,如对复杂验证码场景的支持较弱、依赖稳定网络连接等。但随着多模态模型能力的持续进化,这类 AI Agent 必将成为未来移动生态的重要组成部分。
如果你也想体验“动口不动手”的智能生活,不妨试试 Open-AutoGLM,或许下一个自动帮你订餐、查行程、回消息的 AI 助手,就诞生于你的实验之中。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。