AutoGLM-Phone指令示例库:10个高频场景代码实例
1. 引言
1.1 Open-AutoGLM 框架概述
Open-AutoGLM 是由智谱开源的手机端 AI Agent 框架,旨在通过多模态理解与自动化操作技术,实现自然语言驱动的智能设备控制。该框架结合视觉语言模型(VLM)与 Android Debug Bridge(ADB),使用户能够以自然语言指令操控安卓设备,如“打开小红书搜索美食”,系统即可自动解析意图、识别界面元素并执行点击、滑动、输入等操作。
AutoGLM-Phone 作为其核心实现之一,具备强大的屏幕感知能力与任务规划逻辑。它不仅能理解当前 UI 状态,还能动态生成操作路径,完成复杂交互流程。同时,系统内置安全机制,在涉及敏感操作(如支付、登录)时支持人工接管,并提供远程 ADB 调试功能,便于开发者在无物理连接的情况下进行调试和部署。
1.2 应用价值与典型场景
该框架适用于自动化测试、无障碍辅助、数字助理、远程运维等多个领域。本文将围绕10 个高频使用场景,提供可直接运行的代码示例与详细解析,帮助开发者快速上手并集成到实际项目中。
2. 环境准备与连接配置
2.1 硬件与软件要求
为确保 AutoGLM-Phone 正常运行,请确认以下环境已准备就绪:
- 操作系统:Windows 或 macOS
- Python 版本:建议 Python 3.10+
- 安卓设备:Android 7.0 及以上版本的真机或模拟器
- ADB 工具:用于设备通信与控制
ADB 安装与配置
Windows 用户:
- 下载 Android SDK Platform Tools 并解压。
- 打开
sysdm.cpl→ 高级 → 环境变量 → 在系统变量Path中添加 ADB 解压路径。 - 命令行执行
adb version验证是否安装成功。
macOS 用户:
# 假设 platform-tools 解压至 Downloads 目录 export PATH=${PATH}:~/Downloads/platform-tools可将上述命令写入.zshrc或.bash_profile实现永久生效。
2.2 手机端设置
- 开启开发者模式:进入“设置” → “关于手机” → 连续点击“版本号”7次。
- 启用 USB 调试:返回“设置” → “开发者选项” → 开启“USB 调试”。
- 安装 ADB Keyboard:
- 下载并安装 ADB Keyboard APK。
- 进入“语言与输入法”设置,将默认输入法切换为 ADB Keyboard,以便 AI 控制文本输入。
3. 控制端部署与设备连接
3.1 克隆与安装 Open-AutoGLM
在本地电脑执行以下命令:
# 克隆仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 安装依赖 pip install -r requirements.txt pip install -e .3.2 设备连接方式
USB 连接
确保手机通过 USB 线连接电脑后,执行:
adb devices输出应包含设备 ID 和device状态,表示连接正常。
WiFi 远程连接
若需无线控制,先通过 USB 启用 TCP/IP 模式:
adb tcpip 5555断开 USB 后,使用设备 IP 地址连接:
adb connect 192.168.x.x:5555提示:可通过
adb shell ifconfig wlan0或路由器管理界面获取设备 IP。
4. 核心 API 与连接管理
4.1 使用 Python API 管理连接
除了命令行调用,开发者可通过 Python 脚本实现更灵活的控制逻辑。
from phone_agent.adb import ADBConnection, list_devices # 创建 ADB 连接管理器 conn = ADBConnection() # 连接远程设备 success, message = conn.connect("192.168.1.100:5555") print(f"连接状态: {message}") # 列出所有已连接设备 devices = list_devices() for device in devices: print(f"{device.device_id} - {device.connection_type.value}") # 启用 TCP/IP 模式(适用于后续无线连接) success, message = conn.enable_tcpip(5555) if success: ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开指定设备 conn.disconnect("192.168.1.100:5555")此脚本可用于自动化连接检测、设备发现与网络切换,适合构建长期运行的服务。
5. 10 个高频场景代码实例
5.1 打开应用并搜索内容
场景描述:打开抖音,搜索指定账号并关注。
import subprocess command = [ "python", "main.py", "--device-id", "192.168.1.100:5555", "--base-url", "http://<server-ip>:8800/v1", "--model", "autoglm-phone-9b", "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!" ] subprocess.run(command)说明:AI 将自动识别“搜索框”、“关注按钮”等 UI 元素并完成全流程操作。
5.2 自动填写表单信息
场景描述:在网页或 App 中自动填写用户名和密码。
instruction = ( "打开浏览器访问 https://example.com/login," "输入用户名 'testuser' 和密码 'pass123',然后点击登录按钮" ) command = [ "python", "main.py", "--device-id", "emulator-5554", "--base-url", "http://localhost:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command)注意:需确保 ADB Keyboard 已正确设置,否则无法输入文本。
5.3 滑动浏览信息流
场景描述:在小红书首页向下滚动浏览推荐笔记。
instruction = "打开小红书,向下滑动刷新首页内容,持续滑动 5 次" command = [ "python", "main.py", "--device-id", "192.168.1.100:5555", "--base-url", "http://<server-ip>:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command)优势:模型能识别“加载更多”提示,避免无效滑动。
5.4 处理弹窗与权限请求
场景描述:自动处理首次启动 App 时的权限申请弹窗。
instruction = "打开高德地图,遇到任何权限请求都点击允许" command = [ "python", "main.py", "--device-id", "emulator-5554", "--base-url", "http://localhost:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command)原理:模型通过图像识别判断弹窗类型,并选择“允许”或“始终允许”按钮。
5.5 执行定时任务
场景描述:每天上午 9 点自动打卡企业微信。
import schedule import time def daily_check_in(): instruction = "打开企业微信,进入工作台,点击‘打卡’按钮" command = [ "python", "main.py", "--device-id", "192.168.1.100:5555", "--base-url", "http://<server-ip>:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command) # 设置每日定时任务 schedule.every().day.at("09:00").do(daily_check_in) while True: schedule.run_pending() time.sleep(60)适用:自动化办公、健康上报、签到类任务。
5.6 截图分析与反馈上报
场景描述:截图当前页面,识别错误提示并上报。
instruction = ( "截取当前屏幕,如果出现‘网络异常’或‘加载失败’字样," "则截图保存并发送给邮箱 report@example.com" ) command = [ "python", "main.py", "--device-id", "192.168.1.100:5555", "--base-url", "http://<server-ip>:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command)扩展:可结合 OCR 与邮件 API 实现全自动监控告警。
5.7 多步骤购物操作
场景描述:在京东选购商品并加入购物车。
instruction = ( "打开京东 App,搜索‘无线蓝牙耳机’," "选择价格低于 200 元的商品,进入详情页,点击‘加入购物车’" ) command = [ "python", "main.py", "--device-id", "emulator-5554", "--base-url", "http://localhost:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command)挑战:需理解价格标签、筛选条件与按钮语义。
5.8 社交平台发布动态
场景描述:在微博发布一条带图片的动态。
instruction = ( "打开微博,点击发布按钮,从相册选择一张照片," "输入文字‘今日好天气!’,然后点击发布" ) command = [ "python", "main.py", "--device-id", "192.168.1.100:5555", "--base-url", "http://<server-ip>:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command)关键点:模型需识别“从相册选择”、“添加图片”等控件。
5.9 自动回复消息
场景描述:在微信收到特定关键词时自动回复。
import time def monitor_and_reply(): while True: instruction = ( "检查微信最新消息,如果有来自‘老板’的消息包含‘下班前’," "则回复‘好的,马上处理’" ) command = [ "python", "main.py", "--device-id", "192.168.1.100:5555", "--base-url", "http://<server-ip>:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command) time.sleep(30) # 每 30 秒检查一次 monitor_and_reply()注意:涉及隐私操作需谨慎,建议开启人工确认机制。
5.10 登录验证码场景人工接管
场景描述:遇到图形验证码时暂停 AI,等待人工输入。
instruction = ( "打开某银行 App 并尝试登录," "如果出现验证码输入框,则停止操作并通知用户手动完成" ) command = [ "python", "main.py", "--device-id", "192.168.1.100:5555", "--base-url", "http://<server-ip>:8800/v1", "--model", "autoglm-phone-9b", instruction ] subprocess.run(command)机制:系统内置敏感操作拦截,可在配置文件中定义触发规则。
6. 常见问题与排查建议
6.1 连接类问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
adb devices无设备显示 | USB 调试未开启 | 检查开发者选项 |
adb connect失败 | 防火墙阻断或 IP 错误 | 检查网络连通性与端口开放 |
| ADB 频繁掉线 | WiFi 不稳定 | 改用 USB 连接或优化网络环境 |
6.2 模型与执行问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 指令无响应或乱码 | vLLM 参数不匹配 | 检查max-model-len与显存配置 |
| 操作失败或误触 | 屏幕分辨率适配不佳 | 提供更高分辨率训练数据 |
| 输入法无法输入 | ADB Keyboard 未激活 | 检查输入法设置并重启服务 |
7. 总结
7.1 技术价值回顾
AutoGLM-Phone 通过融合视觉语言模型与 ADB 自动化技术,实现了真正意义上的“自然语言操控手机”。其核心优势在于:
- 多模态理解:结合图像与文本,精准识别 UI 元素。
- 零编码操作:用户无需编写脚本,仅用自然语言即可驱动设备。
- 安全可控:支持人工接管与敏感操作确认,保障使用安全。
- 远程调试:基于 WiFi 的 ADB 连接,提升开发灵活性。
7.2 最佳实践建议
- 优先使用 USB 连接进行调试,确保稳定性;
- 在复杂任务中分步验证,避免一次性指令过长导致误解;
- 定期更新模型权重与框架版本,获取最新功能与修复;
- 对涉及隐私的操作启用确认机制,防止误操作风险。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。