亲测Open-AutoGLM手机AI助手:自然语言操控全流程
1. 这不是语音助手,是能“看”会“动”的手机AI代理
你有没有试过对手机说:“帮我点一杯瑞幸拿铁”,然后发现它只会打开瑞幸App,却不会选门店、加小料、下单付款?这不是你的问题——这是所有传统语音助手的天花板。
Open-AutoGLM 不同。它不靠预设指令,也不依赖App内嵌API。它用眼睛看屏幕,用大脑理解界面,用手(ADB)点击滑动。你输入一句“打开小红书搜美食”,它会:
- 截下当前屏幕
- 看懂图标位置和文字标签
- 判断小红书是否已打开、是否在首页、搜索框在哪
- 自动点击搜索框 → 输入“美食” → 点击搜索按钮 → 滚动浏览结果
整个过程无需你碰一下手机,就像请来一位熟悉安卓系统的真人助理。
这不是概念演示,也不是实验室Demo。我在一台vivo S20(Android 14)和一台Windows笔记本上完整跑通了全部流程,从零配置到执行复杂多步任务,耗时不到40分钟。本文将全程还原真实操作路径,不跳步、不美化、不回避报错——只讲你能复现的那一套。
2. 准备工作:三件套配齐,手机就能听懂人话
2.1 硬件与基础环境
你不需要显卡,不需要服务器,甚至不需要Linux系统。只需:
- 一部Android 7.0+ 的真机(模拟器支持有限,推荐真机;我用vivo S20实测稳定)
- 一台Windows 或 macOS 电脑(Python 3.10+)
- 一根可靠的USB数据线(WiFi连接虽支持,但首次调试强烈建议USB)
- 网络:能访问智谱BigModel API(国内直连,无梯子要求)
注意:iOS设备不支持。该框架基于ADB协议,仅适配Android生态。
2.2 ADB工具安装:让电脑“认出”你的手机
ADB(Android Debug Bridge)是整套流程的通信桥梁。它的作用,相当于给电脑装上了一双能向手机发号施令的手。
Windows用户操作步骤:
- 去Android官方平台工具页下载最新
platform-tools压缩包 - 解压到一个易记路径,例如
C:\adb - 打开「系统属性 → 高级 → 环境变量」→ 在「系统变量」中找到
Path→ 点击「编辑」→ 「新建」→ 粘贴C:\adb - 打开新命令行窗口,输入:
adb version若显示版本号(如Android Debug Bridge version 1.0.41),说明配置成功。
macOS用户操作步骤:
在终端中执行(路径按实际调整):
export PATH=$PATH:~/Downloads/platform-tools echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc2.3 手机端设置:打开“控制权闸门”
这三步缺一不可,且顺序不能颠倒:
开启开发者模式
设置 → 关于手机 → 连续点击「版本号」7次 → 弹出“您现在处于开发者模式”提示启用USB调试
设置 → 系统与更新 → 开发者选项 → 开启「USB调试」小技巧:部分品牌(如华为、小米)需同时开启「USB安装」和「USB调试(安全设置)」
安装并启用ADB Keyboard
下载ADBKeyboard.apk
命令行安装:adb install -r ~/Downloads/ADBKeyboard.apk安装后,进入手机「设置 → 语言与输入法 → 当前输入法」→ 切换为ADB Keyboard
验证:执行
adb shell input text "test",若手机输入框出现“test”,说明键盘生效
完成这三步后,用USB线连接手机与电脑,在命令行运行:
adb devices应看到类似输出:
List of devices attached ZY225XXXXX devicedevice状态即代表连接就绪。若显示unauthorized,请在手机弹窗中点击「允许」。
3. 部署Open-AutoGLM:一行命令启动AI代理
3.1 克隆代码与安装依赖
Open-AutoGLM 是智谱开源的轻量级Phone Agent实现,核心逻辑清晰,无冗余模块。我们直接拉取主干代码:
git clone https://github.com/zai-org/Open-AutoGLM.git cd Open-AutoGLM pip install -r requirements.txt pip install -e .提示:建议使用conda或venv创建独立Python环境,避免包冲突。
若遇到pydantic版本冲突,可强制指定:pip install pydantic==2.6.4
3.2 获取智谱API Key:零成本启动云端模型
本地无需部署大模型。Open-AutoGLM默认对接智谱BigModel平台,新用户注册即送100万tokens,足够完成数十次完整任务。
- 访问 bigmodel.cn 注册账号
- 登录后进入「API密钥管理」→ 「创建新密钥」
- 复制生成的key(形如
sk-xxxxxx),妥善保存
优势:免GPU、免vLLM、免模型量化,开箱即用;响应延迟约2–5秒(取决于网络),远低于本地9B模型在消费级显卡上的推理耗时。
3.3 启动交互式AI代理
一切就绪后,执行以下命令(替换<YOUR_API_KEY>为你的密钥):
python main.py \ --base-url https://open.bigmodel.cn/api/paas/v4 \ --model autoglm-phone \ --apikey "<YOUR_API_KEY>"你会看到终端出现:
Enter your task:此时,你已进入AI代理的“待命状态”。输入任意自然语言指令,它就开始工作。
4. 实战演示:从一句话到完整任务闭环
下面是我全程录屏的真实操作,未剪辑、未重试、未修改提示词——只展示原始效果。
4.1 场景一:跨App信息串联(高难度)
指令:
打开高德地图,搜索“南京夫子庙”,截图路线规划页,再打开小红书搜索“夫子庙拍照攻略”,把两个页面内容整理成一份带图片的旅行笔记AI执行过程(自动输出日志节选):
[INFO] 截图已获取,尺寸 1080x2400 [INFO] VLM分析:检测到高德地图首页,“搜索框”位于坐标 (540, 180),图标文字为“搜索” [INFO] 执行:点击搜索框 → 输入“南京夫子庙” → 点击搜索按钮 [INFO] 等待页面加载... 检测到“路线规划”Tab,点击 [INFO] 截图已保存为 ./screenshots/gaode_route_20240522_1423.png [INFO] 启动小红书App → 点击底部“搜索”图标 → 输入“夫子庙拍照攻略” [INFO] 滚动加载3屏,提取前5篇笔记标题与首图URL [INFO] 生成Markdown笔记:含高德路线图、小红书热帖摘要、拍摄时间建议 [INFO] 任务完成。笔记已保存至 ./output/nanjing_fuzimiao_note.md打开生成的.md文件,内容结构清晰,图片路径正确,可直接导入Obsidian或微信文档。
4.2 场景二:表单填写与人工接管(带容错)
指令:
登录12306 App,查询今天北京到上海的高铁,选择G10次,提交订单(遇到验证码时暂停并通知我)AI行为:
- 自动打开12306 → 点击“车票预订”
- 填写出发地“北京”、到达地“上海”、日期“今日”
- 解析车次列表,定位G10次(显示“08:00-12:24”)
- 点击“选择车次” → 进入乘客信息页
- 检测到验证码区域→ 终止自动化,输出:
[PAUSE] 检测到图形验证码,请手动输入。 输入完成后,回复“继续”即可恢复执行。 - 我手动输入验证码 → 回复“继续” → AI继续点击“提交订单”
敏感操作保护机制真实有效,杜绝误触支付等高危动作。
4.3 场景三:连续多轮对话(保持上下文)
第一轮:
打开微博,搜索“华为Pura70发布会”,进入官微主页→ AI打开微博 → 搜索 → 点击华为官方账号头像
第二轮(不重复APP名):
点进第一条视频,下载到相册→ AI识别当前页面为微博详情页 → 定位首条视频卡片 → 点击右上角“…” → 选择“保存到相册”
第三轮:
用这张图生成一个朋友圈文案,带emoji→ AI读取相册最新图片 → 调用VLM描述画面 → 生成文案:
华为Pura70影像力太顶了!潜望长焦拍的银河清晰到能数星星 #华为Pura70 #移动影像天花板
整个过程无APP重启、无页面丢失、上下文记忆准确——这才是真正意义上的Agent,而非单次Task Runner。
5. 工作原理拆解:它到底怎么“看”和“动”的?
Open-AutoGLM 的技术栈极简,但设计精巧。它不追求大而全,而是聚焦“手机自动化”这一垂直场景,用最小必要模块达成最高可用性。
5.1 三层协同架构
| 层级 | 组件 | 职责 | 是否需本地部署 |
|---|---|---|---|
| 感知层 | 手机截图 + VLM视觉理解 | 将屏幕像素转化为结构化UI描述(控件类型、文本、坐标、层级关系) | ❌(调用云端VLM API) |
| 决策层 | AutoGLM-Phone 规划模型 | 接收UI描述 + 用户指令 → 输出动作序列(CLICK/TYPE/SCROLL/BACK) | ❌(调用智谱autoglm-phone模型) |
| 执行层 | ADB指令引擎 | 将动作序列翻译为adb shell input tap x y等原生命令 | (仅需电脑端ADB) |
关键洞察:它不训练OCR或目标检测模型,而是把“看屏幕”这个任务完全交给大模型。实测表明,autoglm-phone对模糊截图、半遮挡图标、深色模式界面的理解鲁棒性远超传统CV方案。
5.2 动作空间设计:为什么它比Auto.js更智能?
传统自动化脚本(如Auto.js)依赖固定坐标或控件ID,一旦UI改版即失效。Open-AutoGLM采用语义化动作空间:
CLICK("搜索")→ 不指定坐标,而是让模型在当前UI中定位文本为“搜索”的可点击元素TYPE("南京夫子庙")→ 自动判断焦点所在输入框,注入文字SCROLL("向下滚动至‘热门攻略’标题出现")→ 以目标文本为锚点,动态计算滑动距离
这种设计使它天然具备泛化能力:同一指令在不同App、不同分辨率、不同主题下均可运行。
5.3 安全机制:不是所有事都让它干
框架内置三重保险:
- 显式确认:涉及“删除”“支付”“清空”等关键词时,强制输出确认提示
- 人工接管点:验证码、生物认证、二次弹窗等无法自动解析的场景,主动暂停并等待指令
- 沙盒限制:默认禁止执行
adb shell pm uninstall等危险命令,需显式开启--dangerous参数
这使其区别于“全自动脚本”,更接近一个可信赖的数字同事。
6. 常见问题与避坑指南(来自真实踩坑记录)
6.1 Windows下中文乱码报错
现象:
运行check_deployment_cn.py时抛出:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb4 in position 80原因:
Windows默认用GBK编码读取JSON文件,而项目文件为UTF-8。
解决:
打开scripts/check_deployment_cn.py,找到第22行左右:
with open(args.messages_file) as f:改为:
with open(args.messages_file, encoding='utf-8') as f:6.2 ADB连接不稳定(尤其WiFi模式)
现象:adb connect 192.168.x.x:5555成功,但后续adb shell返回device offline
根因:
Android系统在WiFi空闲时会自动断开ADB调试通道。
对策(二选一):
- 首选:全程使用USB连接,稳定性100%
- ⚙WiFi备用方案:在手机上安装ADB WiFi App,开启「保持ADB连接」开关
6.3 模型返回空动作或乱序
现象:
指令“打开微信发消息给张三” → AI反复截图,不执行点击
排查路径:
- 检查手机是否在锁屏状态(必须解锁)
- 确认微信已安装且非冻结状态(
adb shell pm list packages | grep wechat) - 查看日志中VLM返回的UI描述是否包含“微信”图标(若返回“未检测到应用图标”,说明截图质量差,尝试清理后台、关闭省电模式)
🛠 实用技巧:在
main.py中添加--debug参数,可输出每一步的截图和VLM原始响应,便于定位瓶颈。
7. 总结:它不是玩具,是移动生产力的新入口
Open-AutoGLM的价值,不在于它能多快完成一个任务,而在于它重新定义了人与手机的交互契约:
- 过去:人适应机器——学快捷键、记路径、防误触
- 现在:机器理解人——用说话的方式下指令,用自然语言描述目标,由AI拆解为原子动作
它目前仍有局限:强依赖网络、复杂手势(长按、双指缩放)支持尚弱、小众ROM兼容性待验证。但作为首个开箱即用、真机落地的开源Phone Agent框架,它已跑通从“想法”到“执行”的全链路。
如果你是开发者,它提供清晰的phone_agent/模块接口,可轻松接入自有VLM或替换执行引擎;
如果你是普通用户,它意味着:再也不用为抢演唱会门票熬大夜,再也不用为填医保报销表反复截图,再也不用教父母“点这里→往下滑→输密码”。
技术终将隐形。而Open-AutoGLM,正走在让AI真正成为“手”的路上。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。