Open-AutoGLM快速上手:Python API调用AI代理详细步骤
1. 什么是Open-AutoGLM?一个真正能“看懂手机屏幕”的AI助手
Open-AutoGLM 是智谱开源的轻量级手机端 AI Agent 框架,专为在真实安卓设备上运行智能任务而设计。它不是那种只能聊天、写诗的通用大模型,而是一个能“看见”你手机屏幕、“理解”当前界面、“动手”点击滑动的多模态智能体。
它的核心能力在于打通了“视觉感知—意图理解—动作规划—设备执行”这一整条链路。当你对它说“打开小红书搜美食”,它不会只返回一句文字描述,而是真的会:
- 截取当前手机屏幕画面;
- 用视觉语言模型识别出桌面上有没有“小红书”图标、当前是否在首页、搜索框在哪;
- 理解“搜美食”是点击搜索框→输入关键词→点击搜索按钮→浏览结果;
- 通过 ADB 自动完成所有点击、输入、滑动操作;
- 在遇到登录弹窗或图形验证码时,主动暂停并提示你人工介入。
这种“所见即所行”的能力,让 Open-AutoGLM 成为目前少有的、能在真机环境稳定落地的端侧 AI Agent 框架之一。它不依赖预设脚本,也不靠固定坐标点,而是靠模型实时理解界面语义,做出泛化性更强的操作决策。
2. 为什么需要 Phone Agent?从“手动操作”到“自然语言指挥”
Phone Agent 是基于 Open-AutoGLM 构建的完整可用系统,它把技术能力封装成一套开箱即用的控制流程。你可以把它理解成一个“手机上的 Siri + Shortcuts + Auto.js 的融合体”,但更智能、更鲁棒、也更开放。
它的价值不在于炫技,而在于解决三类真实痛点:
- 重复性操作太繁琐:比如每天要打开 5 个 App、刷新 3 个页面、截图发给同事——现在一句话就能搞定;
- 跨 App 流程难自动化:传统工具(如 Tasker)很难跨 App 理解上下文,而 Phone Agent 能识别微信里的订单号,自动跳转到淘宝查物流;
- 远程调试效率低:开发测试时频繁插拔 USB、反复安装 APK、手动点按复现问题——它支持 WiFi 远程连接,连上就能接管,连屏幕都能实时回传。
更重要的是,它内置了安全机制:所有涉及敏感操作(如删除短信、访问通讯录、支付确认)都会强制弹窗提醒;验证码、二次验证等无法自动识别的环节,会自动暂停并等待人工接管。这不是一个“黑盒执行器”,而是一个可信任、可干预、可审计的数字助手。
3. 客户端与真机连接:本地电脑如何成为“指挥中心”
服务端(云端模型)准备就绪后,你的本地电脑就是整个系统的“大脑中枢”。它负责采集屏幕、发送指令、接收反馈,并把自然语言翻译成一连串精准的 ADB 命令。这一步看似简单,实则决定后续所有操作能否跑通。
3.1 硬件与环境准备
你需要准备以下四样东西,缺一不可:
- 操作系统:Windows 10/11 或 macOS Monterey 及以上(Linux 同理,本文以 Win/macOS 为主);
- Python 环境:建议使用 Python 3.10+(避免 3.12 兼容性问题),推荐用 conda 或 pyenv 管理虚拟环境;
- 安卓设备:Android 7.0+ 真机(模拟器仅限调试,因缺少真实传感器和 UI 渲染差异,不推荐用于实际任务);
- ADB 工具:Android SDK Platform-Tools,这是整个控制链路的底层通信桥梁。
ADB 配置小贴士
Windows 用户:下载后解压,将platform-tools文件夹路径添加进系统环境变量Path,然后在命令行输入adb version,看到版本号即成功。
macOS 用户:在终端中执行export PATH=${PATH}:/your/path/to/platform-tools,建议将该行写入~/.zshrc,避免每次重启终端都要重输。
3.2 手机端设置:让手机“愿意被接管”
很多用户卡在这一步——不是代码问题,而是手机没“放行”。请严格按顺序操作:
- 开启开发者模式:进入「设置 → 关于手机」,连续点击「版本号」7 次,直到弹出“您已处于开发者模式”;
- 启用 USB 调试:返回「设置 → 系统 → 开发者选项」,找到并开启「USB 调试」;
- 安装 ADB Keyboard(关键!):
- 下载 ADB Keyboard 的最新 APK;
- 在手机上安装;
- 进入「设置 → 语言与输入法 → 当前键盘」,将默认输入法切换为「ADB Keyboard」;
- 为什么必须装这个?因为标准 Android 输入法无法通过 ADB 接收文本输入,ADB Keyboard 是唯一能实现“远程打字”的可靠方案。
完成这三步后,用 USB 数据线连接手机与电脑,在电脑终端执行adb devices,如果看到一串设备 ID 后面跟着device,说明物理链路已通。
4. 部署控制端代码:从克隆仓库到本地运行
Open-AutoGLM 的控制端代码完全开源,无需编译,纯 Python 实现。整个过程只需 3 分钟。
4.1 克隆与安装
打开终端(Windows 用户用 PowerShell 或 CMD,macOS 用 Terminal),依次执行:
# 1. 克隆官方仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 创建并激活虚拟环境(推荐) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装依赖(含核心库 phone_agent) pip install -r requirements.txt pip install -e .注意:pip install -e .是关键一步,它把项目以“可编辑模式”安装进 Python 环境,确保你能直接 importphone_agent模块,且后续修改代码无需重复安装。
4.2 设备连接方式详解
Open-AutoGLM 支持两种连接方式,各有利弊:
- USB 直连(推荐新手首选):延迟最低、稳定性最高、无需配置网络。执行
adb devices后,记下设备 ID(如ZY322KDL9J); - WiFi 远程连接(适合进阶用户):摆脱线缆束缚,支持局域网内任意设备接入。但需先用 USB 连接一次,执行:
adb tcpip 5555 # 切换设备为 TCP 模式 adb disconnect # 断开 USB adb connect 192.168.1.100:5555 # 替换为手机实际 IP
如何查手机 IP?进入「设置 → WLAN → 点击当前连接的 WiFi → 查看 IP 地址」。若显示为
169.254.x.x,说明未获取到局域网 IP,请检查路由器 DHCP 是否开启。
5. 启动 AI 代理:命令行与 Python API 双路径实践
一切就绪后,真正的“魔法时刻”来了。你可以选择最顺手的方式启动代理。
5.1 命令行一键运行(最快上手)
在Open-AutoGLM根目录下,执行:
python main.py \ --device-id ZY322KDL9J \ --base-url http://192.168.1.200:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明:
--device-id:你的设备 ID(USB)或 IP:端口(WiFi),必须准确;--base-url:指向你部署好的云服务地址(vLLM + OpenAI 兼容 API 层),格式必须带/v1;--model:指定模型名称,目前公开支持autoglm-phone-9b;- 最后字符串:就是你下达的自然语言指令,支持中文,越具体越好。
执行后,你会看到终端实时打印日志:
- “正在截屏…”
- “正在识别界面元素…”
- “规划动作:点击抖音图标”
- “执行点击 → 等待加载 → 输入搜索词 → 点击搜索 → 滑动查找目标账号 → 点击关注”
整个过程全自动,你只需看着手机屏幕一步步被操控即可。
5.2 Python API 编程调用(灵活可控)
如果你希望把 AI 代理集成进自己的脚本、做批量任务、或加入业务逻辑判断,直接调用phone_agent提供的 Python API 更合适。
下面是一段完整、可运行的示例代码,涵盖连接管理、设备枚举、网络切换、异常处理等核心能力:
from phone_agent.adb import ADBConnection, list_devices from phone_agent.agent import PhoneAgent import time # 1. 初始化 ADB 连接管理器 conn = ADBConnection() # 2. 连接设备(支持 USB 或 WiFi) success, message = conn.connect("ZY322KDL9J") # USB 设备 ID # success, message = conn.connect("192.168.1.100:5555") # WiFi 设备 print(f"连接状态: {message}") # 3. 列出所有已连接设备(可用于多设备管理) devices = list_devices() for device in devices: print(f" {device.device_id} - {device.connection_type.value}") # 4. (可选)为 USB 设备开启 WiFi 调试 if "ZY322KDL9J" in [d.device_id for d in devices]: success, msg = conn.enable_tcpip(5555) print(f"TCP/IP 启用: {msg}") ip = conn.get_device_ip() print(f"设备局域网 IP: {ip}") # 5. 初始化 AI 代理(需提前部署好服务端) agent = PhoneAgent( base_url="http://192.168.1.200:8800/v1", model_name="autoglm-phone-9b", device_id="ZY322KDL9J" ) # 6. 下达指令(支持阻塞式调用) try: result = agent.run("打开微博,搜索‘人工智能’,进入第一条热搜并截图保存") print(" 任务完成!最终状态:", result.status) print(" 执行摘要:", result.summary) except Exception as e: print("❌ 执行失败:", str(e)) # 7. 主动断开(良好习惯) conn.disconnect("ZY322KDL9J")这段代码展示了真实工程中常用的模式:
- 先连接 → 再确认设备状态 → 然后初始化代理 → 最后执行任务;
- 每一步都有返回值和错误提示,便于日志追踪与故障定位;
agent.run()返回结构化结果对象,包含status(success/failed/paused)、summary(简明执行摘要)、steps(详细动作序列),方便你做后续分析或上报。
6. 常见问题排查:让第一次运行就成功
即使严格按照文档操作,也可能遇到“看起来都对,但就是不动”的情况。以下是高频问题与直击要害的解决方案:
| 问题现象 | 根本原因 | 快速解决方法 |
|---|---|---|
adb devices显示unauthorized | 手机弹出“允许 USB 调试吗?”提示,但你没点“确定” | 拔掉 USB 重连,手机上务必勾选“始终允许”,再点确定 |
Connection refused(连接云服务失败) | 云服务器防火墙未开放端口,或反向代理配置错误 | 在服务器执行curl http://localhost:8800/v1/models,能返回 JSON 即服务正常;再检查云厂商安全组是否放行 8800 端口 |
| AI 一直“思考中”,无任何动作输出 | ADB 权限不足,或手机未启用“USB 调试(安全设置)” | 进入「开发者选项」,开启「USB 调试(安全设置)」;部分品牌还需开启「OEM 解锁」 |
| 截图黑屏 / 界面识别失败 | 手机开启了“隐私屏保”或“防截屏”策略(如银行类 App) | 临时关闭相关策略,或换用无障碍服务(需额外配置) |
| 输入中文乱码 / 打不出字 | 未安装或未启用 ADB Keyboard | 重新安装 APK → 设置里启用 → 确认默认输入法已切换 |
终极调试技巧:在执行
python main.py前,加一个-v参数开启详细日志:python main.py -v --device-id ... "你的指令"
日志会逐行打印“截图保存路径”、“OCR 识别文本”、“VLM 理解结果”、“生成动作”等,帮你精准定位卡点。
7. 总结:你已经掌握了手机 AI 自动化的第一把钥匙
到这里,你已经完成了从零开始部署 Open-AutoGLM 控制端的全部关键步骤:
- 理解了它不是“另一个大模型”,而是一个能“看、想、做”的端侧智能体;
- 成功配置了 ADB 环境,让电脑真正“握住”了手机;
- 用命令行跑通了第一条自然语言指令,亲眼见证了 AI 接管屏幕;
- 掌握了 Python API 的调用范式,具备了将其嵌入自有系统的工程能力;
- 学会了常见问题的归因思路,不再被报错信息吓退。
下一步,你可以尝试:
- 把指令换成“导出今天微信的所有未读文件”“自动整理相册里所有风景照”;
- 结合定时任务(cron / Windows Task Scheduler),让 AI 每天早上 8 点自动打卡、查天气、读新闻;
- 将
PhoneAgent封装成 Web API,用 Flask/FastAPI 暴露给前端调用,做一个可视化任务面板。
AI 自动化不是替代人,而是把人从机械劳动中解放出来,去专注真正需要创造力与判断力的事。而 Open-AutoGLM,正是这样一把趁手的工具。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。