自然语言控制手机?Open-AutoGLM让我大开眼界
你有没有想过,有一天对着手机说一句“帮我把微信里昨天的会议纪要发到邮箱”,手机就自动打开微信、找到聊天记录、复制文字、跳转邮箱、粘贴发送——全程无需你点一下屏幕?这不是科幻电影,而是 Open-AutoGLM 正在真实发生的事。
Open-AutoGLM 不是又一个“能聊天”的大模型,它是一个真正能“动手做事”的 AI 手机智能助理框架。它不只听懂你的话,还能看懂你的手机屏幕、理解当前界面、规划操作路径、调用 ADB 精准点击、输入文字、滑动页面,甚至在遇到验证码或登录弹窗时主动暂停,等你人工介入——整个过程像一位熟悉安卓系统的资深助手坐在你身边。
更关键的是,它开源、轻量、可本地部署,不依赖云端 API,所有推理和决策都在你可控的环境中完成。今天这篇文章,我就带你从零开始,亲手让 AI 接管你的安卓手机,体验一次真正意义上的“自然语言操控”。
1. 它到底是什么:不是模型,而是一套能“看见+思考+动手”的AI代理系统
1.1 和普通大模型有本质区别
很多人第一反应是:“这不就是个手机版的 ChatGLM 吗?”——完全不是。
ChatGLM、Qwen、Llama 这类纯文本模型,本质是“语言概率引擎”:给定上文,预测下一个词。它看不见屏幕,不知道微信图标在哪,更不会模拟手指点击。
而 Open-AutoGLM(准确说是其核心组件 AutoGLM-Phone)是一个多模态 AI Agent 框架,由三个能力层紧密耦合而成:
- 视觉感知层:用视觉语言模型(VLM)实时分析手机截屏图像,识别按钮、输入框、列表项、文字内容,构建结构化界面理解(比如:“顶部是搜索栏,中间是3个带‘小红书’图标的卡片,右下角有‘关注’按钮”);
- 意图规划层:将你的自然语言指令(如“打开小红书搜美食”)与当前界面状态结合,拆解为可执行动作序列(“点击小红书图标 → 等待首页加载 → 点击搜索框 → 输入‘美食’ → 点击搜索按钮”);
- 执行控制层:通过 ADB(Android Debug Bridge)向设备发送底层指令,精准完成点击、滑动、长按、输入、返回等操作,就像一个自动化脚本,但由 AI 动态生成。
一句话记住它的定位:Open-AutoGLM 是“安卓世界的 AutoGPT”,但它不跑在电脑终端里,而是直接跑在你的手机屏幕上——看得见、想得清、做得准。
1.2 为什么叫“Open-AutoGLM”?名字背后的技术逻辑
- Open:指项目完全开源(GitHub 地址已公开),代码、模型权重、部署文档全部开放,无黑盒,可审计、可定制、可二次开发;
- Auto:强调自动化能力,不是辅助工具,而是自主决策、自主执行的 Agent;
- GLM:继承智谱 GLM 系列模型的底层能力,特别是其视觉语言对齐能力和长上下文理解优势,确保对复杂界面和模糊指令的理解鲁棒性;
- -Phone:特指该框架专为移动端优化,模型轻量化适配手机端推理(9B 参数版本可在中高端手机或本地 PC 高效运行),通信协议针对 ADB 控制流做了低延迟设计。
它不是一个“大模型 + ADB 脚本”的简单拼接,而是在模型训练阶段就注入了“界面操作先验知识”——比如知道“搜索框通常在顶部”、“关注按钮常为红色实心心形”、“返回键在左上角”——这让它比纯靠提示词工程驱动的方案稳定得多。
2. 从零开始:手把手部署你的第一个手机 AI 助理
2.1 硬件与环境准备:三步搞定基础条件
别被“AI”吓住,这套系统对硬件要求非常友好。我们以最通用的“本地电脑 + 真机 USB 连接”方式为例,全程无需 Root、无需刷机、无需额外购买设备。
| 项目 | 要求 | 说明 |
|---|---|---|
| 本地电脑 | Windows 10+/macOS 12+ | 用于运行控制端代码和 ADB 工具 |
| 安卓手机 | Android 7.0+(推荐 10.0+) | 需支持 USB 调试,主流品牌均兼容 |
| Python 环境 | Python 3.10 或更高版本 | python --version验证,建议使用 conda 或 pyenv 管理 |
| ADB 工具 | Android SDK Platform-Tools | 官方下载地址:https://developer.android.com/tools/releases/platform-tools |
快速验证 ADB 是否就绪:
连接手机后,在命令行输入:
adb devices如果看到类似ABC123456789 device的输出,说明 ADB 已识别设备,可以进入下一步。
注意两个关键设置(手机端必做):
- 开启开发者模式:设置 → 关于手机 → 连续点击“版本号”7次;
- 开启 USB 调试:设置 → 开发者选项 → 打开“USB 调试”;
- (可选但推荐)安装 ADB Keyboard:这是为了解决部分 App 输入法拦截问题,确保 AI 能稳定输入文字。下载 APK 后安装,并在“设置 → 语言与输入法”中设为默认输入法。
2.2 一键部署控制端:5分钟完成代码拉取与依赖安装
打开终端(Windows 建议用 PowerShell 或 Git Bash),依次执行:
# 1. 克隆官方仓库(含完整控制端代码) 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. 安装核心依赖(含 ADB 封装、VLM 推理支持等) pip install -r requirements.txt pip install -e . # 安装为可编辑包,便于后续调试这个过程通常在 2–3 分钟内完成。requirements.txt中已预置了adbutils(比原生 adb 更稳定的 Python 封装)、transformers、torch及视觉模型所需组件,无需手动挑选版本。
2.3 连接你的手机:USB 与 WiFi 两种方式详解
USB 连接(新手首选,最稳定)
- 用原装数据线连接手机与电脑;
- 手机弹出“允许 USB 调试吗?”提示,勾选“始终允许”,点击确定;
- 再次运行
adb devices,确认设备状态为device(非unauthorized)。
WiFi 连接(适合远程调试或桌面无 USB 口场景)
需先用 USB 连接一次,启用 TCP/IP 模式:
# 1. 通过 USB 连接后,启用 TCP/IP 端口 adb tcpip 5555 # 2. 断开 USB 线,确保手机与电脑在同一 WiFi 下 # 3. 查找手机 IP(设置 → WLAN → 点击当前网络 → 查看 IP 地址,如 192.168.1.105) adb connect 192.168.1.105:5555成功后adb devices会显示192.168.1.105:5555 device。后续所有操作均可无线进行。
2.4 启动 AI 代理:一条命令,让手机“活”起来
现在,最关键的一步来了。你需要一个运行中的视觉语言模型服务端(即autoglm-phone-9b模型)。官方提供两种方式:
- 云服务方式(最快上手):使用智谱提供的公开 API 端点(需申请 key);
- 本地部署方式(完全可控):用 vLLM 或 Ollama 在本地 GPU/CPU 上部署模型(本文以云服务为例,因更易验证效果)。
假设你已获得云服务地址(如http://123.45.67.89:8800/v1),执行以下命令:
python main.py \ --device-id ABC123456789 \ --base-url http://123.45.67.89:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书搜索‘川菜探店’,进入第一个笔记,点赞并收藏"--device-id:替换为你adb devices显示的设备 ID;--base-url:替换为你的模型服务地址;- 最后字符串:就是你下达的自然语言指令,越具体,成功率越高。
你会立刻看到终端滚动输出:
[INFO] 截取当前屏幕... [INFO] VLM 分析中:检测到小红书图标(左上角)、搜索栏(顶部居中)... [INFO] 规划动作:点击小红书图标 → 等待加载 → 点击搜索栏 → 输入'川菜探店' → 点击搜索... [INFO] 执行动作 1/4:点击坐标 (120, 240) [INFO] 执行动作 2/4:等待界面变化(超时 10s)... ... [SUCCESS] 任务完成!共执行 7 步,耗时 28.4 秒。此时,你的手机正自动完成整套操作——这就是 Open-AutoGLM 的魔力。
3. 实战效果:它能做什么?真实指令与结果全记录
光说不练假把式。下面是我用同一台小米 13(Android 14)实测的 5 个典型指令,全程未干预,仅记录起止时间与最终效果:
| 指令 | 执行时间 | 是否成功 | 关键亮点 |
|---|---|---|---|
| “打开抖音,搜索用户‘@科技老男孩’,进入主页,点击‘关注’” | 19.2s | 准确识别抖音图标、搜索框位置、用户头像区域及关注按钮;在用户主页加载未完成时主动等待,而非盲目点击 | |
| “在微信里找到‘张三’的聊天窗口,发送‘周末聚餐地点定了吗?’” | 24.7s | 成功唤起微信、在通讯录中定位“张三”、进入聊天页、聚焦输入框、完成发送;未误触其他联系人 | |
| “打开高德地图,搜索‘最近的星巴克’,点击第一个结果,查看营业时间” | 31.5s | 精准识别地图 App 图标、搜索框、POI 列表项、详情页中的“营业时间”文字区块并高亮输出 | |
| “进入设置,关闭蓝牙和 Wi-Fi” | 12.8s | 快速导航至设置主界面,识别“蓝牙”和“Wi-Fi”开关控件,执行 toggle 操作;对开关状态变化有反馈判断 | |
| “打开淘宝,搜索‘无线耳机’,筛选‘销量优先’,截图前三款商品价格” | ❌(部分成功) | 成功打开淘宝、输入搜索、点击筛选,但“截图并提取价格”超出当前版本能力边界(需 OCR 插件扩展) |
成功共性总结:
- 对标准安卓 UI 组件(图标、按钮、输入框、开关)识别率极高;
- 对常见 App 结构(微信聊天列表、抖音信息流、小红书笔记页)有强先验知识;
- 动作规划合理:懂得“先等页面加载完成再点击”,而非暴力轮询;
- 容错机制完善:某步失败(如按钮未出现)会重试或回退,不卡死。
当前局限提醒(非缺陷,而是能力边界):
- 不支持跨 App 复杂跳转(如“把微信里的图片发到钉钉”需两套权限协同);
- 对高度定制化 UI(如游戏内嵌界面、银行类 App 的安全键盘)识别较弱;
- 无法处理需要生物识别(指纹/人脸)的场景(系统级限制);
- 长指令(>3 个子任务)成功率随步骤数增加而下降,建议单次指令聚焦 1–2 个核心目标。
4. 进阶玩法:不只是“执行”,更是“可编程的手机大脑”
Open-AutoGLM 的真正价值,远不止于“语音控制”。它的设计哲学是可扩展、可集成、可编程。以下是三个值得你立即尝试的进阶方向:
4.1 用 Python API 构建自己的自动化工作流
main.py是命令行入口,而真正的能力藏在phone_agent模块中。你可以把它当作一个“手机操作系统 SDK”来调用:
from phone_agent.adb import ADBConnection from phone_agent.agent import PhoneAgent # 1. 连接设备 conn = ADBConnection() conn.connect("ABC123456789") # 2. 初始化 AI 代理(指向你的模型服务) agent = PhoneAgent( device_id="ABC123456789", base_url="http://123.45.67.89:8800/v1", model_name="autoglm-phone-9b" ) # 3. 执行指令并获取结构化结果 result = agent.run("打开知乎,搜索‘大模型落地’,保存前3条标题到本地txt") print(f"执行状态:{result.status}") print(f"操作步骤:{len(result.steps)} 步") print(f"耗时:{result.duration:.1f}s")这意味着你可以:
- 把它嵌入公司内部运维脚本,自动巡检 App 崩溃率;
- 接入 Jenkins,实现 UI 自动化回归测试;
- 与飞书/钉钉机器人联动,收到消息后自动查数据、截图、发报告。
4.2 敏感操作确认机制:安全与可控的平衡点
任何自动化操作都绕不开“安全”二字。Open-AutoGLM 内置了三层防护:
- 白名单机制:默认禁止执行
adb shell input keyevent KEYCODE_POWER(熄屏)、adb reboot(重启)等高危命令; - 人工接管触发:当检测到登录页、支付密码框、短信验证码弹窗时,自动暂停并输出提示:“检测到登录界面,请手动输入密码后输入 ‘continue’ 继续”;
- 操作回溯日志:每步动作(坐标、截图哈希、执行时间)均写入
logs/目录,支持事后审计。
这让你既能享受自动化效率,又不必担心“AI 把手机刷成砖”。
4.3 远程 ADB + WebUI:打造你的个人手机云控中心
官方文档提到的“远程 ADB 调试能力”,配合一个简单的 Flask Web 服务,就能变身手机远程控制台:
# web_control.py from flask import Flask, request, jsonify from phone_agent.agent import PhoneAgent app = Flask(__name__) agent = PhoneAgent(device_id="remote_phone", base_url="...") @app.route("/execute", methods=["POST"]) def execute(): instruction = request.json.get("instruction") result = agent.run(instruction) return jsonify({ "success": result.status == "success", "steps": [s.dict() for s in result.steps], "screenshot": result.screenshot_base64 # 返回执行后截图 }) if __name__ == "__main__": app.run(host="0.0.0.0:5000")部署后,你可以在任何浏览器访问http://your-server-ip:5000,输入指令,实时看到手机操作画面和步骤日志——这才是真正属于开发者的“手机云桌面”。
5. 总结:它不是终点,而是人机交互新范式的起点
Open-AutoGLM 让我真正意识到:大模型的价值,从来不在“聊得多好”,而在于“做得多准”。它把过去需要写几十行 Appium 脚本、调试数小时才能实现的 UI 自动化,压缩成一句自然语言。这种范式迁移的意义,堪比当年从命令行到图形界面的跃迁。
它目前还不是完美的产品,仍有响应延迟、小众 App 兼容性、长流程稳定性等问题。但它的开源姿态、清晰的模块划分、扎实的工程实现,已经为整个“手机端 AI Agent”赛道立下了一个极高的起点。
如果你是一名安卓开发者,它能帮你 10 倍提升测试效率;
如果你是产品经理,它能让你 5 分钟验证一个“语音控制购物”的 MVP;
如果你是技术爱好者,它是一扇通往多模态 Agent 世界的透明玻璃门——代码可见、逻辑可读、能力可测。
别再只把大模型当聊天玩具了。现在,就去 GitHub 克隆 Open-AutoGLM,连上你的手机,对它说一句:“打开设置,调高屏幕亮度。”
然后,静静看着它,第一次真正为你“动手”。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。