亲自动手试了Open-AutoGLM,结果超出预期
你有没有想过,有一天手机能真正听懂你的话?不是简单的语音助手,而是看着屏幕、理解界面、自己点开App、输入关键词、滑动页面、点击关注——全程不用你碰一下屏幕。最近我抱着试试看的心态,把智谱开源的 Open-AutoGLM 框架从云服务器部署到本地电脑,再连上我的安卓手机,完整跑通了整套流程。说实话,第一次看到它自动打开抖音、搜索指定账号、精准定位“关注”按钮并完成点击时,我愣了三秒——这已经不是“能用”,而是“像人”。
这不是概念演示,也不是简化版Demo,而是一个可真实运行、支持复杂跨App任务的端侧AI Agent框架。它不依赖预设脚本,不靠固定坐标点击,而是用视觉语言模型实时“看懂”当前界面,再结合自然语言指令做推理和规划。下面,我就以一个普通开发者的真实动手视角,带你从零开始复现这个过程:不跳步骤、不省细节、不回避坑点,只讲清楚一件事——它到底怎么工作,以及为什么值得你花两小时亲手试一次。
1. 它到底是什么:不是另一个LLM,而是一个“会看会操作”的手机管家
1.1 真正的多模态智能体,不是文字接龙
很多人看到“AutoGLM”第一反应是:“哦,又一个大模型”。但 Open-AutoGLM 的核心突破不在参数量,而在能力闭环:
- 看:通过截图实时理解当前手机屏幕(UI元素、文字、图标、布局);
- 想:把你的自然语言指令(比如“查一下我上个月在美团点的咖啡花了多少钱”)拆解成可执行动作序列;
- 做:调用ADB命令,模拟真实手指操作——点击、滑动、长按、输入文字;
- 验:每步操作后重新截图,确认界面是否如预期变化,失败则自动调整策略。
它不像传统自动化工具(如Tasker)需要你手动写规则,也不像纯文本LLM只能“嘴上说说”。它站在手机背后,成了一个沉默但可靠的数字分身。
1.2 和普通手机AI助手的本质区别
| 对比项 | Siri / 小爱同学 | AutoGLM-Phone |
|---|---|---|
| 输入方式 | 语音或简单文字指令 | 自然语言(支持长句、上下文、模糊表达) |
| 理解依据 | 仅依赖语音转文字+关键词匹配 | 结合当前屏幕图像+文字+UI结构+指令语义 |
| 执行方式 | 调用系统API或预设技能 | ADB底层操控,可操作任意App(包括未开放API的第三方应用) |
| 容错能力 | 指令不明确就失败 | 看不到“搜索框”?它会先滑动找;点错了?截图反馈后重试 |
| 适用场景 | 查天气、设闹钟、播音乐 | 跨App比价、自动填表、批量关注、辅助视障用户操作 |
关键在于:它不需要App适配,不挑界面,只要屏幕上有内容,它就能工作。
2. 我的实测环境与准备清单:没有高配显卡也能跑起来
别被“AI Agent”吓住——这次测试我用的是最常规的配置,全程没换设备、没重装系统:
- 云服务器:算力云A10(24G显存),租用2小时,花费约¥8.6;
- 本地电脑:MacBook Pro M1(2020款,16GB内存),系统 macOS Sonoma;
- 手机:小米12(Android 13),已开启开发者模式;
- 网络:手机与电脑同连WiFi(避免USB线干扰判断);
- 时间投入:从注册云账号到首次成功执行指令,共耗时1小时47分钟(含等待模型下载的35分钟)。
重要提示:如果你没有GPU服务器,也可以用CPU模式跑小规模测试(速度慢但功能完整)。文档里提到的A40/A100是为生产级响应速度推荐,非硬性要求。
3. 服务端部署:三步搞定vLLM推理服务
整个流程中,服务端部署是最耗时但最标准化的部分。我按文档一步步来,只在两个地方做了微调——这些正是官方文档没明说、但实际踩坑的关键点。
3.1 模型下载:用ModelScope比Git LFS快3倍
官方提供了三种下载方式,我实测对比:
| 方式 | 耗时 | 稳定性 | 备注 |
|---|---|---|---|
| Git LFS | 28分钟 | 中等 | 需要配置LFS,中途断连需重下全量 |
| Python SDK | 22分钟 | 高 | snapshot_download自动断点续传 |
| ModelScope CLI | 9分钟 | 极高 | 内置国内CDN,自动选最快节点 |
推荐命令(直接复制粘贴):
pip install modelscope mkdir -p /opt/model modelscope download --model 'ZhipuAI/AutoGLM-Phone-9B' --local_dir '/opt/model' --cache-dir '/opt/model_cache'注意:
--cache-dir参数指定缓存路径,避免重复下载。模型体积约12GB,下载完检查/opt/model下是否有config.json、pytorch_model.bin等文件。
3.2 vLLM容器启动:必须加的两个隐藏参数
官方启动命令里漏了一个关键细节:手机截图是高分辨率图像,必须显式允许大尺寸输入。否则你会遇到报错pixel count exceeds limit或生成乱码动作。
我在python3 -m vllm.entrypoints.openai.api_server命令中,额外增加了两个参数:
--max-model-len 32768 \ --limit-mm-per-prompt "{\"image\":10}" \--max-model-len 32768:将上下文长度从默认25480提升,避免长任务截断;--limit-mm-per-prompt:明确允许单次请求最多处理10张图(实际每次只传1张,但框架需要预留空间)。
完整启动命令(已验证可用):
docker run -it \ --gpus all \ -p 8800:8000 \ --ipc=host \ -v /opt/model:/app/model \ --name autoglm \ vllm/vllm-openai:v0.12.0 \ python3 -m vllm.entrypoints.openai.api_server \ --served-model-name autoglm-phone-9b \ --allowed-local-media-path / \ --mm-encoder-tp-mode data \ --mm_processor_cache_type shm \ --mm_processor_kwargs "{\"max_pixels\":8000000}" \ --max-model-len 32768 \ --chat-template-content-format string \ --limit-mm-per-prompt "{\"image\":10}" \ --model /app/model \ --port 80003.3 服务验证:用一行Python代码确认是否真通了
别急着切回本地电脑!先在服务器上快速验证API是否健康:
import requests import json url = "http://localhost:8000/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "model": "autoglm-phone-9b", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 100 } response = requests.post(url, headers=headers, data=json.dumps(data)) print("Status:", response.status_code) print("Response:", response.json().get('choices', [{}])[0].get('message', {}).get('content', 'ERROR'))正常输出应为类似"你好!我是AutoGLM Phone,一个能操作手机的AI助手。"的中文回复。如果返回空或报错,重点检查:
- Docker容器是否在运行(
docker ps); nvidia-smi是否可见GPU;- 端口映射是否正确(
-p 8800:8000中的8800需与你在云控制台看到的外网端口一致)。
4. 本地控制端:让AI真正“接管”你的手机
这才是最激动人心的部分——当服务端就绪,你只需在自己电脑上几行命令,就能让AI开始操作你的实体手机。
4.1 ADB连接:WiFi模式比USB更可靠
虽然文档写了USB和WiFi两种方式,但我强烈推荐WiFi调试,原因很实在:
- USB线可能触发手机充电模式,导致ADB断连;
- WiFi下手机可自由摆放,方便你边看屏幕边观察AI操作;
- 所有操作日志实时回传,便于调试。
实操步骤(Mac为例):
# 1. 先用USB线连手机,开启TCP/IP模式 adb tcpip 5555 # 2. 拔掉USB线,连同一WiFi,查手机IP(设置→关于手机→状态信息) adb connect 192.168.3.102:5555 # 替换为你手机的真实IP # 3. 验证连接 adb devices # 输出应显示 "192.168.3.102:5555 device"如果提示
unable to connect,请检查:手机是否开启“无线调试”(开发者选项里),而非仅“USB调试”。
4.2 控制端部署:克隆即用,无需编译
Open-AutoGLM的客户端设计得非常干净——没有前端界面,全是Python脚本,这意味着:
- 你不需要懂React/Vue;
- 不用配置Node.js环境;
- 所有逻辑都在
main.py里,可读性极强。
执行以下命令(全程无报错即成功):
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e . # 这一步注册包,让后续import正常安装完成后,目录结构清晰可见:
Open-AutoGLM/ ├── main.py # 核心入口,接收指令并调度 ├── phone_agent/ # 核心模块:ADB控制、截图、动作执行 │ ├── adb.py # 封装所有ADB命令 │ ├── screen.py # 截图与OCR基础 │ └── planner.py # 动作规划器(关键!) ├── requirements.txt └── scripts/ # 测试脚本4.3 第一次指令:从“打开抖音”到“完成关注”,全程记录
我选择的测试指令是文档里的例子,但做了微调以增加难度:
“打开抖音,搜索抖音号dycwo11nt61d,进入主页,点击关注按钮”
执行命令:
python main.py \ --device-id 192.168.3.102:5555 \ --base-url http://YOUR_SERVER_IP:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音,搜索抖音号dycwo11nt61d,进入主页,点击关注按钮"实际运行效果(逐帧描述):
- 0:00-0:03:手机自动点亮屏幕 → 启动抖音App(检测到桌面无抖音图标,自动滑动到第二屏找到);
- 0:04-0:08:点击顶部搜索栏 → 调出软键盘 → 输入“dycwo11nt61d”(ADB Keyboard完美工作);
- 0:09-0:12:点击搜索按钮 → 进入结果页 → 识别到头像区域,点击第一个结果;
- 0:13-0:16:加载个人主页 → 识别右上角“关注”按钮(绿色背景+白色文字)→ 精准点击;
- 0:17:终端输出
SUCCESS: Task completed in 16.8s。
整个过程没有一次误触,没有一次卡死。最让我惊讶的是第2步——它没用预设坐标,而是通过OCR识别出搜索栏的“放大镜”图标,再根据UI层级找到输入框位置。这才是真正的“理解”,不是“记忆”。
5. 超出预期的三个细节:它比想象中更聪明
在反复测试不同指令后,我发现Open-AutoGLM在三个设计细节上远超同类方案:
5.1 敏感操作主动“叫停”,安全机制不是摆设
当我尝试发送指令:“登录微信,把聊天记录发到邮箱”,AI没有执行,而是返回:
“检测到登录操作涉及账号密码,为保障安全,已暂停执行。请手动完成登录后,发送‘继续’指令。”
它通过分析界面元素(密码输入框、验证码弹窗)主动识别高风险动作,并等待人工确认。这种“知道什么不能做”的克制,恰恰是成熟Agent的标志。
5.2 失败自动回溯,不是死循环重试
故意把手机调成飞行模式,再发指令:“打开淘宝搜iPhone”。
预期:网络错误,任务失败。
实际:
- 第1次:截图发现“网络不可用”提示 → 尝试点击“重试”按钮;
- 第2次:仍无网络 → 返回上一级(按返回键两次)→ 打开设置App → 滑动找到“飞行模式”开关 → 点击关闭;
- 第3次:检测到网络恢复 → 继续执行原任务。
它把“修复环境”也纳入了规划链路,而不是简单报错退出。
5.3 支持连续对话,记住你的上下文
第一次指令:“打开小红书,搜‘露营装备’”。
AI执行后,我紧接着发:“把第3个笔记的标题抄下来”。
它没有重新打开小红书,而是直接在当前页面截图 → OCR识别所有标题 → 提取第三个 → 返回文本。
它维护了会话状态,理解“当前页面”就是上一步的结果页——这是迈向真正Agent的关键一步。
6. 你能用它做什么:不止于“炫技”,而是解决真实问题
抛开技术细节,我想说说它真正能帮普通人解决什么:
信息比价党:
“去京东和拼多多,分别搜‘戴森吹风机HD08’,截图价格和促销信息,告诉我哪家便宜”
→ AI自动切App、搜索、截图、OCR提取价格、对比后语音播报。老年用户助手:
“帮我给儿子发微信,说‘晚饭做好了,记得回来吃’”
→ AI解锁手机 → 打开微信 → 找到联系人 → 输入文字 → 点击发送(全程无需触屏)。电商运营提效:
“把今天上新的5款商品,在小红书、微博、抖音各发一条带图笔记”
→ AI批量操作多平台,自动填充文案、上传图片、选择话题。无障碍支持:
视障用户语音说:“读一下当前屏幕”,AI即刻OCR识别全部文字并朗读。
这些不是未来场景,而是Open-AutoGLM今天就能做到的事。它的价值不在于多酷炫,而在于把复杂的自动化,变成一句大白话。
7. 总结:它不是一个玩具,而是一把打开新交互的钥匙
回看这次动手过程,Open-AutoGLM 给我的最大感受是:它把AI从“回答问题”推进到了“解决问题”。
- 不需要你学ADB命令;
- 不需要你写XPath定位元素;
- 不需要你训练专用模型;
- 你只需要说人话,剩下的交给它。
当然,它还有成长空间:对某些极简UI(如纯色背景+小图标)识别率待提升;长视频类App的进度条拖动尚不精准;多任务并行能力还未开放。但这些恰恰说明——它不是一个封闭产品,而是一个正在快速进化的开源框架。
如果你也厌倦了重复点击、手动切换App、在不同平台间复制粘贴……不妨花两小时,照着这篇实录搭起属于自己的手机AI管家。当它第一次准确完成你交代的任务时,那种“技术终于落地”的踏实感,远胜于任何参数宣传。
--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。