手机AI代理新选择:Open-AutoGLM全面评测

1. 项目介绍

1.1 Open-AutoGLM 的定位与意义

Open-AutoGLM 是由智谱AI在2024年10月推出的开源手机操作智能体框架,基于其自研的 AutoGLM 多模态大模型构建。该项目标志着移动设备自动化从传统脚本驱动向语义理解驱动的重要跃迁。与以往依赖固定UI路径或图像识别模板的自动化工具不同,Open-AutoGLM 能够通过视觉语言模型(VLM)理解屏幕内容,并结合自然语言指令进行任务规划和执行。

该框架的核心价值在于实现了“意图到动作”的端到端闭环。用户只需用自然语言描述目标,例如“打开小红书搜索美食推荐”,系统即可自动完成以下流程: - 截取当前屏幕画面 - 利用多模态模型解析界面元素与状态 - 理解用户意图并生成操作计划 - 通过 ADB 发送点击、滑动、输入等指令 - 持续观察反馈并动态调整策略

这种能力使其在多个场景中展现出巨大潜力,包括但不限于: - 移动应用测试:自动化回归测试、UI遍历 - 数字助理:帮助老年人或残障人士操作复杂应用 - 批量设备管理:企业级设备配置与数据采集 - 个人效率提升:自动执行重复性手机操作

目前 Open-AutoGLM 已支持超过50款主流应用,涵盖微信、QQ、淘宝、美团、抖音、Chrome、Gmail、WhatsApp、Telegram、Amazon 等国内外常用App,具备较强的通用性和实用性。

官方项目地址为 GitHub仓库,相关镜像已集成至 vLLM-Omni 自动化部署平台,便于开发者快速上手。


2. 核心架构与技术原理

2.1 系统整体架构

Open-AutoGLM 采用分层式架构设计,主要由三大模块构成:

+---------------------+
|   用户自然语言指令   |
+----------+----------+
           |
           v
+------------------------+
| 视觉语言模型 (AutoGLM) |
| - 屏幕理解             |
| - 意图解析             |
| - 动作规划             |
+----------+-------------+
           |
           v
+------------------------+
| ADB 控制层              |
| - 设备连接 (USB/WiFi)   |
| - 输入/输出模拟         |
| - 截图获取              |
+------------------------+

整个系统运行时,首先通过 ADB 获取手机屏幕截图,将其与用户指令拼接成多模态提示词(prompt),送入 AutoGLM 模型进行推理。模型输出结构化的操作命令(如点击坐标、文本输入、滑动方向等),再由 ADB 层转发至设备执行。执行后再次截图,形成闭环反馈,直至任务完成。

2.2 ADB 与远程控制机制

Android Debug Bridge(ADB)是 Open-AutoGLM 实现设备控制的基础工具。它采用客户端-服务器架构,包含三个核心组件: - ADB Client:运行在本地计算机上的控制程序 - ADB Server:监听本地5037端口,协调客户端与设备通信 - adbd 守护进程:运行在安卓设备上,接收并执行命令

ADB 支持两种连接方式: - USB 连接:即插即用,稳定性高 - WiFi 连接:通过 adb tcpip 5555 启用 TCP/IP 模式后断开 USB,实现无线调试

这使得 Open-AutoGLM 可灵活应用于实验室测试、远程运维等多种场景。

2.3 多模态模型服务的角色

Open-AutoGLM 的决策核心是一个兼容 OpenAI API 格式的视觉语言模型服务。该服务需满足以下功能要求:

功能 描述
图像理解 分析屏幕截图中的 UI 元素、文本、布局结构
文本理解 解析用户自然语言指令的语义意图
推理规划 结合上下文生成合理的操作序列
输出格式化 返回 JSON 结构的动作指令

用户可通过以下方式获取模型服务: - 本地部署:使用 vLLM 在本地 GPU 服务器部署 zai-org/AutoGLM-Phone-9B-Multilingual - 云端调用:接入 z.ai、Novita AI 或 ModelScope 提供的托管服务

模型参数建议设置如下以保证性能稳定:

--max-model-len 25480 \
--limit-mm-per-prompt "{\"image\":10}" \
--mm_processor_kwargs "{\"max_pixels\":5000000}"

3. 部署实践指南

3.1 环境准备

操作系统支持
  • 推荐系统:Ubuntu 20.04 LTS / macOS 10.15+ / Windows 11 + WSL2
  • Python 版本:3.10 或 3.11(最低支持 3.9)
硬件要求
组件 最低配置 推荐配置
CPU 4核 8核以上
内存 8GB 16GB+
显卡 - NVIDIA GPU ≥24GB显存(A100/RTX 5880 Ada)
存储 20GB SSD 50GB SSD(含模型缓存)

注意:若仅作为控制端使用第三方模型服务,可无需本地GPU。

3.2 ADB 配置流程

安装 ADB 工具

macOS(Homebrew)

brew install android-platform-tools
adb version

Linux(Debian/Ubuntu)

sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot

Windows 下载 platform-tools 并添加至 PATH 环境变量。

启用手机开发者选项
  1. 设置 → 关于手机 → 连续点击“版本号”7次
  2. 返回 → 开发者选项 → 开启“USB调试”
  3. (可选)开启“USB调试(安全设置)”
验证连接
adb devices

预期输出:

List of attached devices
ABCDEF12    device

若显示 unauthorized,请在手机端确认授权对话框。

3.3 安装 ADB Keyboard

由于标准 ADB 不支持中文输入,必须安装专用输入法:

# 下载 APK
curl -O https://github.com/senzhk/ADBKeyBoard/raw/master/ADBKeyboard.apk

# 安装到设备
adb install ADBKeyboard.apk

# 启用输入法
adb shell ime enable com.android.adbkeyboard/.AdbIME

# 设置为默认
adb shell ime set com.android.adbkeyboard/.AdbIME

# 验证
adb shell settings get secure default_input_method

正确返回应为 com.android.adbkeyboard/.AdbIME

3.4 克隆项目与依赖安装

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

# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 升级工具链
pip install --upgrade pip setuptools wheel

# 安装依赖
pip install -r requirements.txt
pip install vllm
pip install -e .

验证安装成功:

python -c "from phone_agent import PhoneAgent; print('Installed')"

4. 模型部署与服务启动

4.1 本地模型部署(vLLM)

使用 vLLM 部署 AutoGLM 多语言版本:

python3 -m vllm.entrypoints.openai.api_server \
  --served-model-name autoglm-phone-9b-multilingual \
  --allowed-local-media-path / \
  --mm-encoder-tp-mode data \
  --mm_processor_cache_type shm \
  --mm_processor_kwargs "{\"max_pixels\":5000000}" \
  --max-model-len 25480 \
  --chat-template-content-format string \
  --limit-mm-per-prompt "{\"image\":10}" \
  --model zai-org/AutoGLM-Phone-9B-Multilingual \
  --port 8000

首次运行将自动下载约20GB模型权重,耗时取决于网络速度。

4.2 服务健康检查

启动后验证API可用性:

curl -X GET http://localhost:8000/v1/models

成功响应示例:

{
  "data": [
    {
      "id": "autoglm-phone-9b-multilingual",
      "object": "model"
    }
  ],
  "object": "list"
}

4.3 使用第三方模型服务

若不本地部署,可使用以下平台: - z.ai:提供 AutoGLM 托管服务 - Novita AI:支持多模态推理 - ModelScope:阿里云模型社区

调用方式仅需修改 --base-url 和添加 --apikey 参数:

python main.py \
  --base-url https://api.z.ai/api/paas/v4 \
  --model autoglm-phone-9b \
  --apikey YOUR_API_KEY \
  "打开抖音关注指定账号"

5. 使用方式与高级功能

5.1 基础命令行使用

单次任务执行
python main.py \
  --device-id ABCDEF12 \
  --base-url http://localhost:8000/v1 \
  --model autoglm-phone-9b-multilingual \
  "打开Chrome搜索Python教程"
交互式模式

不带任务参数启动,进入交互环境:

python main.py \
  --base-url http://localhost:8000/v1 \
  --model autoglm-phone-9b-multilingual

随后可连续输入多条指令。

5.2 WiFi 远程连接配置

方法一:原生无线调试(Android 11+)
  1. 手机开启“无线调试”
  2. 记录显示的 IP 和端口(如 192.168.1.100:5555
  3. 计算机执行:
adb connect 192.168.1.100:5555
方法二:USB转WiFi
# 先USB连接
adb tcpip 5555
# 断开USB,通过IP连接
adb connect 192.168.1.100:5555

5.3 多设备并发控制(Python API)

利用线程池实现多设备并行操作:

from concurrent.futures import ThreadPoolExecutor
from phone_agent import PhoneAgent, ModelConfig
from phone_agent.adb import list_devices

devices = list_devices()
model_config = ModelConfig(
    base_url="http://localhost:8000/v1",
    model_name="autoglm-phone-9b-multilingual"
)

def execute_task(device_id, task):
    agent = PhoneAgent(model_config=model_config, device_id=device_id)
    return agent.run(task)

tasks = {
    devices[0].device_id: "打开设置",
    devices[1].device_id: "打开浏览器"
}

with ThreadPoolExecutor(max_workers=3) as executor:
    futures = {
        dev_id: executor.submit(execute_task, dev_id, task)
        for dev_id, task in tasks.items()
    }
    results = {dev_id: future.result() for dev_id, future in futures.items()}

5.4 调试与日志输出

启用详细日志查看决策过程:

python main.py --verbose "执行复杂任务"

输出示例:

==================================================
思考过程:
--------------------------------------------------
当前位于首页,需进入搜索栏
--------------------------------------------------
执行动作:
{
  "action": "Tap",
  "element": [500, 100]
}
==================================================

6. 常见问题与优化建议

6.1 故障排查清单

问题现象 可能原因 解决方案
adb devices 无输出 ADB未启动或USB线故障 adb kill-server && adb start-server,更换数据线
设备状态为 unauthorized 未授权计算机 撤销所有授权后重新连接并点击“允许”
模型无响应 显存不足或端口占用 检查CUDA错误日志,调整 --max-model-len
中文输入乱码 编码问题 Windows下设置 PYTHONIOENCODING=utf-8

6.2 性能优化建议

  1. 降低推理延迟 python ModelConfig( max_tokens=2000, temperature=0.05 )

  2. 提升连接稳定性

  3. 优先使用USB连接
  4. WiFi环境下确保延迟 <100ms

  5. 资源调度

  6. 多设备并发时限制线程数(建议 ≤5)
  7. 使用高性能SSD减少I/O瓶颈

7. 总结

Open-AutoGLM 作为一款基于视觉语言模型的手机AI代理框架,成功将大模型的语义理解能力与移动设备的实际操作相结合,实现了真正意义上的“自然语言驱动自动化”。其核心优势体现在:

  • 多模态感知:结合图像与文本理解屏幕状态
  • 零编码操作:用户无需编写脚本即可完成复杂任务
  • 跨平台兼容:支持主流安卓设备及多种部署方式
  • 开放生态:完全开源,支持本地与云端混合部署

尽管在长序列推理稳定性、极端UI适配等方面仍有改进空间,但 Open-AutoGLM 已展现出强大的工程实用价值。随着多模态模型能力的持续进化,这类AI代理有望成为未来智能手机的标准交互范式之一。

对于开发者而言,掌握 Open-AutoGLM 不仅能提升自动化测试效率,也为探索下一代人机交互方式提供了重要实践基础。


获取更多AI镜像

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

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐