news 2026/3/27 15:21:45

Open-AutoGLM实战教程:Python API远程调用AI代理详细步骤

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Open-AutoGLM实战教程:Python API远程调用AI代理详细步骤

Open-AutoGLM实战教程:Python API远程调用AI代理详细步骤

1. 什么是Open-AutoGLM?手机端AI Agent的全新打开方式

Open-AutoGLM 是智谱开源的一套面向移动端的 AI Agent 框架,专为在真实手机设备上运行智能助理任务而设计。它不是简单的文本模型封装,而是一个融合视觉理解、意图解析、动作规划与设备操控的完整闭环系统。

你可能用过各种大模型聊天工具,但它们大多停留在“说”的层面;而 Open-AutoGLM 的核心价值在于——它能真正“做”事。比如你对它说一句:“帮我把微信里昨天收到的那张发票截图发到邮箱”,它就能自动打开微信、定位聊天记录、长按识别图片、复制文字、打开邮箱 App、粘贴内容并发送。整个过程无需你点一下屏幕,也不需要写一行自动化脚本。

这个能力背后,是 AutoGLM-Phone 框架的多模态协同:它通过摄像头或屏幕截图实时感知当前界面(视觉输入),结合自然语言指令(文本输入),用视觉语言模型理解“这是什么页面”“按钮在哪”“当前状态如何”,再用推理模型规划“下一步该点哪、滑哪里、输什么”,最后通过 ADB(Android Debug Bridge)精准执行点击、滑动、输入等操作。

更关键的是,它支持真机远程控制——你不用把手机插在本地电脑上,只要手机和服务器在同一局域网,甚至通过公网连接,就能让远在千里之外的 AI 为你操作手机。这为测试、教学、无障碍辅助、批量设备管理等场景打开了实实在在的可能性。

2. 环境准备:从零搭建本地控制端

要让 Open-AutoGLM 在你的电脑上跑起来,不需要高性能显卡,也不需要复杂编译。整个控制端完全基于 Python,轻量、干净、开箱即用。我们分三步走:装好 ADB、配好手机、拉下代码。

2.1 安装并配置ADB工具

ADB 是 Android 系统的调试桥接工具,也是 Open-AutoGLM 控制手机的“手”。无论你用 Windows 还是 macOS,都需要先让它在命令行里随时可用。

Windows 用户

  1. 去 Android SDK Platform-Tools 官网 下载最新版 ZIP 包;
  2. 解压到一个固定路径,比如C:\adb
  3. Win + R输入sysdm.cpl→ “高级”选项卡 → “环境变量” → 在“系统变量”中找到Path→ 点击“编辑” → “新建” → 粘贴你解压的路径(如C:\adb);
  4. 打开新终端窗口,输入adb version,看到版本号就说明成功了。

macOS 用户

  1. 同样下载 ZIP 包,解压到~/Downloads/platform-tools(或其他你喜欢的位置);
  2. 打开 Terminal,运行以下命令(只需执行一次):
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc
  1. 输入adb version验证是否生效。

小提示:如果你用的是 M 系列 Mac,下载时注意选带arm64标识的版本,避免兼容问题。

2.2 手机端设置:三步打开“被操控权限”

手机不是插上线就能被控制的,它得先“同意”。这个过程只需要三步,5 分钟搞定:

  1. 开启开发者模式:进入「设置」→「关于手机」→ 连续点击「版本号」7 次,直到弹出“您现在处于开发者模式”的提示;
  2. 启用 USB 调试:返回「设置」→「系统」→「开发者选项」→ 找到并开启「USB 调试」;
  3. 安装 ADB Keyboard(关键!)
    • 去 GitHub 搜索adb-keyboard,下载最新 APK(如adb-keyboard-v1.0.0.apk);
    • 用文件管理器安装;
    • 进入「设置」→「语言与输入法」→「虚拟键盘」→ 把「ADB Keyboard」设为默认输入法。

    为什么必须装这个?因为 Open-AutoGLM 有时需要向 App 输入文字(比如搜索框),而标准输入法会弹出软键盘遮挡界面。ADB Keyboard 是纯后台输入,不干扰 UI,是稳定自动化的基石。

2.3 克隆并安装控制端代码

现在本地环境和手机都准备好了,我们来部署真正的“指挥中心”:

# 1. 克隆官方仓库(推荐使用 HTTPS) 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 .

这一步完成后,你的电脑就拥有了完整的控制能力:连接设备、截图、识别界面、发送指令、读取反馈——全部封装在phone_agent这个 Python 包里,后续所有操作都围绕它展开。

3. 设备连接:USB 与 WiFi 两种方式实测对比

Open-AutoGLM 支持两种连接方式:传统 USB 直连,以及更灵活的 WiFi 远程连接。我们分别说明怎么用、有什么区别、什么场景该选哪个。

3.1 USB 连接:最稳、最快、新手首选

这是最简单可靠的入门方式。只需一根数据线,手机和电脑物理相连:

# 查看是否识别到设备 adb devices

正常输出类似:

List of devices attached ZY322FDQJL device

其中ZY322FDQJL就是你的设备 ID,后面启动代理时要用到。如果显示unauthorized,请在手机上弹出的授权框里点“允许”。

优势:延迟低(<100ms)、稳定性高、无需网络配置
❌ 局限:必须插线、无法远程、多设备管理稍麻烦

3.2 WiFi 连接:真·远程操控,开发测试利器

当你想把手机放在桌上不动,或者需要批量控制几台设备,WiFi 方式就派上大用场了。它分两步:先用 USB 开启 TCP/IP 模式,再断开 USB,用 IP 连接。

# 第一步:用 USB 连接时,开启设备的 TCP/IP 服务(端口 5555) adb tcpip 5555 # 第二步:拔掉 USB 线,确保手机和电脑在同一 WiFi 下 # 查看手机 IP(可在「设置」→「关于手机」→「状态信息」里找,或用 adb shell ip addr) adb connect 192.168.1.100:5555

如果看到connected to 192.168.1.100:5555,就成功了。之后adb devices会显示:

192.168.1.100:5555 device

优势:摆脱线缆束缚、支持多设备并行、方便 CI/CD 集成、适合长期值守
注意:首次必须用 USB 开启 tcpip;WiFi 不稳定时可能掉线;部分企业网络会屏蔽 5555 端口

实测小技巧:用adb shell ip addr | grep "inet "快速查手机 IP;如果连不上,试试adb kill-server && adb start-server重启服务。

4. Python API 调用详解:不只是命令行,更是可编程的 AI 助理

Open-AutoGLM 不仅提供开箱即用的命令行工具,更把所有能力封装成清晰、简洁的 Python API。这意味着你可以把它嵌入自己的项目、Web 后端、自动化流水线,甚至做成一个带 UI 的桌面应用。

我们以phone_agent.adb模块为核心,逐行拆解常用操作。

4.1 基础连接管理:像操作数据库一样管理设备

from phone_agent.adb import ADBConnection, list_devices # 创建全局连接管理器 conn = ADBConnection() # 连接指定设备(支持 IP:port 或 device_id) success, message = conn.connect("192.168.1.100:5555") print(f"连接状态: {message}") # 成功时输出 "Connected successfully" # 列出所有已连接设备(USB/WiFi 混合显示) devices = list_devices() for device in devices: print(f"{device.device_id} - {device.connection_type.value}") # 输出示例:192.168.1.100:5555 - wifi / ZY322FDQJL - usb # 断开连接 conn.disconnect("192.168.1.100:5555")

这个ADBConnection类就像一个“设备路由器”,统一处理不同连接类型的初始化、心跳保活、异常重连。你不需要关心底层是 USB 还是 WiFi,API 层完全一致。

4.2 截图与屏幕理解:让 AI 看懂你正在看什么

所有智能操作的前提,是 AI 能准确理解当前屏幕。Open-AutoGLM 提供了便捷的截图接口,并自动适配不同分辨率:

from phone_agent.adb import ADBConnection conn = ADBConnection() conn.connect("192.168.1.100:5555") # 截取当前屏幕,保存为 PNG 并返回字节流(可用于上传给 VLM) screenshot_bytes = conn.screenshot() # 或直接保存到本地文件 with open("screen.png", "wb") as f: f.write(screenshot_bytes) # 获取设备基本信息(用于适配模型输入尺寸) info = conn.get_device_info() print(f"分辨率: {info.width}x{info.height}, DPI: {info.dpi}")

实际项目中,你通常会把screenshot_bytes和用户指令一起发给云端的 AutoGLM-Phone 模型,由它完成“看图说话+动作规划”的全过程。

4.3 远程指令执行:把自然语言变成真实操作

这才是最酷的部分——你写的每一行 Python,都在驱动真实的手机动作:

from phone_agent.adb import ADBConnection conn = ADBConnection() conn.connect("192.168.1.100:5555") # 1. 模拟点击坐标(x, y),单位为像素 conn.tap(500, 1200) # 点击屏幕中部偏下位置 # 2. 模拟滑动(起点→终点,带持续时间) conn.swipe(500, 1500, 500, 800, duration_ms=300) # 从下往上滑 # 3. 输入文字(自动切换到 ADB Keyboard) conn.input_text("小红书美食攻略") # 4. 按下返回键 conn.press_back() # 5. 启动指定 App(通过包名) conn.launch_app("com.xingin.xhs") # 小红书包名

这些方法全部基于 ADB shell 命令封装,但比直接调os.system("adb shell input tap ...")更安全、更易错、更易维护。更重要的是,它们可以和你的业务逻辑无缝组合——比如“当检测到支付成功页面时,自动截图并发送邮件”。

5. 启动 AI 代理:命令行快速验证 vs Python 深度集成

现在硬件、环境、API 全部就绪,是时候让 AI 真正接管手机了。我们提供两种启动方式,对应不同需求。

5.1 命令行一键运行:5 秒验证效果

这是最快看到成果的方式。回到你克隆的Open-AutoGLM目录,执行:

python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://192.168.1.200:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书搜索美食"

参数说明:

  • --device-id:你的手机设备 ID 或 WiFi 地址(用adb devices查);
  • --base-url:指向你部署好的云端模型服务(vLLM 或 FastChat),格式为http://IP:PORT/v1
  • --model:模型名称,需和服务端注册名一致;
  • 最后字符串:任意自然语言指令,支持中文。

你会看到终端实时打印:

  • 当前界面截图分析结果
  • AI 解析出的意图(如“用户想在小红书 App 中搜索关键词‘美食’”)
  • 规划的动作序列(“1. 启动小红书;2. 点击搜索框;3. 输入‘美食’;4. 点击搜索按钮”)
  • 每一步执行的日志(“tap at (320, 180)”)

适合:快速验证、演示汇报、日常调试
❌ 不适合:嵌入系统、批量任务、需要自定义流程逻辑

5.2 Python 深度集成:构建你自己的 AI 手机工作流

如果你要做一个“每日自动整理微信收藏”的工具,或者“监控电商价格变动并截图告警”的系统,就需要用 Python 把整个链路串起来:

from phone_agent.adb import ADBConnection import requests import time # 1. 连接设备 conn = ADBConnection() conn.connect("192.168.1.100:5555") # 2. 截图并发送给云端模型 screenshot = conn.screenshot() response = requests.post( "http://192.168.1.200:8800/v1/chat/completions", json={ "model": "autoglm-phone-9b", "messages": [ {"role": "user", "content": [ {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{base64.b64encode(screenshot).decode()}"}}, {"type": "text", "text": "请帮我打开微信,进入‘文件传输助手’,查找今天收到的 PDF 文件并转发给张三"} ]} ] } ) # 3. 解析模型返回的动作指令(简化示意) actions = response.json()["choices"][0]["message"]["content"] for action in actions.split("\n"): if action.startswith("tap "): x, y = map(int, action.split()[1:]) conn.tap(x, y) time.sleep(1) elif action.startswith("input "): text = action.split(" ", 1)[1] conn.input_text(text) time.sleep(0.5)

这个例子展示了真正的工程化思路:截图 → 上传 → 模型推理 → 解析结构化动作 → 执行。每一步都可控、可日志、可重试、可监控。

6. 常见问题与避坑指南:少走三天弯路

在实际部署中,90% 的问题都集中在连接、权限和配置三类。以下是高频问题的直给解决方案。

6.1 ADB 连接失败:设备不显示、unauthorized、offline

现象原因解决方案
adb devices无输出USB 调试未开启,或 USB 线不支持数据传输换根线,检查手机是否弹出“允许 USB 调试”弹窗并勾选“始终允许”
显示unauthorized手机未授权电脑拔插 USB,重新弹窗授权;或adb kill-server && adb start-server
显示offlineADB 服务异常或设备休眠adb reconnect;或重启手机 ADB:adb shell stop && adb shell start

6.2 模型无响应或乱码:服务端配置陷阱

  • 现象main.py卡住,或返回一堆乱码、空 JSON
  • 原因:vLLM 启动时--max-model-len设置过小(如 2048),而 AutoGLM-Phone 的上下文很长;或--gpu-memory-utilization过高导致 OOM
  • 解决:启动 vLLM 时务必加参数:
    python -m vllm.entrypoints.api_server \ --model zai-org/autoglm-phone-9b \ --tensor-parallel-size 1 \ --max-model-len 8192 \ --gpu-memory-utilization 0.9 \ --port 8800

6.3 操作失败:点不到、输不出、App 打不开

  • 点不到:检查conn.get_device_info()返回的分辨率,确认你计算的坐标在屏幕范围内;部分全面屏手机有虚拟导航栏,y 坐标需减去导航栏高度(约 100px);
  • 输不出:确认 ADB Keyboard 已设为默认输入法;尝试conn.input_text("test")单独测试;
  • App 打不开:用adb shell pm list packages | grep keyword查包名,避免拼错;部分国产 ROM 需手动开启“允许后台启动”权限。

7. 总结:从命令行玩具到生产级 AI 手机助理

Open-AutoGLM 不只是一个炫技的 Demo,它是一套真正可落地的手机端 AI Agent 工程框架。通过这篇教程,你应该已经掌握了:

  • 如何在 Windows/macOS 上零门槛配置 ADB 与手机通信;
  • 如何用 USB 或 WiFi 两种方式稳定连接真机;
  • 如何用phone_agent.adb模块编写可复用、可测试的 Python 控制逻辑;
  • 如何将自然语言指令转化为真实屏幕操作,并与云端大模型协同;
  • 如何排查连接、模型、执行三大类典型问题。

它的价值不仅在于“让 AI 操作手机”,更在于提供了一种新的交互范式:你不再需要学习 App 的操作路径,只需说出目标,AI 就会理解、规划、执行、验证。这对老年人数字鸿沟、视障人士辅助、客服工单自动处理、APP 自动化测试等领域,都有直接的现实意义。

下一步,你可以尝试:

  • main.py改造成 Web API,用 Flask 暴露/control接口;
  • 结合 OCR 和语音识别,实现“拍图问问题+自动操作”闭环;
  • adb logcat抓取 App 日志,让 AI 根据错误信息自动修复操作流程。

技术没有边界,但落地需要脚手架。Open-AutoGLM,就是你跨出第一步最趁手的那把锤子。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 15:38:51

MinerU处理模糊PDF?图像增强与OCR联合优化实战案例

MinerU处理模糊PDF&#xff1f;图像增强与OCR联合优化实战案例 1. 为什么模糊PDF总让人头疼 你有没有遇到过这样的情况&#xff1a;一份重要的技术文档&#xff0c;扫描得像隔着毛玻璃看字&#xff0c;文字边缘发虚、表格线条断断续续、公式糊成一团墨点——用传统PDF提取工具…

作者头像 李华
网站建设 2026/3/27 5:01:45

ComfyUI-VideoHelperSuite技术指南:从基础应用到深度优化

ComfyUI-VideoHelperSuite技术指南&#xff1a;从基础应用到深度优化 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 一、基础认知&#xff1a;解析视频合成核心原…

作者头像 李华
网站建设 2026/3/26 16:50:27

开源Minecraft启动器全攻略:从新手到大师的模组管理工具

开源Minecraft启动器全攻略&#xff1a;从新手到大师的模组管理工具 【免费下载链接】PCL2-CE PCL2 社区版&#xff0c;可体验上游暂未合并的功能 项目地址: https://gitcode.com/gh_mirrors/pc/PCL2-CE Minecraft启动器是每位玩家的必备工具&#xff0c;而开源的PCL2-C…

作者头像 李华
网站建设 2026/3/27 14:59:44

内容采集工具:无水印资源获取的技术实现方案

内容采集工具&#xff1a;无水印资源获取的技术实现方案 【免费下载链接】XHS-Downloader 免费&#xff1b;轻量&#xff1b;开源&#xff0c;基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader 在数字内…

作者头像 李华
网站建设 2026/3/15 17:42:07

5个开源大模型镜像推荐:Qwen3-4B免配置部署教程

5个开源大模型镜像推荐&#xff1a;Qwen3-4B免配置部署教程 1. 为什么Qwen3-4B值得你立刻试试&#xff1f; 你有没有遇到过这样的情况&#xff1a;想快速验证一个大模型的想法&#xff0c;却卡在环境配置上——装CUDA版本不对、依赖包冲突、显存报错反复折腾两小时&#xff0…

作者头像 李华
网站建设 2026/3/27 16:09:38

设计标注效率优化:设计团队技术负责人的专业解决方案

设计标注效率优化&#xff1a;设计团队技术负责人的专业解决方案 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure 行业痛点分析 在当前设计协作流程中&#xff0c;设计标注环节普遍存在三个核心问题&#xff1a;首先是手…

作者头像 李华