Open-AutoGLM实战教程:从克隆仓库到执行关注指令全过程
你有没有想过,让手机自己“看懂”屏幕、理解你的自然语言指令,然后自动完成一连串操作?比如只说一句“打开小红书搜美食”,它就能解锁、启动App、输入关键词、点击搜索——全程无需你点一下屏幕。这不是科幻,而是Open-AutoGLM正在做的事。
Open-AutoGLM是智谱开源的轻量级手机端AI Agent框架,专为在真实移动设备上运行而设计。它不依赖复杂前端或定制ROM,而是巧妙地把视觉理解、意图解析、动作规划和设备控制四层能力打包成一个可快速部署的系统。核心不是“大模型跑在手机上”,而是“用手机当眼睛和手,让云端大模型当大脑”。
AutoGLM-Phone作为其落地形态,真正实现了多模态人机交互的闭环:它能实时截图分析界面元素(按钮、文字、图标),结合上下文推理用户意图,再通过ADB生成精准的点击、滑动、输入指令。更关键的是,它不是“全自动黑箱”——遇到登录、验证码等敏感操作时会主动暂停,等你人工确认;也支持WiFi远程调试,开发时不用一直插着USB线。
下面我们就从零开始,带你亲手搭起这个“会看会想会动手”的手机AI助理。整个过程不需要编译内核、不用刷机、不碰Android Studio,只要你会用命令行、能连上一台安卓手机,15分钟就能让AI替你点开抖音、找到博主、完成关注。
1. 理解核心架构:为什么它能“看”又“动”
在动手前,先理清Open-AutoGLM不是什么,以及它真正厉害在哪。
1.1 它不是本地大模型,而是“云脑+端眼+手”的协作系统
很多人第一反应是:“9B模型跑在手机上?那得骁龙8 Gen3才够吧?”其实完全相反。Open-AutoGLM采用清晰的分层设计:
- 端侧(手机):只负责三件事——截图(
adb shell screencap)、发送图像和当前状态给服务端、接收并执行动作指令(如adb shell input tap x y)。所有计算压力都在云端。 - 服务端(你的云服务器):运行vLLM托管的
autoglm-phone-9b模型,接收截图+指令,输出结构化动作序列(例如:[{"action": "click", "x": 520, "y": 1840}, {"action": "input", "text": "dycwo11nt61d"}])。 - 控制端(你的本地电脑):作为桥梁,协调两端通信,并提供友好的命令行接口。
这种设计让老旧安卓7.0手机(哪怕只有2GB内存)也能成为智能终端——它只是个高清摄像头+精密机械臂。
1.2 多模态理解的关键:不只是OCR,而是“看图说话”
AutoGLM-Phone的视觉模块不是简单调用Tesseract做文字识别。它把整张截图送入视觉语言模型(VLM),让模型像人一样理解界面:
- “顶部那个红色圆圈图标,旁边写着‘+’,在底部导航栏最右边” → 判定为“发布按钮”
- “中间列表里第三项,头像右下角有蓝标,用户名是‘dycwo11nt61d’,后面跟着‘已关注’灰色字” → 判定为“目标博主且已关注”
- “弹窗里有‘允许’和‘拒绝’两个按钮,背景是半透明黑色遮罩” → 触发人工接管机制
这种理解能力,让它能应对不同App千变万化的UI布局,而不是靠写死坐标或XPath。
1.3 动作规划的安全护栏:不盲目执行,而是“思考后行动”
你不会希望AI在你没注意时,突然给你微信通讯录全部拉黑。Open-AutoGLM内置三层安全机制:
- 显式确认:对安装App、删除联系人、支付等高危操作,强制返回确认提示,必须人工输入
y才继续。 - 上下文感知:如果指令是“关注抖音号dycwo11nt61d”,它会先检查当前是否在抖音首页;如果不是,会先执行“返回主页”再搜索,避免在错误页面乱点。
- 人工接管通道:在验证码弹窗、账号登录页等场景,自动暂停并输出当前截图URL,你扫码看图后,在命令行输入坐标即可接管。
这使得它既是高效工具,也是可控助手——技术服务于人,而非替代人。
2. 本地环境搭建:让电脑成为指挥中心
控制端代码运行在你的本地电脑(Windows/macOS均可),它不处理模型,但要稳稳握住ADB这条“神经通路”。我们分三步走:装好ADB、配通手机、拉下代码。
2.1 ADB工具安装与验证
ADB(Android Debug Bridge)是Android系统的官方调试桥,Open-AutoGLM所有操作都靠它完成。别被名字吓到,它就是一个命令行小工具。
Windows用户:
- 去Android SDK Platform-Tools官网下载zip包。
- 解压到任意文件夹,比如
C:\platform-tools。 - 按
Win + R输入sysdm.cpl→ “高级”选项卡 → “环境变量” → 在“系统变量”中找到Path→ “编辑” → “新建” → 粘贴你解压的路径(如C:\platform-tools)。 - 打开新命令提示符,输入
adb version。看到类似Android Debug Bridge version 1.0.41即成功。
macOS用户:
- 下载同上zip包,解压到
~/Downloads/platform-tools。 - 打开终端,运行:
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc- 输入
adb version验证。
小技巧:如果后续总提示
command not found: adb,说明环境变量没生效,重启终端或运行source ~/.zshrc(macOS)/ 重新打开命令提示符(Windows)。
2.2 手机端设置:开启“被操控”权限
安卓默认禁止外部程序控制屏幕,需手动授权。整个过程只需5分钟,且一次设置长期有效。
开启开发者模式:
进入手机“设置” → “关于手机” → 连续点击“版本号”7次,直到弹出“您现在处于开发者模式”。启用USB调试:
返回“设置” → “系统” → “开发者选项” → 找到“USB调试”,务必勾选。部分品牌(如小米、华为)还需额外开启“USB调试(安全设置)”和“MIUI优化”关闭。安装ADB Keyboard(关键!):
- 去GitHub搜索
adb-keyboard,下载最新apk(如adb-keyboard-v1.0.0.apk)。 - 用USB线连接手机与电脑,在电脑命令行运行
adb install adb-keyboard-v1.0.0.apk。 - 手机上打开“设置” → “语言与输入法” → “当前键盘” → 切换为
ADB Keyboard。
为什么必须装它?因为普通输入法无法通过ADB触发。ADB Keyboard是唯一能让
adb shell input text命令真正打出字的输入法。- 去GitHub搜索
2.3 克隆与安装控制端代码
现在,你的电脑已具备“发号施令”的资格,下一步是拿到指挥手册——Open-AutoGLM控制端。
# 1. 克隆官方仓库(国内用户建议加 --depth 1 加速) git clone https://github.com/zai-org/Open-AutoGLM --depth 1 cd Open-AutoGLM # 2. 创建虚拟环境(推荐,避免污染全局Python) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装依赖(requirements.txt 已预置适配主流系统) pip install -r requirements.txt pip install -e .安装完成后,运行python -c "import phone_agent; print('OK')"无报错即表示环境就绪。
3. 设备连接实战:USB直连与WiFi远程双模式
Open-AutoGLM支持两种连接方式:USB线直连(稳定首选)和WiFi无线连接(方便演示)。我们先确保USB可用,再拓展WiFi。
3.1 USB连接:三步确认设备在线
- 用原装USB线连接手机与电脑。
- 手机弹出“允许USB调试吗?”对话框 →勾选“始终允许”,点确定。
- 在电脑命令行运行:
adb devices正常输出应类似:
List of devices attached ZY322KDLFJ device其中ZY322KDLFJ就是你的设备ID,后面会用到。如果显示unauthorized,请检查手机是否点了“允许”;如果为空,重插USB线或换接口。
3.2 WiFi远程连接:摆脱线缆束缚
当你需要在客厅沙发用手机,而电脑在书房时,WiFi模式就派上用场。注意:首次必须用USB完成初始化。
# 1. 用USB连接后,开启设备TCP/IP服务 adb tcpip 5555 # 2. 断开USB线,确保手机和电脑在同一WiFi下 # 3. 查找手机IP(手机设置→关于手机→状态信息→IP地址,或用 adb shell ip route) # 4. 连接WiFi设备(将192.168.x.x替换为你手机的真实IP) adb connect 192.168.1.100:5555再次运行adb devices,应看到192.168.1.100:5555 device。此后所有操作都可通过WiFi完成,包括截图和点击。
排错提示:如果
adb connect失败,大概率是手机IP变了。在手机WiFi设置里,长按当前网络 → “修改网络” → 勾选“高级选项” → IP设置改为“静态”,固定一个IP(如192.168.1.100)。
4. 启动AI代理:从一句指令到完整关注流程
万事俱备,现在进入最激动人心的环节:让AI执行“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”。
4.1 命令行一键运行(推荐新手)
确保你已在Open-AutoGLM目录下,且云服务端已启动(http://<云服务器IP>:8800/v1可访问)。执行:
python main.py \ --device-id ZY322KDLFJ \ --base-url http://123.56.78.90:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数详解:
--device-id:填adb devices显示的ID(USB)或IP:5555(WiFi),如192.168.1.100:5555。--base-url:云服务器地址,格式必须是http://IP:PORT/v1,末尾/v1不可省略。- 最后字符串:你的自然语言指令,引号包裹,支持中文。
执行后,你会看到实时日志:
[INFO] 截图已发送至服务端... [INFO] 模型返回动作:[{'action': 'launch', 'package': 'com.ss.android.ugc.aweme'}] [INFO] 正在启动抖音... [INFO] 截图已发送至服务端... [INFO] 模型返回动作:[{'action': 'click', 'x': 820, 'y': 2100}] [INFO] 点击搜索框... [INFO] 模型返回动作:[{'action': 'input', 'text': 'dycwo11nt61d'}] [INFO] 输入抖音号... [INFO] 模型返回动作:[{'action': 'click', 'x': 1000, 'y': 1800}] [INFO] 点击搜索结果... [INFO] 模型返回动作:[{'action': 'click', 'x': 520, 'y': 1840}] [INFO] 点击关注按钮!整个过程约20-40秒,取决于网络和模型响应速度。你会亲眼看到手机自动解锁、打开抖音、点击搜索、输入ID、点击头像、最后点下关注——一气呵成。
4.2 Python API集成:嵌入你自己的脚本
如果你需要批量处理或集成到其他系统,Open-AutoGLM提供了简洁的Python API:
from phone_agent.adb import ADBConnection from phone_agent.client import PhoneAgentClient # 1. 初始化ADB连接管理器 conn = ADBConnection() # 2. 连接设备(支持USB或WiFi) success, msg = conn.connect("ZY322KDLFJ") # USB ID # success, msg = conn.connect("192.168.1.100:5555") # WiFi if not success: print(f"连接失败:{msg}") exit() # 3. 创建AI代理客户端 client = PhoneAgentClient( base_url="http://123.56.78.90:8800/v1", model="autoglm-phone-9b" ) # 4. 发送指令(同步阻塞,等待完成) result = client.run_instruction( instruction="打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!", device_id="ZY322KDLFJ" ) print(f"任务状态:{result.status}") print(f"执行步骤数:{len(result.actions)}")这段代码可直接放入你的自动化工作流,比如每天定时关注新博主,或测试App UI稳定性。
5. 常见问题与避坑指南:少走弯路的实战经验
即使按教程一步步来,也可能遇到几个经典“拦路虎”。以下是我们在真实测试中高频踩过的坑,附带一招解决。
5.1 “Connection refused” 错误:云服务没暴露端口
现象:运行python main.py报错ConnectionRefusedError: [Errno 111] Connection refused。
原因:云服务器防火墙未放行8800端口,或vLLM服务未绑定到0.0.0.0:8800。
解决:
- 检查vLLM启动命令是否含
--host 0.0.0.0 --port 8800。 - 阿里云/腾讯云后台,进入“安全组”,添加入方向规则:端口8800,协议TCP,源IP
0.0.0.0/0(或限制为你的家庭IP)。
5.2 ADB设备显示“offline”:驱动或授权问题
现象:adb devices显示ZY322KDLFJ offline。
原因:USB连接不稳定,或手机未授权调试。
解决:
- 拔插USB线,换接口;Windows用户可尝试安装Universal ADB Driver。
- 在手机“开发者选项”里,关闭再重新开启“USB调试”。
5.3 模型返回乱码或空动作:服务端配置不匹配
现象:日志显示Model response: ???或actions: []。
原因:vLLM启动时--max-model-len设置过小(低于2048),或--dtype未设为auto导致精度丢失。
解决:
# 推荐vLLM启动参数(RTX 4090实测) python -m vllm.entrypoints.api_server \ --model zai-org/autoglm-phone-9b \ --tensor-parallel-size 1 \ --max-model-len 4096 \ --dtype auto \ --host 0.0.0.0 \ --port 88005.4 关注按钮点不动:坐标偏移或UI变化
现象:AI识别出“关注”按钮,但点击后无反应。
原因:抖音等App会动态调整UI,截图坐标与实际点击位置有偏差。
解决:
- 在
main.py中临时添加--debug-screenshot参数,它会保存每次截图到./debug/,对比查看坐标是否准确。 - 更稳健的做法:启用
--use-ocr-fallback,当视觉定位失败时,自动用OCR识别“关注”文字并点击中心。
6. 总结:你刚刚掌握了一种新的交互范式
回顾整个过程,我们没有写一行Android代码,没碰过Java或Kotlin,甚至没打开过Android Studio。仅仅通过几条命令、一次USB连接、一个自然语言句子,就让手机完成了原本需要手动操作5步的任务。
Open-AutoGLM的价值,远不止于“自动关注博主”。它代表了一种更自然的人机交互范式:你不再需要学习App的操作逻辑,只需说出需求;AI也不再是被动回答问题的聊天机器人,而是能主动感知环境、规划路径、执行动作的具身智能体。
从技术角度看,它把三个硬骨头啃了下来:
- 多模态对齐:让语言模型真正“看懂”手机屏幕,而非仅识别文字;
- 动作泛化:同一套模型,能适配抖音、小红书、淘宝等不同App的UI;
- 安全可控:在自动化与人工干预间找到平衡点,既高效又不失掌控感。
下一步,你可以尝试更复杂的指令:“在美团上找离我最近的川菜馆,打电话预约今晚7点两人位,并把电话号码发到微信我的文件传输助手”。只要服务端模型足够强,Open-AutoGLM就能把它拆解成截图分析、地图定位、拨号、微信发送等一系列原子动作。
技术终将回归人的需求。而今天,你已经站在了这个新世界的入口。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。