news 2026/5/1 4:44:15

Open-AutoGLM部署实战:Windows/macOS双系统环境搭建教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Open-AutoGLM部署实战:Windows/macOS双系统环境搭建教程

Open-AutoGLM部署实战:Windows/macOS双系统环境搭建教程

Open-AutoGLM – 智谱开源的手机端AI Agent框架

AutoGLM-Phone 是一个基于视觉语言模型的 AI 手机智能助理框架。它能以多模态方式理解屏幕内容,并通过 ADB 自动操控设备。用户只需用自然语言下指令,如“打开小红书搜美食”,模型即可解析意图、理解界面并自动规划、执行操作流程,无需手动点击。

Phone Agent 是一个基于 AutoGLM 构建的手机端智能助理框架,它能够以多模态方式理解手机屏幕内容,并通过自动化操作帮助用户完成任务。系统通过 ADB(Android Debug Bridge)来控制设备,以视觉语言模型进行屏幕感知,再结合智能规划能力生成并执行操作流程。用户只需用自然语言描述需求,如“打开小红书搜索美食”,Phone Agent 即可自动解析意图、理解当前界面、规划下一步动作并完成整个流程。系统还内置敏感操作确认机制,并支持在登录或验证码场景下进行人工接管。同时,它提供远程 ADB 调试能力,可通过 WiFi 或网络连接设备,实现灵活的远程控制与开发。

1. 客户端与真机连接(本地电脑配置)

服务端准备就绪后,我们需要在本地电脑上配置控制端,通过 ADB 实现对安卓手机的远程操控,并调用云端部署的 AI 模型完成任务执行。整个过程不依赖手机内置应用,而是通过系统级调试接口实现精准控制。

本教程将带你从零开始,在 Windows 和 macOS 双系统环境下完成 Open-AutoGLM 的本地控制端部署,涵盖环境准备、ADB 配置、代码部署和实际运行全流程。

2. 硬件与软件环境准备

要顺利运行 Open-AutoGLM 控制端,需确保以下软硬件条件满足:

  • 操作系统:Windows 10/11 或 macOS(推荐 Intel/M1 Mac)
  • Python 版本:建议使用 Python 3.10 或更高版本
  • 安卓设备:Android 7.0 及以上版本的真实手机或模拟器
  • ADB 工具:用于设备通信的核心工具包

2.1 安装并配置 ADB

ADB(Android Debug Bridge)是连接电脑与安卓设备的关键桥梁。你需要先下载 Android SDK Platform Tools 并将其加入系统路径。

Windows 系统配置步骤:
  1. 访问 Android 开发者官网 下载platform-tools压缩包。
  2. 解压到任意目录,例如C:\platform-tools
  3. 按下Win + R,输入sysdm.cpl,打开“系统属性”。
  4. 进入“高级”选项卡 → “环境变量” → 在“系统变量”中找到Path,点击“编辑”。
  5. 添加新条目:C:\platform-tools(根据你的实际路径调整)。
  6. 打开命令提示符,输入:
    adb version
    若返回类似Android Debug Bridge version 1.xx.xx,说明配置成功。
macOS 系统配置方法:

macOS 用户可以直接在终端中临时添加路径,或永久写入 shell 配置文件。

# 假设 platform-tools 解压在 Downloads 目录下 export PATH=${PATH}:~/Downloads/platform-tools

你可以将这行命令添加到~/.zshrc~/.bash_profile中,使其开机自动生效:

echo 'export PATH=${PATH}:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc

验证方式同上,运行adb version查看输出。

提示:如果你使用 Homebrew,也可以直接安装:

brew install android-platform-tools

3. 手机端设置:开启调试权限

为了让电脑能够控制手机,必须启用开发者模式和 USB 调试功能。

3.1 开启开发者选项

  1. 打开手机“设置”应用。
  2. 进入“关于手机”。
  3. 连续点击“版本号”7 次,直到提示“您已进入开发者模式”。

3.2 启用 USB 调试

  1. 返回“设置”主菜单,进入“开发者选项”。
  2. 找到“USB 调试”并勾选启用。
  3. 当你首次通过 USB 连接电脑时,手机会弹出授权提示,请点击“允许”。

3.3 安装 ADB Keyboard(关键!)

由于 AI Agent 需要自动输入文字(如搜索关键词),而大多数输入法无法被 ADB 直接控制,因此需要安装专用的虚拟键盘。

  1. 下载 ADB Keyboard APK(GitHub 开源项目)。
  2. 将 APK 文件传输到手机并安装。
  3. 进入“设置”→“语言与输入法”→“默认键盘”或“当前输入法”。
  4. 切换为ADB Keyboard

注意:如果不设置此输入法,后续执行涉及文本输入的指令(如搜索、发消息)将失败。

4. 部署 Open-AutoGLM 控制端代码

现在我们开始在本地电脑部署控制端代码,它是连接设备与云端模型的中枢。

4.1 克隆项目仓库

打开终端或命令行工具,执行以下命令:

git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM

该项目包含完整的客户端逻辑、ADB 封装模块以及与 vLLM 兼容的 API 调用接口。

4.2 安装 Python 依赖

建议使用虚拟环境以避免依赖冲突:

python -m venv venv source venv/bin/activate # macOS/Linux # 或在 Windows 上: # venv\Scripts\activate

安装所需依赖:

pip install -r requirements.txt pip install -e .

其中-e .表示以可编辑模式安装当前包,便于后续调试修改。

5. 设备连接方式详解

Open-AutoGLM 支持两种设备连接方式:USB 有线连接和 WiFi 无线连接。推荐初学者先使用 USB 方式确保稳定性。

5.1 使用 USB 连接设备

  1. 使用数据线将手机连接至电脑。

  2. 手机弹出“允许 USB 调试?”对话框时,点击“允许”。

  3. 在终端运行:

    adb devices

    输出应类似:

    List of devices attached 1234567890abc device

    出现设备 ID 且状态为device,表示连接成功。

5.2 使用 WiFi 进行远程连接(更灵活)

WiFi 连接适合长期运行或远程调试场景,但首次需通过 USB 初始化。

步骤如下:
  1. 先用 USB 连接设备。

  2. 在终端执行:

    adb tcpip 5555

    这会启动 ADB 的 TCP/IP 监听模式,端口为 5555。

  3. 断开 USB 数据线。

  4. 获取手机 IP 地址(可在“设置”→“WLAN”中查看)。

  5. 执行连接命令:

    adb connect 192.168.x.x:5555

    替换192.168.x.x为你的手机局域网 IP。

  6. 再次运行adb devices,确认设备在线。

小技巧:若经常使用 WiFi 调试,可编写脚本自动获取 IP 并连接。

6. 启动 AI 代理并执行任务

一切准备就绪,现在可以启动 AI 代理,让它接管手机完成指定任务。

6.1 命令行方式运行任务

在项目根目录下执行:

python main.py \ --device-id <你的设备ID或IP:5555> \ --base-url http://<云服务器IP>:<映射端口>/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"

参数说明:

  • --device-id:来自adb devices的设备标识,如1234567890abc192.168.1.100:5555
  • --base-url:指向你部署的 vLLM 服务地址,格式为http://公网IP:端口/v1
  • --model:指定使用的模型名称,目前固定为autoglm-phone-9b
  • 最后的字符串:你要下达的自然语言指令

例如完整命令可能是:

python main.py \ --device-id 192.168.1.100:5555 \ --base-url http://47.98.123.45:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书搜索最近热门的露营装备"

执行后,你会看到 AI 开始分析屏幕截图、识别 UI 元素、生成操作序列,并逐步执行点击、滑动、输入等动作。

6.2 使用 Python API 编程调用

除了命令行,你还可以在自己的脚本中集成 Open-AutoGLM 的功能。

from phone_agent.adb import ADBConnection, list_devices # 创建 ADB 连接管理器 conn = ADBConnection() # 连接远程设备(WiFi) 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}") # (可选)为 USB 设备开启 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")

这个 API 接口非常适合嵌入到自动化测试平台、远程运维系统或个人数字助理中。

7. 常见问题与排查建议

在实际部署过程中,可能会遇到一些常见问题。以下是高频故障及解决方案。

7.1 ADB 连接失败或设备未识别

  • 现象adb devices无输出或显示unauthorized
  • 原因:未授权调试或驱动问题
  • 解决
    • 确保手机弹出授权框时点击“允许”
    • Windows 用户可尝试安装 Google USB Driver
    • 重启 ADB 服务:adb kill-server && adb start-server

7.2 连接被拒绝(Connection Refused)

  • 现象adb connect失败,提示“connection refused”
  • 原因:目标设备未开启 TCP/IP 模式或网络不通
  • 解决
    • 先用 USB 执行adb tcpip 5555
    • 确保电脑与手机在同一局域网
    • 检查防火墙是否阻止了 5555 端口

7.3 模型无响应或返回乱码

  • 现象:AI 不执行操作,或输出错误指令
  • 原因:vLLM 服务异常或参数不匹配
  • 解决
    • 检查云服务器上的 vLLM 是否正常运行
    • 确认--base-url地址正确且可访问(可用curl测试)
    • 核对模型最大上下文长度(max-model-len)是否足够(建议 ≥ 8192)
    • 查看日志是否有 OOM(显存不足)报错

7.4 输入中文失败

  • 现象:搜索框无法输入汉字
  • 原因:未正确切换 ADB Keyboard 或输入法未激活
  • 解决
    • 进入手机“语言与输入法”设置,确认 ADB Keyboard 已启用
    • 在运行前手动切换一次输入法
    • 可尝试发送测试指令:adb shell am broadcast -a ADB_INPUT_TEXT --es msg "测试"

获取更多AI镜像

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

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

Nintendo Switch全能更新助手:告别繁琐操作的一站式解决方案

Nintendo Switch全能更新助手&#xff1a;告别繁琐操作的一站式解决方案 【免费下载链接】aio-switch-updater Update your CFW, cheat codes, firmwares and more directly from your Nintendo Switch! 项目地址: https://gitcode.com/gh_mirrors/ai/aio-switch-updater …

作者头像 李华
网站建设 2026/4/23 15:24:50

Unity资产提取终极指南:快速掌握AssetRipper资源导出技巧

Unity资产提取终极指南&#xff1a;快速掌握AssetRipper资源导出技巧 【免费下载链接】AssetRipper GUI Application to work with engine assets, asset bundles, and serialized files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper 想要从Unity游戏…

作者头像 李华
网站建设 2026/5/1 4:41:45

ET游戏框架完全指南:如何用C同时开发客户端与服务端

ET游戏框架完全指南&#xff1a;如何用C#同时开发客户端与服务端 【免费下载链接】ET Unity3D 客户端和 C# 服务器框架。 项目地址: https://gitcode.com/GitHub_Trending/et/ET 还在为游戏开发中客户端与服务端的割裂而烦恼吗&#xff1f;ET框架为你带来全新的开发体验…

作者头像 李华
网站建设 2026/4/26 10:31:54

5分钟快速搞定Font Awesome图标字体子集化:终极轻量化指南

5分钟快速搞定Font Awesome图标字体子集化&#xff1a;终极轻量化指南 【免费下载链接】Font-Awesome The iconic SVG, font, and CSS toolkit 项目地址: https://gitcode.com/GitHub_Trending/fo/Font-Awesome 还在为加载整个Font Awesome图标库而烦恼吗&#xff1f;明…

作者头像 李华
网站建设 2026/4/24 10:07:16

开源库存管理系统InvenTree:如何解决企业物料追踪的核心难题

开源库存管理系统InvenTree&#xff1a;如何解决企业物料追踪的核心难题 【免费下载链接】InvenTree Open Source Inventory Management System 项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree 面对物料管理混乱、库存数据不准确、供应链信息孤岛等痛点&a…

作者头像 李华