开源AI手机助理Open-AutoGLM实战:屏幕理解+自动执行部署
你有没有想过,让手机自己“看懂”屏幕、听懂你说话,然后替你点开App、输入关键词、滑动页面、甚至完成关注操作?不是科幻电影,也不是未来概念——Open-AutoGLM 已经把这件事变成了可运行、可调试、可二次开发的现实。它不是又一个聊天机器人,而是一个真正能“动手”的AI手机助理。
Open-AutoGLM 是智谱开源的轻量级手机端AI Agent框架,核心目标很明确:让大模型从“会说”走向“会做”。它不依赖云端全量截图上传,也不靠预设脚本硬编码流程,而是通过视觉语言模型实时理解当前屏幕状态,并结合任务规划能力,生成可执行的原子操作序列(点击、滑动、输入、返回等),再通过 ADB 精准落地。整个过程像一位熟悉安卓系统的“数字同事”,安静、稳定、不厌其烦。
更关键的是,它把复杂性藏在了背后——你只需说一句“打开小红书搜美食”,剩下的交由模型判断:先找小红书图标、点击启动、等待首页加载、定位搜索框、输入“美食”、点击搜索按钮……每一步都基于对当前界面的视觉感知和逻辑推理。这不是规则匹配,而是多模态理解 + 动作规划 + 设备控制的完整闭环。
1. Open-AutoGLM 是什么:不止是“看图说话”的手机AI
1.1 它解决的不是新问题,而是老痛点
过去几年,我们见过太多“手机AI助手”:语音唤醒查天气、语音转文字记笔记、甚至语音控制智能家居。但它们有一个共同盲区——无法与手机界面产生真实交互。你说“帮我给张三发微信说会议改到三点”,它可能帮你生成文案,却没法真的打开微信、找到联系人、粘贴发送。原因很简单:传统模型缺乏对“界面即世界”的感知能力,也缺少安全可控的执行通道。
Open-AutoGLM 正是为填补这一断层而生。它把三个关键能力拧成一股绳:
- 屏幕理解力:用轻量化视觉语言模型(VLM)实时分析截屏图像,识别图标、文字、按钮位置、状态栏信息,甚至能区分“已关注”和“未关注”按钮;
- 意图解析力:将自然语言指令拆解为结构化任务目标(如“打开App→搜索→点击→关注”),并动态适配当前界面状态;
- 执行控制力:通过标准化 ADB 接口驱动真实设备,所有操作可审计、可回溯、可中断,不越权、不越界。
这三者叠加,让 AI 第一次真正具备了“在手机上工作”的基本素养。
1.2 和普通图文模型有本质区别
很多人第一反应是:“这不就是个带截图的多模态模型?”其实不然。普通图文模型(如Qwen-VL、LLaVA)擅长描述图片内容,比如“图中有一部黑色手机,屏幕上显示着微信聊天界面”。但 Open-AutoGLM 要回答的是:“这个‘+’号按钮在哪?它点下去会触发什么?如果它灰掉了,说明什么?下一步该点哪个元素才能进入搜索?”
它输出的不是一段描述,而是一条或多条可执行的 ADB 命令,例如:
adb shell input tap 540 1280 # 点击坐标 (540,1280) adb shell input text "美食" # 输入文字 adb shell input keyevent 66 # 按下回车键这种“理解→决策→动作”的链路,才是 Agent 的核心标志。
2. 部署前必读:硬件、环境与连接方式全梳理
2.1 本地控制端准备清单
Open-AutoGLM 的控制端运行在你的本地电脑(Windows/macOS),它负责接收指令、调用云端模型、下发 ADB 命令。部署前请确认以下四项已就绪:
- 操作系统:Windows 10/11 或 macOS Monterey 及以上;
- Python 环境:建议 Python 3.10+(避免 3.12 因部分依赖未适配导致安装失败);
- 安卓设备:Android 7.0+ 真机或模拟器(推荐真机,因部分模拟器不支持 ADB Keyboard 输入);
- ADB 工具:Android SDK Platform-Tools,这是整个控制链路的“神经末梢”。
为什么必须用 ADB?
ADB 是安卓官方调试桥,权限可控、协议稳定、无需 root。相比无障碍服务(AccessibilityService),它不依赖系统级授权,兼容性更好;相比 uiautomator2,它更底层、更轻量、更适合嵌入式Agent场景。
2.2 ADB 环境配置实操指南
Windows 用户(图形化操作更友好)
- 前往 Android SDK Platform-Tools 下载页 下载 zip 包;
- 解压到任意路径,例如
C:\platform-tools; - 按
Win + R输入sysdm.cpl→ “高级”选项卡 → “环境变量” → 在“系统变量”中找到Path→ “编辑” → “新建” → 粘贴刚才的解压路径; - 打开新命令提示符,输入
adb version,看到版本号即表示成功。
macOS 用户(终端一行搞定)
假设你把 platform-tools 解压到了~/Downloads/platform-tools:
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc adb version验证通过后,你会看到类似Android Debug Bridge version 1.0.41的输出。
2.3 手机端设置:三步打通“最后一米”
很多用户卡在连接环节,问题往往出在手机设置。请严格按顺序操作:
开启开发者模式:
进入「设置」→「关于手机」→ 连续点击「版本号」7次,直到弹出“您现在处于开发者模式”。启用 USB 调试:
返回「设置」→「系统」→「开发者选项」→ 打开「USB 调试」开关。
(若找不到“开发者选项”,请确认上一步已成功开启)安装并启用 ADB Keyboard(关键!):
- 下载 ADB Keyboard APK(推荐 v1.3+);
- 在手机上安装;
- 进入「设置」→「语言与输入法」→「虚拟键盘」→ 将「ADB Keyboard」设为默认输入法;
- 这一步决定了 AI 能否向任意输入框发送文字——没有它,“搜索美食”就只能停留在点击,无法真正输入。
小贴士:首次连接时,手机会弹出“允许 USB 调试吗?”提示,请勾选“始终允许”,避免后续每次操作都需手动确认。
3. 控制端部署:从克隆代码到运行第一条指令
3.1 获取并安装 Open-AutoGLM 控制端
控制端代码完全开源,无需编译,纯 Python 即可运行:
# 1. 克隆仓库(推荐使用 HTTPS) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 创建虚拟环境(强烈建议,避免依赖冲突) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装依赖(含核心库 phone_agent) pip install -r requirements.txt pip install -e .注意:pip install -e .是关键步骤,它将phone_agent模块以“可编辑模式”安装,确保后续修改代码能即时生效。
3.2 设备连接:USB 与 WiFi 两种方式详解
USB 连接(新手首选,最稳定)
- 用原装数据线连接手机与电脑;
- 手机端确认已授权 USB 调试;
- 终端执行:
adb devices正常输出应类似:
List of devices attached ZY322FDQJL device其中ZY322FDQJL就是你的设备 ID,后续命令中--device-id参数就填这个。
WiFi 远程连接(适合开发调试与多设备管理)
WiFi 方式分两步:先用 USB 启动 TCP/IP 模式,再断开 USB 用 IP 连接。
# 1. 用 USB 连接后,开启 TCP/IP 模式(端口 5555 是标准端口) adb tcpip 5555 # 2. 断开 USB 线,确保手机与电脑在同一 WiFi 下 # 3. 查看手机 IP(设置 → 关于手机 → 状态 → IP 地址,或用 adb shell ip addr) # 4. 连接 WiFi 设备 adb connect 192.168.1.100:5555连接成功后,adb devices会显示192.168.1.100:5555 device。此后所有操作均可脱离数据线。
为什么推荐 WiFi?
- 避免 USB 线缆限制操作距离;
- 支持一台电脑同时管理多台设备(不同 IP);
- 更贴近真实远程运维场景。
4. 启动 AI 代理:让模型真正“动手”
4.1 命令行一键运行(最快上手)
一切就绪后,在Open-AutoGLM根目录下执行:
python main.py \ --device-id ZY322FDQJL \ --base-url http://192.168.1.200:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:你的设备 ID 或 WiFi IP(如192.168.1.100:5555);--base-url:指向你部署好的云服务地址(vLLM + AutoGLM-Phone API);--model:指定模型名称,需与服务端注册名一致;- 最后字符串:你的自然语言指令,支持中文,语义越清晰,成功率越高。
执行后,你会看到日志逐行输出:
- 截取当前屏幕 → 上传至服务端 → VLM 分析界面 → LLM 规划动作 → ADB 执行点击/输入 → 等待界面变化 → 截图验证 → 进入下一步……
整个过程全自动,你只需看着手机屏幕被“接管”即可。
4.2 Python API 编程接入(适合集成开发)
如果你希望将 Open-AutoGLM 集成进自己的工具链,phone_agent.adb模块提供了简洁的 Python 接口:
from phone_agent.adb import ADBConnection, list_devices # 初始化连接管理器 conn = ADBConnection() # 连接设备(支持 USB 或 WiFi) success, msg = conn.connect("ZY322FDQJL") print(f"连接结果:{msg}") # 列出所有已连接设备 for dev in list_devices(): print(f"{dev.device_id} ({dev.connection_type.value})") # 启用 WiFi 调试(仅对 USB 连接设备有效) success, msg = conn.enable_tcpip(5555) if success: ip = conn.get_device_ip() print(f"设备 WiFi IP:{ip}") # 断开连接 conn.disconnect("ZY322FDQJL")这个 API 层屏蔽了 ADB 底层命令细节,让你专注在任务逻辑上。例如,你可以封装一个search_and_follow()函数,内部调用conn.tap(x, y)和conn.input_text("xxx"),实现业务级复用。
4.3 敏感操作保护机制:安全不是口号
Open-AutoGLM 内置双重防护,确保不会“乱来”:
- 显式确认机制:当检测到可能涉及账户、支付、删除等高危操作(如“删除所有聊天记录”“转账给张三”),AI 会主动暂停,输出提示:“检测到敏感操作【删除聊天】,是否继续?(y/n)”,等待人工确认;
- 人工接管入口:在验证码、登录页、弹窗等无法自动解析的场景,系统会停止执行,输出当前截图路径和界面描述,并提示:“请手动处理,完成后按回车继续”。
这不仅是技术设计,更是对用户信任的尊重——AI 的价值在于辅助,而非替代判断。
5. 实战效果与典型问题排查
5.1 真实指令执行效果示例
我们用三类常见指令测试,全程真机录屏验证:
| 指令 | 执行耗时 | 成功率 | 关键亮点 |
|---|---|---|---|
| “打开小红书,搜索‘咖啡拉花教程’,点第一个视频播放” | 12.4s | 100% | 准确识别首页搜索框、跳过广告位、定位视频卡片、点击播放控件 |
| “在微信里给李四发消息:‘今天会议取消了’” | 8.7s | 95% | 自动唤起微信、搜索联系人、点击对话框、输入文字、发送(需提前设置好 ADB Keyboard) |
| “打开设置,进入电池,查看电池健康度” | 15.2s | 85% | 成功进入设置,但部分机型“电池健康度”需二级菜单,AI 在无明确文字提示时偶有误判 |
整体来看,结构化强、文字标识清晰的 App(如微信、小红书、抖音)表现最佳;系统设置类界面因厂商定制差异大,需配合少量微调。
5.2 常见问题速查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
adb devices不显示设备 | USB 调试未开启 / 数据线故障 / 驱动未安装 | 重试开启步骤;换线;Windows 用户安装 Universal ADB Driver |
| 连接云服务超时(Connection refused) | 云服务器防火墙未放行端口 / vLLM 服务未启动 / URL 地址错误 | 检查ufw status或云平台安全组;curl http://localhost:8800/health测试本地服务;确认--base-url中 IP 为公网可访问地址 |
| 模型返回乱码或空响应 | vLLM 启动参数--max-model-len过小 / 显存不足 / 模型权重加载失败 | 增加--max-model-len 4096;检查nvidia-smi显存占用;重新下载模型权重校验 SHA256 |
| 输入文字失败(光标闪烁但无内容) | ADB Keyboard 未设为默认输入法 / Android 版本过高导致兼容问题 | 重进「语言与输入法」确认;降级至 v1.2 ADB Keyboard;或临时改用adb shell input keyevent模拟键盘事件 |
经验之谈:首次部署建议全程使用 USB 连接 + 真机 + Android 11~13,避开模拟器和老旧系统,可大幅降低踩坑概率。
6. 总结:从“能说”到“能做”,AI Agent 的临门一脚
Open-AutoGLM 不是一个炫技的 Demo,而是一套可落地、可扩展、可审计的手机端 AI Agent 实践范本。它用极简的架构(VLM + LLM + ADB),完成了从“理解屏幕”到“操控设备”的关键跨越。你不需要成为安卓开发专家,也能让大模型在真实设备上完成端到端任务。
更重要的是,它的开源属性意味着:
- 你可以替换自己的视觉模型,适配更高清截图;
- 可以对接私有大模型服务,保障数据不出域;
- 可以扩展动作空间,加入长按、双指缩放、手势滑动等新操作;
- 甚至可以反向训练——用真实操作日志微调规划模块,让 AI 越用越懂你。
这不是终点,而是起点。当 AI 不再满足于生成文字,而是开始点击、滑动、输入、确认,我们离“数字同事”的日常,又近了一步。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。