Open-AutoGLM实战应用:一句话让手机自动搜美食
1. 引言:从自然语言到手机自动化
在移动互联网高度普及的今天,用户每天需要在多个App之间频繁切换,执行诸如“搜索附近餐厅”、“比价下单”、“关注博主”等重复性操作。尽管智能手机功能强大,但人机交互仍依赖手动点击与滑动。Open-AutoGLM的出现,正在改变这一现状。
Open-AutoGLM 是由智谱AI开源的一款基于视觉语言模型(VLM)的手机端 AI Agent 框架,名为AutoGLM-Phone。它能够通过多模态理解手机屏幕内容,并结合自然语言指令,利用 ADB(Android Debug Bridge)自动完成一系列复杂操作。用户只需说一句:“打开小红书搜美食”,系统即可自主解析意图、识别界面元素、规划动作路径并执行任务——整个过程无需人工干预。
该框架不仅支持中文主流应用生态(如微信、抖音、美团、淘宝等),还具备敏感操作确认机制和人工接管能力,兼顾自动化效率与使用安全性。本文将围绕其核心架构、部署流程及典型应用场景展开详细实践解析,帮助开发者快速上手并落地真实业务场景。
2. 技术架构与工作原理
2.1 系统整体架构
Open-AutoGLM 的运行依赖于三大核心组件协同工作:
- 视觉语言模型(VLM):负责理解当前手机屏幕截图中的UI元素及其语义。
- 任务规划引擎:接收用户自然语言指令,结合屏幕状态进行意图解析与动作序列生成。
- ADB 控制层:通过 Android 调试桥接协议实现对设备的实际控制,包括点击、滑动、输入文本等。
[用户指令] ↓ [NLP 意图解析 → 屏幕图像输入] ↓ [视觉语言模型推理] → [生成下一步操作] ↓ [ADB 执行动作] → [获取新屏幕截图] ↑_________________________|整个流程形成一个闭环反馈系统,确保每一步操作都基于最新的界面状态做出决策。
2.2 多模态感知能力详解
传统自动化脚本依赖固定坐标或控件ID,难以应对界面动态变化。而 Open-AutoGLM 使用多模态大模型对屏幕截图进行理解,能准确识别按钮、输入框、列表项等UI组件,并将其映射为可操作区域。
例如,在“打开小红书搜美食”任务中:
- 模型首先识别主屏上的“小红书”图标位置;
- 启动App后,分析首页是否出现搜索栏;
- 自动调用
adb shell input text输入关键词“美食”; - 触发搜索按钮完成跳转。
这种“看图决策”的方式极大提升了泛化能力,即使App版本更新导致布局微调,也能自适应调整操作路径。
2.3 安全机制设计
为防止误操作带来风险,系统内置了以下安全策略:
- 敏感操作拦截:当检测到支付、删除账户、授权登录等高危行为时,暂停执行并提示用户确认。
- 验证码/生物认证人工接管:遇到图形验证码、短信验证或指纹识别场景,自动退出自动化流程,交由用户处理。
- 远程调试保护:仅允许在同一局域网或配置白名单IP的设备连接,避免未授权访问。
这些机制使得 Open-AutoGLM 在追求自动化的同时,依然保持可控性和可信度。
3. 部署与环境搭建
3.1 硬件与软件准备
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows / macOS |
| Python 版本 | 3.10+ |
| Android 设备 | Android 7.0+ 手机或模拟器 |
| ADB 工具 | 已安装并配置环境变量 |
ADB 安装与验证
以 Windows 为例:
- 下载 Android SDK Platform Tools 并解压。
- 将解压路径添加至系统
PATH环境变量:Win + R→ 输入sysdm.cpl→ 高级 → 环境变量 → 编辑Path→ 添加路径。
- 命令行执行:
若输出版本信息,则表示安装成功。adb version
macOS 用户可通过终端临时添加路径:
export PATH=${PATH}:~/Downloads/platform-tools3.2 手机端设置
开启开发者模式
进入“设置 → 关于手机”,连续点击“版本号”7次以上,直至提示“您已进入开发者模式”。启用 USB 调试
返回“设置 → 开发者选项”,勾选“USB 调试”。安装 ADB Keyboard
- 下载 ADB Keyboard APK 并安装。
- 进入“设置 → 语言与输入法 → 虚拟键盘”,选择 ADB Keyboard 为默认输入法。
注意:启用 ADB Keyboard 可使模型通过 ADB 发送文本,避免手动打字。
3.3 克隆与安装控制端代码
# 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 安装依赖 pip install -r requirements.txt pip install -e .此步骤将在本地构建phone_agent模块,用于后续调用 API 或命令行运行。
4. 连接设备与启动代理
4.1 设备连接方式
USB 连接(推荐初学者)
- 使用数据线连接手机与电脑。
- 手机弹出“允许USB调试?”对话框时,点击“允许”。
- 验证连接状态:
输出应类似:adb devicesList of devices attached 123456789abc device
WiFi 远程连接(适合远程调试)
- 先通过 USB 连接,开启 TCP/IP 模式:
adb tcpip 5555 - 断开 USB,使用 IP 地址连接:
其中adb connect 192.168.x.x:5555192.168.x.x为手机在同一WiFi下的局域网IP(可在“设置 → WLAN → 当前网络”查看)。
4.2 启动 AI 代理服务
有两种方式启动任务执行:命令行直接运行或通过 Python API 调用。
方法一:命令行运行(最简方式)
python main.py \ --device-id 123456789abc \ --base-url http://<server-ip>:8000/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
| 参数 | 说明 |
|---|---|
--device-id | 通过adb devices获取的设备ID或IP:端口 |
--base-url | 模型服务地址(本地为http://localhost:8000/v1) |
--model | 指定使用的模型名称 |
| 最后字符串 | 用户自然语言指令 |
提示:若使用第三方模型服务(如智谱 BigModel),需替换
--base-url和提供--apikey。
方法二:Python API 调用(适合集成进项目)
from phone_agent.adb import ADBConnection, list_devices from phone_agent import PhoneAgent from phone_agent.model import ModelConfig # 初始化 ADB 连接 conn = ADBConnection() success, msg = conn.connect("192.168.1.100:5555") print(f"连接状态: {msg}") # 列出所有连接设备 devices = list_devices() for d in devices: print(f"{d.device_id} - {d.connection_type.value}") # 配置模型 model_config = ModelConfig( base_url="http://localhost:8000/v1", model_name="autoglm-phone-9b" ) # 创建 Agent 实例并运行任务 agent = PhoneAgent(model_config=model_config) result = agent.run("打开小红书搜索美食") print(result)该方式便于嵌入自动化测试、远程运维等系统中,实现批量任务调度。
5. 实际应用场景演示
5.1 场景一:一键搜索本地美食
指令:
“打开美团搜索附近的火锅店”
执行流程:
- 检测桌面是否存在“美团”App图标;
- 点击图标启动应用;
- 识别首页搜索框并点击;
- 输入“火锅店”;
- 触发搜索,展示结果页。
✅优势:无需手动打开App、输入关键词,尤其适合老年人或视障用户。
5.2 场景二:跨平台购物比价
指令:
“比较这个洗发水在京东和淘宝的价格,然后选择最便宜的平台下单。”
执行逻辑:
- 分别启动京东与淘宝;
- 搜索同一商品关键词;
- 提取价格信息进行对比;
- 根据预设规则选择最优平台并跳转至详情页(下单环节可设为人工接管)。
📌注意:涉及支付的操作默认不自动执行,需用户确认。
5.3 场景三:社交媒体自动化操作
指令:
“打开微信,对文件传输助手发送消息:部署成功”
执行步骤:
- 启动微信;
- 在聊天列表查找“文件传输助手”;
- 进入会话界面;
- 调用 ADB Keyboard 输入指定文本;
- 点击发送按钮。
此类任务可用于自动化通知、日志上报等轻量级运营场景。
5.4 场景四:浏览器与视频娱乐控制
英文指令示例:
“Open Chrome browser and search for AI news”
中文指令示例:
“打开抖音刷视频10分钟”
系统可根据上下文判断是否需要滚动刷新、点赞、评论等操作,适用于内容浏览类自动化测试或辅助浏览。
6. 常见问题与排查建议
6.1 连接失败常见原因
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
adb devices无设备显示 | USB调试未开启 | 检查开发者选项 |
unauthorized状态 | 未授权调试 | 手机端确认授权弹窗 |
connection refused | 端口未开放或防火墙阻挡 | 检查服务器端口映射与安全组规则 |
6.2 模型响应异常
| 问题 | 排查方向 |
|---|---|
| 模型返回乱码或空响应 | vLLM 启动参数错误 |
| 图像无法加载 | 媒体路径限制 |
| 推理速度慢 | GPU 显存不足 |
建议使用官方提供的检查脚本验证部署状态:
python scripts/check_deployment_cn.py --base-url http://your-server:8000/v1 --model autoglm-phone-9b7. 总结
Open-AutoGLM 作为国内首个开源的手机端 AI Agent 框架,标志着智能体技术向真实设备操作迈出了关键一步。通过融合视觉语言模型与 ADB 自动化控制,它实现了“一句话驱动手机”的愿景,广泛适用于生活服务、电商比价、社交互动等多个场景。
本文从技术原理、环境搭建、设备连接、API调用到实际案例进行了全流程实践指导,展示了如何将自然语言转化为可执行的手机操作。未来随着模型轻量化与边缘计算的发展,这类 AI Agent 有望集成进更多终端设备,真正实现“人人可用的AI手机助理”。
对于开发者而言,Open-AutoGLM 不仅是一个工具,更是一种全新的交互范式探索。掌握其使用方法,意味着掌握了通往下一代人机交互的大门钥匙。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。