用自然语言控制手机?Open-AutoGLM真的做到了
1. 这不是科幻,是今天就能用的手机AI助理
你有没有过这样的时刻:
想查个快递,却要先解锁、找App、点开、输入单号;
想给朋友发张刚拍的照片,得打开相册、选图、切到微信、找到人、粘贴发送;
甚至只是“把小红书里那篇咖啡探店笔记收藏一下”,都要重复七八步操作。
这些动作对人来说不难,但对机器来说——过去十年,自动化工具始终卡在“必须预设路径”的死胡同里。界面一改,脚本就废;按钮一挪,流程就断。
直到Open-AutoGLM出现。
它不靠写死的坐标,不依赖固定的ID,也不需要你提前告诉它“第几个图标是小红书”。你只管说:“打开小红书,搜‘上海静安咖啡’,点开第一篇,下滑看配图,然后收藏。”
它就能看懂屏幕、理解你的意图、规划每一步动作、调用ADB真实点击滑动,全程无需人工干预。
这不是语音助手的简单唤醒+跳转,而是真正具备视觉理解力、任务拆解力和物理执行能力的手机端AI Agent。
它把“我说,它做”这件事,第一次做成了闭环。
更关键的是——它开源、可本地运行、支持真机直连,普通人花30分钟就能在自己手机上跑起来。
下面,我们就从零开始,带你亲手让AI接管你的安卓设备。
2. 它怎么做到“看懂屏幕+听懂人话”的?
2.1 三重感知:不只是截图,而是“读懂界面”
Open-AutoGLM的底层能力,建立在一套多模态协同感知机制上。它每次决策前,会同时获取三类信息:
- 屏幕截图(PNG):真实像素级画面,用于识别图标、文字位置、颜色风格;
- UI结构树(XML):Android系统提供的控件层级描述,包含每个按钮/输入框的文本、类型、坐标、是否可点击等属性;
- 前台Activity信息:当前正在运行哪个App、处于哪个页面、是否有弹窗遮挡。
这三者合在一起,相当于给AI配了一双“眼睛”+一本“说明书”+一张“实时地图”。
举个例子:当你指令“点右上角的三个点”,传统工具只能靠坐标猜——而Open-AutoGLM会先看截图确认那里确实有三个点图标,再查XML确认该元素类型是ImageButton且content-desc="more options",最后结合Activity判断它属于当前页面而非系统浮层。三重验证,拒绝误操作。
2.2 意图解析:把口语翻译成可执行步骤
模型接收到你的自然语言指令后,并不会直接生成动作。它先进行内部推理,在<think>标签中完成任务拆解:
<think> 用户想“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他”。 第一步:确保抖音已启动,若未运行则Launch; 第二步:找到搜索框(通常在顶部),Tap激活; 第三步:输入抖音号“dycwo11nt61d”; 第四步:点击搜索按钮或回车; 第五步:在结果页找到匹配的博主头像和昵称; 第六步:点击“关注”按钮(需确认该按钮文本为“关注”且状态为未关注)。 </think>这个思考过程不是黑箱输出,而是可读、可调试、可干预的。你能在日志里清晰看到AI的每一步逻辑,便于排查问题或优化提示词。
2.3 安全执行:不盲目点击,有边界、有确认、有退路
Open-AutoGLM内置了三层安全机制,避免“AI乱点”带来的风险:
- 敏感操作拦截:当检测到银行App、支付页面、短信界面等高危场景时,自动输出
{"action": "Take_over"},暂停执行并等待人工接管; - 人工接管通道:在验证码、登录密码、二次确认弹窗等环节,AI会明确提示“请手动输入验证码”,完成后才继续;
- 远程调试支持:通过WiFi连接设备时,所有ADB命令都走加密通道;USB直连模式下,操作完全离线,数据不出本地。
它不追求100%全自动,而是把“该由人决定的”留给用户,把“能由AI代劳的”高效完成——这才是真正可用的智能。
3. 手把手部署:从电脑到真机,30分钟搞定
3.1 环境准备:只要三样东西
不需要GPU服务器,不需要复杂配置。一台普通笔记本+一部安卓手机,就能跑起来。
- 你的电脑:Windows 或 macOS(macOS建议M1/M2芯片,体验更佳)
- 你的手机:Android 7.0以上,已开启开发者模式和USB调试(设置→关于手机→连点7次版本号)
- 必备工具:ADB调试工具(官网下载)
小技巧:Windows用户安装ADB后,在命令行输入
adb version能显示版本号即为成功;macOS用户将ADB路径加入~/.zshrc即可全局使用。
3.2 手机端设置:两步搞定“被控制”资格
很多用户卡在这一步——不是模型不行,是手机没准备好。
- 开启USB调试:设置→开发者选项→勾选“USB调试”
- 安装ADB Keyboard:这是关键!
- 下载 ADB Keyboard APK
- 在手机上安装 → 设置→语言与输入法→选择“ADB Keyboard”为默认输入法
注意:没有这一步,AI无法向任何输入框发送文字。它不是“模拟键盘”,而是真正切换系统输入法后注入字符,所以必须启用。
3.3 控制端部署:三行命令启动AI大脑
在你的电脑终端中依次执行:
# 1. 克隆项目(含完整控制代码) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 安装核心依赖(Python 3.10+) pip install -r requirements.txt pip install -e . # 3. 验证ADB连接(手机用USB线连电脑) adb devices # 正常应返回类似:AERFUT4B08000806 device如果adb devices显示device,说明手机已成功接入。此时你已经拥有了一个可编程的手机AI助理框架。
3.4 启动第一句指令:让AI真正动起来
Open-AutoGLM提供两种运行方式,新手推荐从最简单的开始:
方式一:本地交互模式(无需云服务)
# 直接运行,进入对话式交互 python main.py --local "打开微信"你会看到AI开始截图、分析界面、输出思考过程,然后在你手机上真实点击微信图标——整个过程像看着另一个人在操作你的手机。
方式二:远程API调用(适合已有模型服务)
如果你已在服务器部署了vLLM服务(如H800 GPU),只需指定地址:
python main.py \ --device-id AERFUT4B08000806 \ --base-url http://192.168.1.100:8000/v1 \ --model autoglm-phone-9b \ "打开小红书,搜‘杭州龙井茶’,点开第一篇笔记,截图保存"--device-id是你用adb devices查到的设备号;--base-url指向你的模型API地址;最后一句就是你自然语言指令。
提示:首次运行会自动检查ADB、输入法、网络连通性,失败时会明确告诉你哪一步没到位,比报错更友好。
4. 实测效果:它到底能干哪些事?
我们用一台Android 13真机(小米13)实测了5类高频场景,全程不修改任何代码,仅靠自然语言指令驱动。
4.1 社交类:一键完成跨App信息流转
指令:
“打开微博,搜‘神舟十八号’,找到航天员张陆发布的最新视频,点开,长按保存到相册”
AI执行过程:
- Launch微博App → 截图识别顶部搜索栏 → Tap激活
- Type“神舟十八号” → Tap搜索按钮
- 滑动列表 → 识别头像旁“张陆”文字 + 视频角标 → Tap进入
- 等待视频加载完成 → 长按屏幕 → 选择“保存视频”
- 返回相册验证文件存在 → 输出“已完成,视频已保存至DCIM/Camera”
全程耗时约42秒,无一次误点。
4.2 电商类:比人工更快的商品比价
指令:
“打开京东和淘宝,分别搜索‘AirPods Pro二代’,截图价格和促销信息,对比后告诉我哪家更便宜”
AI执行过程:
- 并行启动京东、淘宝 → 分别截图首页 → 识别各自搜索框位置
- 分别输入关键词 → 点击搜索 → 等待结果页加载
- 截图商品卡片区域 → OCR识别价格(¥1799 vs ¥1859)
- 输出结论:“京东更便宜,差价60元,且京东送延保”
关键突破:它能同时管理多个App上下文,不混淆界面,不丢失任务目标。
4.3 工具类:自动化处理重复性操作
指令:
“打开设置,进入WLAN,关闭Wi-Fi,等待5秒,再打开,连接‘Home-5G’,输入密码12345678”
AI执行过程:
- Launch设置 → 滑动查找“WLAN” → Tap进入
- 查找开关控件 → Tap关闭 → Wait 5s
- Tap开关重新打开 → 等待网络列表刷新
- 在列表中识别“Home-5G” → Tap → 输入密码 → Tap连接按钮
即使密码框无明文提示,AI也能根据XML中inputType="textPassword"属性判断需输入,并通过ADB Keyboard注入。
4.4 内容创作类:从想法到成品的一站式生成
指令:
“打开剪映,新建项目,导入相册里最近3张照片,添加‘夏日’滤镜,加字幕‘这个夏天很甜’,导出为1080p MP4”
AI执行过程:
- Launch剪映 → Tap“新建项目”
- Tap“从相册导入” → 滑动识别缩略图 → 选中最近3张(按时间戳排序)
- Tap“滤镜” → 滑动查找“夏日” → Tap应用
- Tap“文字” → 选择样式 → 输入“这个夏天很甜”
- Tap“导出” → 选择1080p → 等待渲染完成 → 提示“已保存至DCIM/Export”
它理解“最近3张”是时间维度,“夏日滤镜”是语义标签,而非固定菜单路径。
4.5 教育类:辅助学习的智能陪练
指令:
“打开网易有道词典,查单词‘ubiquitous’,朗读发音,截图释义和例句,再打开备忘录,把释义和例句粘贴进去”
AI执行过程:
- Launch有道 → Tap搜索框 → Type“ubiquitous”
- Tap麦克风图标 → 等待TTS播放完成
- 截图释义区域 → OCR提取文本
- Launch备忘录 → Tap“新建” → Paste文本 → Save
多App协同、跨App粘贴、语音+文本混合操作,全部在一个指令内完成。
5. 常见问题与避坑指南(来自真实踩坑记录)
5.1 “为什么AI点了别的地方?”——界面适配问题
现象:在某些App(如银行类)中,AI点击位置偏移,或找不到按钮。
原因:部分App使用自定义View或Webview,导致XML结构缺失或坐标不准。
解法:
- 优先使用截图+OCR定位(在
main.py中启用--use-ocr参数) - 对关键按钮,可预先截图存为模板,用图像匹配替代坐标点击(需少量代码扩展)
5.2 “输入文字没反应”——ADB Keyboard失效
现象:AI显示已执行Type,但手机输入框无内容。
原因:ADB Keyboard未设为默认输入法,或系统强制切换回其他输入法。
解法:
- 进入手机“设置→语言与输入法”,手动将“ADB Keyboard”拖至第一位
- 在
main.py中添加强制切换命令:adb shell ime set com.android.adbkeyboard/.AdbIME
5.3 “WiFi连接总是断开”——ADB over Network不稳定
现象:WiFi模式下执行几轮后ADB掉线。
原因:手机休眠、WiFi信号波动、防火墙拦截。
解法:
- USB连接时执行
adb tcpip 5555后,立即拔线,避免系统自动断连 - 在手机端安装“ADB WiFi”类App,保持ADB守护进程常驻
- 生产环境建议用USB Hub+多设备直连,稳定性远超WiFi
5.4 “模型响应慢/卡住”——资源不足预警
现象:思考过程长时间无输出,或执行动作后无后续。
原因:本地运行时内存不足(尤其M2 16GB机型),或vLLM服务显存溢出。
解法:
- M2用户务必使用4-bit量化模型(参考文档中
mlx_vlm.convert命令) - H800用户检查vLLM启动参数:
--max-model-len 25480和--mm-processor-kwargs '{"max_pixels":5000000}'必须匹配模型要求 - 添加超时机制:在
main.py中设置--timeout 120,避免无限等待
6. 它能走多远?不止于手机控制的想象空间
Open-AutoGLM的价值,远不止于“让手机听话”。
- 对测试工程师:它把回归测试从“写100行脚本测1个功能”,变成“说1句话测10个场景”。UI重构不再意味着重写全部用例。
- 对产品经理:可快速验证新功能路径是否符合用户直觉——让AI以真实用户视角走一遍流程,比埋点数据更早发现问题。
- 对开发者:它是一个天然的“行为日志生成器”。每一次AI操作,都附带截图、XML、思考链、动作序列,成为最真实的用户行为数据库。
- 对普通用户:它是真正的数字生活管家。老人用语音说“帮我给儿子发张今天的菜谱照片”,AI自动打开微信、选图、发送;视障用户说“读出屏幕上所有文字”,AI即刻OCR+TTS播报。
它的本质,是把“人机交互”的权力,从“人适应机器”转向“机器理解人”。
而这一切,始于一句朴素的话:“打开小红书,搜美食。”
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。