只需一条指令:Open-AutoGLM自动完成多步手机任务
1. 这不是脚本,是真正能“看”会“动”的AI手机助理
你有没有过这样的时刻:
想在小红书搜“北京周末亲子游”,却卡在打开App、点搜索框、输关键词、点发送这一连串操作里;
想给刚加的微信好友发一句“我在楼下”,结果发现对方设置了朋友验证,得手动复制粘贴验证语;
想查高铁余票,但12306 App界面复杂,总在“出发地”“到达地”“日期”之间反复切换……
这些事,人做一次不难,做十次就烦,做一百次就想扔手机。而传统自动化工具——比如按键精灵、Auto.js脚本——只能机械点击固定坐标,换一台手机、升一个系统版本、甚至换个App图标位置,整个流程就崩了。
Open-AutoGLM不一样。它不靠坐标,靠“理解”。
它用视觉语言模型(VLM)实时分析你的手机屏幕截图,像人一样识别按钮文字、输入框位置、列表项状态;再结合大模型的推理能力,把一句自然语言指令(比如“登录微信并给张三发‘会议改到三点’”)拆解成可执行的动作序列:截图→识别微信图标→点击→等待启动→识别“登录”按钮→点击→识别手机号输入框→输入→识别验证码区域→暂停并提示人工输入→识别“发送”按钮→点击……
这不是预设路径的播放器,而是一个能边看边想、边想边做的AI代理。
它不需要你写一行代码,也不需要你记住任何控件ID——你只管说人话,剩下的,交给它。
2. 零显卡也能跑:API模式快速上手指南
很多人一听“AI Agent”就下意识想到本地部署、A100显卡、几十G显存……但Open-AutoGLM最实用的入门方式,恰恰是完全不用本地GPU的API调用模式。
智谱BigModel平台已开放autoglm-phone模型的API服务,新用户注册即送充足免费Token,实测完成一次完整任务(如打开美团搜火锅)仅消耗约800–1200 Token,日常体验毫无压力。
2.1 三步完成环境准备
第一步:获取API Key
访问智谱BigModel官网,注册账号 → 进入「API密钥管理」→ 创建新密钥 → 复制保存(务必记牢,页面关闭后无法再次查看)。第二步:配置ADB(只需5分钟)
ADB是连接电脑与安卓设备的桥梁。无需复杂配置:- 下载官方Platform Tools,解压到任意文件夹(如
C:\adb); - Windows用户:右键“此电脑”→“属性”→“高级系统设置”→“环境变量”→在“系统变量”中找到
Path→“编辑”→“新建”→填入ADB解压路径; - macOS用户:终端执行
export PATH=$PATH:~/Downloads/platform-tools(将路径替换为实际位置),并写入~/.zshrc持久生效; - 验证:打开命令行,输入
adb version,看到版本号即成功。
- 下载官方Platform Tools,解压到任意文件夹(如
第三步:手机端基础设置
手机设置中开启两项关键功能:- 开发者模式:进入「设置→关于手机→版本号」,连续点击7次,弹出“您现在处于开发者模式”提示;
- USB调试:返回「设置→开发者选项→USB调试」,开启开关;
(小提示:部分机型需重启后生效,若adb devices无响应,请先重启手机再试)
2.2 一键运行:从克隆到执行只需4条命令
# 1. 克隆项目(推荐使用conda或venv创建独立Python环境) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 安装依赖(自动处理ADB通信、图像处理等底层模块) pip install -r requirements.txt # 3. 使用智谱API运行(替换YOUR_API_KEY为真实密钥) python main.py \ --base-url https://open.bigmodel.cn/api/paas/v4 \ --model "autoglm-phone" \ --apikey "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ "打开高德地图,搜索‘南京夫子庙’,然后规划步行路线" # 4. 等待结果——AI将自动截图、分析、点击、输入、滚动,全程无需干预注意:Windows用户若运行
check_deployment_cn.py时遇到UnicodeDecodeError: 'gbk' codec can't decode byte...错误,只需打开该文件,将第22行左右的with open(args.messages_file) as f:修改为with open(args.messages_file, encoding='utf-8') as f:即可。这是Windows默认编码与项目UTF-8格式的兼容性问题,非模型缺陷。
3. 真实任务实测:一条指令如何驱动12个动作
我们以一条稍复杂的指令为例,全程记录Open-AutoGLM的实际行为链:
指令:“打开小红书,搜索‘上海咖啡探店’,进入第一个笔记,下滑阅读正文,截屏保存到相册”
系统实际执行步骤如下(由模型自动生成并验证):
3.1 动作分解:从意图到像素的精准映射
| 步骤 | 动作类型 | 目标控件/区域 | 判断依据 | 耗时 |
|---|---|---|---|---|
| 1 | 启动App | 小红书图标 | 屏幕底部Dock栏文字识别 | 1.2s |
| 2 | 点击搜索框 | 顶部放大镜图标 | VLM定位UI元素+文本匹配 | 0.8s |
| 3 | 输入文本 | 搜索输入框 | ADB Keyboard注入“上海咖啡探店” | 1.5s |
| 4 | 触发搜索 | “搜索”按钮 | 识别按钮文字+位置校验 | 0.6s |
| 5 | 定位首条笔记 | 第一个卡片标题 | 坐标排序+内容相关性打分 | 0.9s |
| 6 | 点击进入 | 笔记封面区域 | 区域中心点点击+防误触延迟 | 0.7s |
| 7 | 等待加载 | 页面加载指示器 | 检测进度条消失+文字渲染完成 | 2.3s |
| 8 | 下滑操作 | 屏幕中部向下滑动 | 滑动距离=屏幕高度×0.7,模拟手指惯性 | 1.1s |
| 9 | 再次下滑 | 同上 | 避免单次滑动不足,确保正文可见 | 1.0s |
| 10 | 截图指令 | 系统级截图命令 | adb shell screencap -p /sdcard/screenshot.png | 0.4s |
| 11 | 拉取图片 | 本地保存 | adb pull /sdcard/screenshot.png ./output/ | 0.5s |
| 12 | 清理临时文件 | 删除设备端截图 | adb shell rm /sdcard/screenshot.png | 0.3s |
全程耗时约12.3秒(含网络请求延迟),所有动作均基于实时截图分析,未依赖任何硬编码坐标。即使小红书更新了UI,只要文字和布局逻辑不变,Agent仍能准确识别。
3.2 效果对比:人工操作 vs AI代理
| 维度 | 人工操作 | Open-AutoGLM API模式 |
|---|---|---|
| 操作一致性 | 每次点击力度、位置、时机略有差异 | 每次执行像素级复现,误差<2px |
| 多任务容错 | 切换App时易误触其他应用 | 自动检测当前前台包名,拒绝跨App操作 |
| 长流程稳定性 | 连续10步操作后易因界面变化中断 | 每步前强制截图验证,失败则重试或报错 |
| 学习成本 | 零成本 | 首次配置约15分钟,后续指令即开即用 |
| 扩展性 | 新任务需重新录制脚本 | 同一模型支持无限新指令,无需训练 |
实测中,当指令变为“打开微信,找到‘技术茶话会’群,发送‘今天的分享资料已上传’并加一个鼓掌表情”,系统同样顺利完成——它能区分群聊列表中的文字、识别输入框状态、调用表情面板并精准点击,证明其对复杂交互场景的理解深度远超规则引擎。
4. 远程控制进阶:WiFi连接与真机调试实战
USB线虽稳定,但限制了使用场景:你想让AI帮你远程查看家里监控App的最新通知,或测试不同型号手机的兼容性,这时WiFi ADB就是必选项。
4.1 三步建立稳定WiFi连接
首次USB握手(仅需一次)
手机用USB线连接电脑 → 命令行执行:adb tcpip 5555设备将重启ADB守护进程,监听5555端口。
获取手机IP并连接
在手机「设置→Wi-Fi→当前网络详情」中查看IP(如192.168.3.102),然后执行:adb connect 192.168.3.102:5555成功后
adb devices将显示192.168.3.102:5555 device。拔掉USB线,验证连接
断开数据线 → 执行adb shell getprop ro.build.version.release,若返回Android版本号(如14),说明WiFi ADB已就绪。
实测建议:将手机与电脑置于同一局域网,关闭手机省电模式(防止ADB后台被杀),路由器频段优先选2.4GHz(穿墙强,延迟更稳)。
4.2 Python API灵活调用:不只是命令行
当你需要将Phone Agent集成进自己的工具链时,Open-AutoGLM提供了简洁的Python接口:
from phone_agent.adb import ADBConnection from phone_agent.agent import PhoneAgent # 1. 初始化ADB连接管理器 conn = ADBConnection() # 2. 连接远程设备(支持USB ID或WiFi地址) success, msg = conn.connect("192.168.3.102:5555") if not success: print(f"连接失败:{msg}") exit() # 3. 创建AI代理实例(指向智谱API) agent = PhoneAgent( base_url="https://open.bigmodel.cn/api/paas/v4", model="autoglm-phone", api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ) # 4. 执行任务(返回结构化结果) result = agent.run_task( device_id="192.168.3.102:5555", task="检查支付宝余额,并截图保存" ) print(f"任务状态:{result.status}") # success / failed print(f"执行步骤数:{len(result.steps)}") print(f"截图路径:{result.screenshot_path}")这段代码可嵌入自动化测试平台、家庭IoT中控,甚至作为客服机器人后台——当用户说“帮我看看快递到哪了”,系统自动调起菜鸟App完成查询并返回截图。
5. 安全机制与边界认知:AI代理的“刹车系统”
再强大的工具也需要安全护栏。Open-AutoGLM在设计上内置了三层防护,确保它聪明但不莽撞:
5.1 敏感操作主动拦截
模型会识别以下高风险动作并暂停执行,等待人工确认:
- 支付类操作:检测到“付款”、“支付”、“确认支付”、“输入密码”等文字或支付键盘弹出;
- 隐私授权:识别“允许访问相册”、“获取位置信息”、“读取通讯录”等系统级权限弹窗;
- 账户操作:检测“注销账号”、“删除聊天记录”、“清除全部数据”等不可逆指令。
此时终端会输出:检测到敏感操作【支付确认】,已暂停执行。请手动完成操作后输入 'continue' 继续,或 'abort' 中止任务。
你只需敲回车,AI便接管后续流程。
5.2 人工接管无缝衔接
在验证码、滑块验证、人脸识别等AI尚难攻克的环节,系统提供两种接管方式:
- 命令行接管:当出现验证码图片时,终端自动显示Base64编码的截图,你可解码查看后手动输入;
- ADB Keyboard直输:通过
adb shell input text "123456"直接向当前焦点输入,绕过OCR识别瓶颈。
这并非能力缺陷,而是务实的设计哲学——AI负责80%的确定性工作,人类专注20%的关键决策。
5.3 不要期待它能做什么
坦诚说明当前能力边界,避免过度预期:
- ❌不支持iOS设备:ADB是Android专属协议,iPhone需越狱且无成熟方案;
- ❌不处理动态验证码:如短信验证码需人工查收后输入;
- ❌不保证100%成功率:极端情况(如App闪退、网络抖动、系统弹窗遮挡)可能中断,但会清晰返回错误原因;
- ❌不替代专业自动化测试:对于金融级App的合规性测试,仍需UiAutomator2等原生框架。
它的定位很清晰:面向普通用户的生产力增强工具,而非工业级RPA引擎。
6. 总结:让手机真正听懂你的话
回看开头那个问题:“打开小红书搜美食”——
过去,这句话需要你动手完成7步;
现在,它是一条可执行的、有语义的、带上下文的指令;
未来,它会成为手机操作系统的新一层交互范式:不再点击图标,而是说出需求。
Open-AutoGLM的价值,不在于它多快或多准,而在于它把“多模态理解+动作规划+设备控制”这一整套能力,封装成了一条命令、一个API、一次点击。
你不需要懂VLM原理,不必调参,不用部署模型——你只需要相信,当你说“把上周会议录音转成文字发到钉钉”,它真的会去做。
这或许就是AI Agent最迷人的地方:
它不炫技,只做事;
不替代人,只延伸人;
不追求全知全能,只专注把一件事,做得比人更稳、更勤、更不知疲倦。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。