"打开美团搜索附近的火锅店。""给文件传输助手发一条:部署成功。" 说完,手机自己动了。
这不是什么科幻片桥段,也不是付费闭源产品,而是一个开源项目做到的事——Open-AutoGLM,来自智谱生态的 zai-org(GitHub 地址)。
先说清楚它是干什么的:你在电脑上打一句"打开小红书搜美食",它就替你在手机上把这一连串操作做完——开 App、搜索、点击、输入,全程不用你碰手机。
我最近把这个项目从 README 到源码翻了一遍,也研究了下社区里的反馈。这篇文章讲清楚三件事:它到底怎么工作的、怎么跑起来、适合谁用。适合正在做手机自动化、Agent 研究,或者单纯想"动嘴控机"的开发者。
动嘴说一句话,剩下的交给 Agent(配图为概念示意图)
一、这项目到底是个啥
一句话概括:Open-AutoGLM = 一套 Phone Agent 框架 + 一个专为手机界面调优的视觉语言模型。
📖名词解释:Agent(智能体)指能自己"感知环境 → 思考 → 行动"的程序;视觉语言模型(VLM)则是能同时"看懂图片"和"理解文字"的 AI 模型,比如给它一张手机截图,它能说出页面上有什么、该点哪里。
打个比方:它相当于给你的手机配了一个长在电脑里、看得懂屏幕的遥控助理。你说目标,它看屏幕、想步骤、动手操作,一条龙包办。
这两部分是分开的:
- Agent 框架:跑在电脑上的 Python 代码,负责截图、调模型、把模型输出的动作发给手机
- AutoGLM-Phone 模型(9B 参数):专门拿手机界面训练过的"眼睛+大脑",认得各种 App 页面
项目数据:GitHub 上23.5k+ Stars、3.7k+ Forks,Apache-2.0 协议(商用友好),主干版本以 main 分支为准,模型可从 Hugging Face / ModelScope 下载。
二、它是怎么工作的:一个闭环
整个流程其实是个很朴素的循环:
- 截图:Agent 通过 ADB 抓一张当前手机屏幕的图
- 看图:把截图 + 你的指令一起发给 AutoGLM-Phone 模型
- 出招:模型输出一个结构化动作,比如
Tap(x=540, y=1200)或Type("无线耳机") - 执行:Agent 把动作翻译成 ADB/HDC 命令发给手机
- 再截图:回到第 1 步,直到任务完成、达到最大步数、或触发人工接管
Agent 的工作闭环:截图 → 理解 → 决策 → 执行,如此往复(配图为概念示意图)
模型能输出的动作还挺全,我把它整理成一张表:
| 动作 | 干什么用 |
|---|---|
Launch | 启动某个 App(如"美团") |
Tap | 点屏幕某处 |
Type | 输入文字 |
Swipe | 滑动 |
Back/Home | 返回键 / 回桌面 |
Long Press/Double Tap | 长按 / 双击 |
Wait | 等页面加载 |
Take_over | 转人工接管 |
📖名词解释:ADB(Android Debug Bridge)是安卓官方的"调试桥",电脑靠它给手机发命令,平时开发者调试 App 用的就是它;HDC 是鸿蒙版的对应工具,作用一样。
一个容易被忽略的细节:这个闭环意味着 Agent 不需要针对每个 App 写死脚本。它"看图办事",所以理论上换个没见过的页面也能应付——这也是它和传统 UI 自动化脚本(比如按键精灵那类)最本质的区别。
三、支持哪些设备和应用
从 README 看,覆盖面是这样的:
| 平台 | 连接方式 | 应用覆盖 |
|---|---|---|
| Android 7.0+ | ADB | 50+ 应用(微信、美团、淘宝、小红书、抖音等) |
| HarmonyOS NEXT | HDC | 60+ 应用 |
| iOS | 见仓库docs/ios_setup | 实验性支持 |
具体列表不用猜,跑一条命令就能看到:
# 查看支持的安卓应用 python main.py --list-apps # 查看支持的鸿蒙应用 python main.py --device-type hdc --list-apps四、手把手跑起来
1. 环境准备
你需要:
- 电脑装 Python 3.10+
- 手机开启开发者模式 + USB 调试(部分机型还要开"USB 调试(安全设置)",才能模拟点击)
- Android 设备额外装一个 ADB Keyboard 输入法并启用——这步别漏,后面中文输入全靠它,没装的话 Agent 打字会失败
- 鸿蒙设备则是开启开发者选项,用 HDC 连接
手机端的开发者选项与 USB 调试权限(项目 README 原图)
2. 安装 Agent
git clone https://github.com/zai-org/Open-AutoGLM.git cd Open-AutoGLM pip install -r requirements.txt pip install -e .3. 连接设备
USB 插上手机,确认设备被识别:
# Android adb devices # HarmonyOS hdc list targets不想插线也行,支持 WiFi 远程连接:
# Android 与鸿蒙均支持 adb connect IP地址:5555 hdc tconn IP地址:5555手机端开启无线调试后即可脱离数据线远程控制(项目 README 原图)
💡 【配图建议】这一节最适合放一张你自己录的运行 GIF/录屏:输入指令后 Agent 自动开 App、点击、输入的全过程。网上现成的效果视频不多,官方效果以 autoglm.z.ai/blog 为主,自己录一张真实跑通的图,文章说服力会强很多。
五、模型怎么接:三种玩法
Agent 只是"手脚",还得给配个"大脑"。模型接入有三条路,门槛从低到高:
| 玩法 | 前置条件 | 适合谁 |
|---|---|---|
| 智谱 BigModel API | 去智谱平台申请个 API Key | 想立刻体验的 |
| ModelScope API | 去魔搭社区申请个 Key | 同上 |
| 自建 vLLM/SGLang 服务 | 一张显存 24GB+ 的 GPU | 想私有化、做定制训练的 |
📖名词解释:vLLM / SGLang 是两个流行的"大模型推理框架",作用是把模型跑成本地 API 服务——相当于自己在家开一家只服务自己的"模型餐厅",不用每次都去外面的店(云端 API)排队。
用云端 API(推荐先这么跑通):
# 智谱 BigModel python main.py --base-url https://open.bigmodel.cn/api/paas/v4 \ --model "autoglm-phone" --apikey "your-key" \ "打开美团搜索附近的火锅店" # ModelScope python main.py --base-url https://api-inference.modelscope.cn/v1 \ --model "ZhipuAI/AutoGLM-Phone-9B" --apikey "your-key" \ "打开美团搜索附近的火锅店"自建模型服务:用 vLLM 或 SGLang 部署 AutoGLM-Phone-9B,暴露 OpenAI 兼容 API(比如http://localhost:8000/v1),再把--base-url和--model指过去就行。
两个模型版本可选:
| 模型 | 特点 |
|---|---|
| AutoGLM-Phone-9B | 中文手机场景优化 |
| AutoGLM-Phone-9B-Multilingual | 多语言,适合中英混合界面 |
⚠️ 自建部署有个坑:启动参数要照抄 README(如--max-model-len 25480、--limit-mm-per-prompt等)。我翻了下 Issues 区,不少"输出格式错误/乱码"的问题都是参数没按文档来导致的。另外模型本体约 20GB,本地部署建议 24GB+ 显存。
六、代码里怎么调
不想用命令行的话,Python API 也就几行:
from phone_agent import PhoneAgent from phone_agent.model import ModelConfig model_config = ModelConfig( base_url="http://localhost:8000/v1", model_name="autoglm-phone-9b", ) agent = PhoneAgent(model_config=model_config) result = agent.run("打开淘宝搜索无线耳机") print(result)七、安全设计:哪些环节它"不敢"自己做主
这一点是我觉得设计得比较到位的地方,从源码看有两个机制:
- 敏感操作确认:可以配置
confirmation_callback,遇到支付这类操作先问你一句再执行 - 人工接管:可以配置
takeover_callback,遇到登录、验证码这种必须本人操作的页面,Agent 会主动停下来交还控制权,你弄完它再接着跑
实际体验中,支付、银行类页面往往截图直接是黑屏(系统级安全限制),这时也会自然触发接管——算是双保险。
从社区反馈来看,大家对这个"该出手时出手、该认怂时认怂"的边界感评价还不错,至少不会有 App 被它点到转账页面的惊悚故事。
八、什么人适合用
对照了一下适用场景,这几类人可以重点关注:
- 做手机 Agent / GUI Agent 研究的:论文(AutoGLM、MobileRL)+ 代码 + 模型全开源,可复现性强
- 做 App 自动化测试和演示的:用自然语言驱动测试流程,省得手写 UI 自动化脚本
- 想把"自然语言控手机"接进自家产品的:它已经和 Midscene.js 打通了,可以在 iOS/Android 上用 YAML 或 JS 编排自动化流程
- 智谱 / GLM 生态用户的:模型结构和 GLM-4.1V-9B-Thinking 一致,部署文档可参考 GLM-V 仓库
和另外两条路的对比:
| 维度 | Open-AutoGLM | 纯手写 UI 自动化脚本 | 云端"手机助手"产品 |
|---|---|---|---|
| 输入方式 | 自然语言 | 坐标/选择器、代码 | 自然语言,但闭源不可控 |
| 设备与系统 | Android + 鸿蒙,本地/远程 | 取决于脚本工具 | 取决于产品 |
| 模型与部署 | 开源模型 + 云 API 或自建 | 无模型 | 通常仅云端 |
| 可扩展性 | 改 Prompt、加应用、接自建服务 | 高但要写代码 | 低 |
| 研究复现 | 论文 + 代码 + 模型都拿得到 | 看脚本是否开源 | 难复现 |
九、我翻了下源码:想二次开发从哪下手
仓库结构不复杂,想改行为的话主要看这几处:
| 文件/目录 | 作用 |
|---|---|
phone_agent/agent.py | 主类 PhoneAgent,调度截图、模型、动作、回调 |
phone_agent/adb/ | ADB 连接、截图、文字输入、设备控制 |
phone_agent/actions/handler.py | 把模型输出的动作翻译成 ADB/HDC 命令 |
phone_agent/config/ | 支持的应用映射(apps.py)、中英文提示词(prompts_zh.py/prompts_en.py) |
phone_agent/model/client.py | OpenAI 兼容的模型客户端 |
想加自定义 Prompt 或适配新 App,改config/下的文件就行;想接别的模型服务,盯住model/client.py。鸿蒙的支持则在 HDC 相关模块里,命令行加--device-type hdc切换。
Prompt 也支持中英文两套(--lang cn/--lang en,默认中文),自定义提示词直接改对应文件即可。
十、几个坑,提前说
- Android 中文输入必须装 ADB Keyboard 并设为启用,否则打字异常——这是新手最容易卡住的一步
- 支付/银行页面可能截图黑屏并触发接管,不是 Bug,是系统安全机制
- 自建推理服务的参数别瞎改,按 README 来,不然容易输出乱码
- 合规红线:项目明确声明仅供研究与学习,禁止用于非法获取信息、干扰系统等用途,上手前建议把仓库里的使用条款读一遍
名词速查表
| 名词 | 一句话解释 |
|---|---|
| Agent(智能体) | 能自己感知环境、思考并采取行动的程序 |
| VLM(视觉语言模型) | 同时"看得懂图"和"读得懂字"的 AI 模型 |
| ADB | 安卓官方调试桥,电脑给安卓手机发命令的通道 |
| HDC | 鸿蒙版的 ADB |
| vLLM / SGLang | 把大模型跑成本地 API 服务的推理框架 |
| OpenAI 兼容 API | 接口格式和 OpenAI 一样的模型服务,换个地址就能用 |
| 显存 | 显卡上的内存,跑大模型的主要瓶颈 |
项目地址
- 🌟 GitHub:github.com/zai-org/Open-AutoGLM
- 🤖 模型:Hugging Face / ModelScope
- 📚 智谱 API 文档:docs.bigmodel.cn
- 🌐 官方博客:autoglm.z.ai/blog
- 📄 论文:AutoGLM(arXiv:2411.00820)、MobileRL(arXiv:2509.18119)
- 🔧 Midscene.js 集成说明:midscenejs.com
总的来说,如果你对"手机 Agent"这个方向感兴趣,这是目前少数从框架到模型全链路都能自己跑通的开源选择。门槛主要在环境配置那一小节,跑通之后,剩下的就是发挥想象力了——毕竟"说句话让手机自己动"这件事,上手试过一次就知道有多省事了。