Open-AutoGLM部署教程:3步实现手机AI Agent远程控制实战
Open-AutoGLM 是智谱开源的轻量级手机端AI Agent框架,专为移动端智能交互设计。它不是简单地把大模型搬到手机上跑,而是构建了一套“云端推理+本地感知+远程操控”的协同架构——视觉语言模型在服务端理解屏幕,ADB指令在客户端执行操作,用户只需说人话,就能让手机自己动起来。
AutoGLM-Phone 作为其核心实现,首次将多模态理解与自动化操作深度耦合。它能实时抓取手机屏幕画面,用视觉语言模型识别当前界面元素(按钮、输入框、列表项),再结合自然语言指令解析用户意图,自动规划出“点击哪里→输入什么→滑动到哪→等待几秒”这一整套动作序列。更关键的是,它不只停留在“能做”,还考虑了“安全做”:所有敏感操作(如支付、删除、授权)都会暂停并提示确认;遇到验证码、登录弹窗等无法自动处理的场景,会主动交还控制权给人类;同时支持USB直连与WiFi远程双模式,真正打通了开发、测试与日常使用的最后一公里。
1. 理解核心架构:为什么是“云+端”而不是纯端侧
很多人第一反应是:“既然要控制手机,为什么不直接在手机上跑模型?”这个问题恰恰点中了当前移动端AI Agent落地的最大瓶颈——算力与体验的平衡。
1.1 纯端侧的现实困境
- 显存限制:9B参数的视觉语言模型,即使量化后也需至少6GB显存,而主流安卓旗舰的GPU显存普遍在2–4GB区间,且被系统和应用共享。
- 发热与耗电:持续运行多模态模型会导致CPU/GPU满载,手机10分钟内明显发烫,续航断崖式下降。
- 响应延迟高:端侧推理单次耗时常达8–15秒,用户发出指令后长时间无反馈,交互感断裂。
1.2 Open-AutoGLM的分层解法
Open-AutoGLM采用清晰的三层职责划分:
- 客户端(你的电脑/树莓派):只负责“看”和“动”——截图获取屏幕图像、执行ADB命令、转发指令。轻量、稳定、低延迟。
- 服务端(云服务器或本地高性能机器):专注“想”和“判”——加载AutoGLM-Phone模型,接收截图+文本指令,输出结构化动作序列(如
{"action": "click", "x": 320, "y": 780, "desc": "点击搜索框"})。算力集中,效果可控。 - 通信层(HTTP API):通过标准REST接口连接两端,协议透明、调试方便、天然支持远程。
这种设计让9B模型在A10/A100服务器上流畅运行,推理延迟压到1.2–2.5秒;而客户端仅需Python环境和ADB,Windows笔记本、MacBook甚至老旧的i5台式机都能胜任控制端角色。
1.3 Phone Agent的独特能力边界
它不是万能遥控器,而是有明确能力边界的智能协作者:
- 擅长:界面导航(打开App→点击Tab→下拉刷新)、内容检索(搜关键词→点结果→滑动浏览)、表单填写(输入账号→粘贴密码→点登录)、批量操作(给通讯录前10人发短信)。
- 需人工介入:涉及生物识别(指纹/人脸)、动态验证码、第三方SDK弹窗(如微信支付安全验证)、无文字标识的图形按钮(纯图标Tab)。
- ❌ 不支持:后台进程管理(杀应用)、系统设置修改(调亮度/开蓝牙)、非ADB可操作行为(模拟摇杆、陀螺仪动作)。
理解这些边界,才能避免“为什么它没按我想要的做”的挫败感——它不是故障,而是设计使然。
2. 本地控制端搭建:3步完成环境准备
服务端部署我们另文详述,本节聚焦最易卡住新手的本地控制端配置。整个过程无需编译、不碰驱动,全部使用标准化工具链,实测Windows 11/MacOS Sonoma均可15分钟内走通。
2.1 ADB环境:手机与电脑的“神经通路”
ADB(Android Debug Bridge)是Google官方提供的调试桥接工具,也是Phone Agent操控手机的唯一通道。它的配置本质是让系统认出这个“命令翻译器”。
Windows用户:
- 前往Android SDK Platform-Tools官网下载最新zip包。
- 解压到任意路径,例如
C:\adb。 Win + R→ 输入sysdm.cpl→ “高级”选项卡 → “环境变量” → 在“系统变量”中找到Path→ “编辑” → “新建” → 粘贴C:\adb路径。- 打开新命令提示符,输入
adb version,看到类似Android Debug Bridge version 1.0.41即成功。
macOS用户:
- 下载后解压到
~/Downloads/platform-tools(路径可自定义)。 - 打开终端,执行:
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc - 输入
adb version验证。
- 下载后解压到
关键提醒:不要使用第三方“ADB一键安装包”。它们常捆绑广告软件,且版本陈旧,极易与新版Android系统兼容性报错。
2.2 手机端设置:开启“被控制权限”
这一步决定你能否真正接管手机,而非仅停留在截图阶段。
启用开发者模式:
进入手机“设置” → “关于手机” → 连续点击“版本号”7次 → 弹出“您现在是开发者!”提示。开启USB调试:
返回“设置” → “系统” → “开发者选项” → 向下找到“USB调试”,开启开关。
(部分品牌路径略有差异:华为在“更多设置”里,小米在“高级设置”里,但关键词均为“开发者选项”和“USB调试”)安装ADB Keyboard(解决输入问题):
默认安卓键盘无法通过ADB接收文本输入,必须替换为专用输入法。- 前往GitHub Release页下载 ADBKeyboard.apk
- 用浏览器在手机上打开下载链接,安装APK(需在“设置→安全”中允许“未知来源应用”)。
- 安装后进入“设置→语言与输入法” → 将“ADB Keyboard”设为默认输入法。
- 验证方法:在任意输入框长按,选择“输入法” → 应能看到ADB Keyboard选项。
2.3 控制端代码部署:克隆即用
Open-AutoGLM的控制端代码已高度封装,无需修改即可运行。
# 1. 克隆仓库(推荐国内镜像加速) git clone https://gitee.com/zai-org/Open-AutoGLM # 或使用原GitHub地址 cd Open-AutoGLM # 2. 创建独立虚拟环境(强烈建议,避免依赖冲突) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装依赖(含ADB通信库、HTTP客户端、日志工具) pip install -r requirements.txt pip install -e .此时,你的本地电脑已具备完整控制能力。下一步,就是让手机和电脑“握手成功”。
3. 设备连接与远程调试:USB与WiFi双模式实战
Phone Agent支持两种连接方式,适用不同场景:USB用于首次调试与稳定性要求高的任务;WiFi用于远程办公、自动化测试流水线等无物理线缆场景。
3.1 USB直连:新手首选,成功率99%
这是最可靠的连接方式,适合首次部署验证。
- 用原装数据线将手机连接电脑。
- 手机弹出“允许USB调试吗?”提示 → 勾选“始终允许” → 点击“确定”。
- 在控制端终端执行:
正常输出应为:adb devices
其中List of devices attached 1234567890abcdef device1234567890abcdef就是你的设备ID,后续命令中--device-id参数即填此值。
常见问题直击:
- 若显示
unauthorized:检查手机是否点了“允许”,或重新插拔USB线。- 若显示空列表:确认手机开启了“文件传输”模式(而非仅充电),部分品牌需在通知栏下拉选择。
3.2 WiFi远程连接:摆脱线缆束缚
当需要从办公室电脑控制家里的测试机,或在CI/CD中批量管理设备时,WiFi模式是刚需。
前提条件:手机与电脑必须在同一局域网(如都连着同一个路由器)。
操作流程:
# 1. 先用USB线连接,启用TCP/IP服务 adb tcpip 5555 # 2. 拔掉USB线,查看手机IP(设置→关于手机→状态→IP地址) # 或在电脑端执行(需手机已root,非必需) adb shell ip addr show wlan0 | grep 'inet ' # 3. 用IP连接(将192.168.x.x替换为实际IP) adb connect 192.168.1.100:5555连接成功后,adb devices输出将变为:
List of devices attached 192.168.1.100:5555 device此时,你已获得完全等效于USB的控制权限,所有ADB命令(包括截图、点击、输入)均无缝可用。
3.3 Python API:用代码接管连接生命周期
对于需要集成到自动化脚本或Web后台的场景,直接调用Python SDK比命令行更灵活。
from phone_agent.adb import ADBConnection, list_devices # 初始化连接管理器 conn = ADBConnection() # 连接指定设备(支持IP:port或设备ID) success, message = conn.connect("192.168.1.100:5555") print(f"连接结果: {message}") # 成功时输出 "Connected to 192.168.1.100:5555" # 获取当前所有已连接设备信息 devices = list_devices() for dev in devices: print(f"设备: {dev.device_id} | 类型: {dev.connection_type.value}") # (可选)为USB设备开启WiFi调试 if "usb" in devices[0].connection_type.value: success, msg = conn.enable_tcpip(5555) ip = conn.get_device_ip() print(f"设备WiFi IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")该API屏蔽了底层ADB命令细节,提供面向对象的操作接口,特别适合构建多设备管理平台。
4. 启动AI代理:让手机听懂人话并自主执行
一切就绪,现在进入最激动人心的环节——下达第一条自然语言指令。
4.1 命令行快速启动
确保你已在Open-AutoGLM项目根目录,并已启动服务端(假设服务端运行在http://192.168.1.200:8800):
python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://192.168.1.200:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书,搜索‘咖啡探店’,进入第一个笔记,点赞并收藏"执行后,你会看到实时日志输出:
[INFO] 截图已捕获 → 上传至服务端... [INFO] 模型返回动作:{"action":"open_app","app_name":"小红书"} [INFO] 执行点击:坐标(540, 1200) → 启动小红书 [INFO] 等待应用加载...(自动检测界面变化) [INFO] 截图已捕获 → 上传至服务端... [INFO] 模型返回动作:{"action":"click","x":320,"y":180,"desc":"点击搜索框"} ... [SUCCESS] 任务完成!共执行7步操作,耗时28.4秒。4.2 指令编写心法:如何让AI更懂你
自然语言指令不是越长越好,而是要符合“意图明确+上下文合理”原则:
好例子:
“在淘宝搜索‘无线降噪耳机’,按销量排序,点击第一个商品,复制店铺名”
→ 包含平台、动作、排序逻辑、目标元素,AI可精准拆解。需避免:
“帮我买东西”(意图模糊)
“点那个蓝色的”(无上下文,“蓝色”在不同界面指代不同元素)
“快点弄好”(AI无法理解“快”的量化标准)
进阶技巧:
- 加入约束条件提升成功率,如“只在小红书App内操作,不要退出”;
- 复杂任务可分步下达,先“打开抖音”,等日志显示“已进入首页”后再发第二条“搜索‘健身教程’”。
4.3 故障排查黄金三板斧
当AI未按预期执行时,按此顺序检查:
连接层:
adb devices是否显示device?若为offline,重启ADB服务:adb kill-server && adb start-server。服务层:
在浏览器访问http://192.168.1.200:8800/health,返回{"status":"healthy"}表示服务正常;若超时,检查云服务器防火墙是否放行8800端口。模型层:
查看服务端日志,重点搜索OOM(显存不足)或max-model-len错误。典型修复:启动vLLM时添加--max-model-len 4096,并确保GPU显存≥16GB。
5. 总结:从部署到生产力的跨越
Open-AutoGLM不是又一个玩具级Demo,而是一套经过工程验证的移动端AI Agent落地框架。它用“云推理+端执行”的务实架构,绕开了端侧算力瓶颈;用标准化ADB协议,保证了跨品牌、跨Android版本的兼容性;更以自然语言为统一入口,大幅降低了AI自动化操作的使用门槛。
回顾本次部署,你已完成三个关键跨越:
- 环境跨越:从零配置ADB、解锁开发者选项、安装专用输入法;
- 连接跨越:掌握USB直连与WiFi远程双模式,理解设备ID与IP的本质;
- 交互跨越:学会编写有效指令,读懂日志反馈,定位常见故障。
下一步,你可以尝试:
- 将指令封装为Shell脚本,实现“一键清理微信缓存”;
- 结合定时任务(cron/crontab),让手机每天上午9点自动打开新闻App并朗读头条;
- 在企业内网部署服务端,为客服团队提供“自动回复+截图取证”双模助手。
技术的价值,永远在于它如何真实地节省你的时间、减少重复劳动、放大人的创造力。当你第一次看着手机自己打开App、输入关键词、滑动浏览并完成点赞——那一刻,你拥有的不再是一个工具,而是一个真正听懂你、并愿意为你行动的数字伙伴。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。