台南市网站建设_网站建设公司_Windows Server_seo优化
2026/1/21 13:30:39 网站建设 项目流程

Open-AutoGLM入门必看:手机AI Agent三大核心组件解析

Open-AutoGLM – 智谱开源的手机端AI Agent框架。它基于视觉语言模型与自动化控制技术,让普通用户也能轻松实现“动口不动手”的智能操作体验。无论是日常使用还是开发调试,这一框架都展现出极强的实用性与扩展性。

AutoGLM-Phone 是一个基于视觉语言模型的 AI 手机智能助理框架。它能以多模态方式理解屏幕内容,并通过 ADB 自动操控设备。用户只需用自然语言下指令,如“打开小红书搜美食”,模型即可解析意图、理解界面并自动规划、执行操作流程,无需手动点击。而 Phone Agent 正是构建于 AutoGLM 之上的完整实现方案,集成了感知、决策与执行三大能力,真正实现了从“说”到“做”的闭环。

本文将深入拆解 Open-AutoGLM 的三大核心组件——视觉感知层、任务规划引擎和设备控制模块,带你从零开始理解其工作原理,并完成本地部署与真机连接,快速上手这个强大的手机AI助手。

1. 核心架构解析:三大组件如何协同工作

1.1 视觉感知层:让AI“看懂”手机屏幕

传统自动化脚本依赖固定控件ID或坐标点,一旦界面变化就容易失效。而 Open-AutoGLM 的核心突破在于引入了视觉语言模型(VLM)作为感知中枢

每次执行任务前,系统会通过 ADB 截图获取当前手机屏幕画面,然后将图像与用户的自然语言指令一起输入给 VLM 模型。模型不仅能识别出按钮、输入框、列表等 UI 元素,还能结合上下文理解它们的功能。比如,在设置页面中,“返回”箭头和“保存”按钮的位置可能每次都不一样,但模型能根据语义判断哪个是可点击的操作项。

这种“以图识意”的方式极大提升了鲁棒性。即使 App 更新导致布局变动,只要视觉元素存在,AI 就能继续工作。这也是为什么你可以对它说“找到那个红色的购物车图标并点击”,而不需要提前知道它的位置或 ID。

1.2 任务规划引擎:从一句话生成可执行步骤

光看得懂还不够,AI 还得知道“下一步该做什么”。这就是任务规划引擎的作用——把一句模糊的指令拆解成一系列具体的、有序的操作动作。

例如,当你说:“打开抖音搜索抖音号为 dycwo11nt61d 的博主并关注他”,系统并不会直接去点“关注”按钮。它会先推理出完整的路径:

  1. 启动抖音 App;
  2. 定位首页的搜索框并点击;
  3. 输入目标账号名;
  4. 在结果页中找到对应用户;
  5. 点击进入主页;
  6. 判断是否已关注,若未关注则点击“+关注”。

每一步都会再次调用视觉模型进行状态确认,确保操作准确无误。整个过程类似于人类在执行复杂任务时的“思考-观察-行动”循环。

更聪明的是,系统还具备一定的容错能力。如果某一步失败(比如网络延迟导致页面未加载),它会尝试重试或调整策略,而不是直接崩溃退出。

1.3 设备控制模块:用ADB实现精准操作

再智能的决策也需要落地执行。Open-AutoGLM 使用ADB(Android Debug Bridge)作为与手机通信的桥梁,完成所有实际操作。

ADB 是 Android 开发者常用的调试工具,支持安装应用、发送按键事件、模拟触摸、截图等操作。Phone Agent 正是利用这些功能,将 AI 规划的动作转化为真实的设备行为:

  • 点击某个区域 →adb shell input tap x y
  • 输入文字 →adb shell input text "xxx"
  • 滑动屏幕 →adb shell input swipe x1 y1 x2 y2

此外,项目中集成的 ADB Keyboard 工具解决了远程输入难题。由于标准 ADB 不支持中文输入,该项目通过预装一个特殊的输入法 APK,使得 AI 可以绕过系统限制,直接向输入框注入文本内容,大幅提升自动化效率。

这三层组件环环相扣:视觉感知提供“眼睛”,任务规划提供“大脑”,ADB 控制提供“双手”,共同构成了一个完整的手机端 AI Agent。

2. 本地部署准备:软硬件环境搭建

要让 Open-AutoGLM 跑起来,你需要准备好本地电脑、安卓设备以及必要的开发工具。以下是详细配置指南。

2.1 硬件与基础环境要求

项目要求
本地电脑Windows 或 macOS 系统
Python 版本建议 3.10 及以上
安卓设备Android 7.0+ 的真实手机或模拟器
ADB 工具必须安装并配置环境变量

Python 推荐使用虚拟环境管理依赖,避免与其他项目冲突。你可以使用venvconda创建独立环境:

python -m venv auto-glm-env source auto-glm-env/bin/activate # Linux/macOS # 或 auto-glm-env\Scripts\activate # Windows

2.2 ADB 安装与配置

ADB 来自 Android SDK Platform Tools,需单独下载。

Windows 配置步骤:
  1. 下载 Platform Tools 并解压。
  2. Win + R输入sysdm.cpl,打开“系统属性”。
  3. 进入“高级”→“环境变量”。
  4. 在“系统变量”中的Path添加 ADB 解压目录路径(如C:\platform-tools)。
  5. 打开命令行,运行adb version验证是否成功。
macOS 配置方法:

在终端执行以下命令(假设文件解压在 Downloads 目录):

export PATH=${PATH}:~/Downloads/platform-tools

为了永久生效,可将该行添加到~/.zshrc~/.bash_profile文件中。

验证安装成功后,你会看到类似输出:

Android Debug Bridge version 1.0.41

3. 手机端设置:开启开发者权限与输入法

为了让电脑能够控制手机,必须在设备端进行几项关键设置。

3.1 开启开发者选项与USB调试

  1. 进入手机“设置” → “关于手机”。
  2. 连续点击“版本号”7次,直到提示“您已进入开发者模式”。
  3. 返回设置主菜单,进入“开发者选项”。
  4. 找到并启用“USB调试”功能。

不同品牌手机路径略有差异,但基本逻辑一致。开启后,当你用 USB 线连接电脑时,手机会弹出“允许USB调试?”的授权提示,请务必点击“允许”。

3.2 安装 ADB Keyboard 实现远程输入

由于 ADB 默认无法输入中文或特殊字符,Open-AutoGLM 引入了第三方输入法工具 ADB Keyboard 来解决这一问题。

操作步骤如下:

  1. 下载 ADB Keyboard APK 并安装到手机。
  2. 进入“设置” → “语言与输入法” → “默认键盘”。
  3. 选择“ADB Keyboard”作为当前输入法。

安装完成后,你就可以通过命令向手机发送任意文本:

adb shell am broadcast -a ADB_INPUT_TEXT --es msg "你好世界"

这项功能对于自动化搜索、登录等需要输入文本的场景至关重要。

4. 部署控制端代码并连接设备

现在我们正式进入代码部署阶段。

4.1 克隆项目并安装依赖

在本地电脑打开终端,执行以下命令:

# 克隆 Open-AutoGLM 仓库 git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 安装所需依赖 pip install -r requirements.txt pip install -e .

-e .表示以可编辑模式安装,便于后续修改源码调试。

4.2 连接设备的两种方式

确保手机已通过 USB 连接或处于同一局域网内。

USB 连接方式(推荐初学者使用)

插入 USB 数据线后,在命令行运行:

adb devices

正常情况下会列出你的设备 ID 和状态为device

List of devices attached ABCDEF123456 device

如果显示unauthorized,请检查手机是否弹出授权对话框并确认。

WiFi 远程连接(适合无线调试)

首次需通过 USB 连接启用 TCP/IP 模式:

adb tcpip 5555

断开 USB 后,使用手机 IP 地址连接:

adb connect 192.168.x.x:5555

之后即可拔掉数据线,通过 WiFi 继续控制。此方式特别适合长时间运行任务或远程调试。

5. 启动AI代理:下达第一条自然语言指令

一切准备就绪,现在可以启动 AI 代理,让它接管手机操作。

5.1 命令行方式运行任务

在项目根目录执行:

python main.py \ --device-id ABCDEF123456 \ --base-url http://<云服务器IP>:8800/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"

参数说明:

  • --device-id:来自adb devices输出的设备标识。
  • --base-url:指向运行 vLLM 服务的云服务器地址(需提前部署模型)。
  • --model:指定使用的模型名称。
  • 最后的字符串:你要下达的自然语言指令。

程序启动后,AI 会开始截图分析界面,逐步执行操作,并在终端输出每一步的决策日志。

5.2 使用 Python API 进行远程控制

除了命令行,你还可以在自己的脚本中调用 Open-AutoGLM 提供的 API。

from phone_agent.adb import ADBConnection, list_devices # 创建连接管理器 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}") # 在 USB 设备上启用 TCP/IP success, message = conn.enable_tcpip(5555) ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")

这种方式更适合集成到自动化测试平台或企业级 RPA 流程中。

6. 常见问题与排查建议

在实际使用过程中,可能会遇到一些典型问题,以下是常见情况及解决方案。

6.1 ADB 连接失败

  • 现象adb devices显示offline或无法识别设备。
  • 解决方法
    • 重启 ADB 服务:adb kill-server && adb start-server
    • 更换 USB 线或接口,部分数据线仅支持充电。
    • 检查手机是否弹出授权提示,未授权会导致连接被拒。

6.2 模型无响应或乱码

  • 现象:AI 一直等待,或输出错误操作指令。
  • 原因
    • vLLM 服务未正确启动。
    • 显存不足导致推理失败。
    • max-model-len设置过小,无法处理长上下文。
  • 建议
    • 检查云服务器日志,确认模型加载成功。
    • 调整启动参数,保证至少 16GB 显存用于 9B 模型。
    • 增加--max-model-len 8192参数以支持更长上下文。

6.3 输入中文失败

  • 现象:搜索框无法输入中文关键词。
  • 原因:ADB Keyboard 未设为默认输入法。
  • 解决
    • 进入手机“语言与输入法”设置,手动切换为 ADB Keyboard。
    • 测试命令:adb shell am broadcast -a ADB_INPUT_TEXT --es msg "测试中文"

6.4 远程连接不稳定

  • 现象:WiFi 连接频繁断开。
  • 建议
    • 尽量使用 5GHz WiFi 频段,减少干扰。
    • 若用于生产环境,建议改用 USB 连接保障稳定性。
    • 可编写心跳脚本定期检测连接状态并重连。

获取更多AI镜像

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询