Open-AutoGLM部署教程:云服务vLLM启动参数匹配要点

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

你有没有想过,让AI帮你操作手机?不是简单的语音助手,而是真正“看懂”屏幕、理解界面、自动点击滑动,像真人一样完成复杂任务。这就是 Open-AutoGLM 的核心能力——一个由智谱AI开源的手机端AI智能体(Agent)框架。

它基于强大的视觉语言模型(VLM),结合ADB(Android Debug Bridge)技术,实现了从“感知”到“决策”再到“执行”的完整闭环。用户只需用自然语言下达指令,比如“打开小红书搜索附近的咖啡馆”,系统就能自动分析当前手机界面、识别可点击元素、规划操作路径,并一步步完成任务。

这个项目最特别的地方在于它的多模态理解能力。它不只是听懂你说什么,还能“看到”你手机屏幕上有什么。通过截图+OCR+语义理解,模型能精准判断按钮位置、文本内容和界面结构,从而做出合理操作。整个过程无需手动干预,真正实现“动口不动手”。

而为了让这套系统跑得更快、更稳,很多人选择将模型部署在云端,利用高性能GPU服务器运行vLLM推理引擎,本地只负责设备连接和指令传递。但这也带来了一个关键问题:如何正确配置云上vLLM的启动参数,才能让Open-AutoGLM稳定调用?

本文将带你一步步完成本地控制端部署,并重点解析云服务中vLLM的关键参数设置要点,避免踩坑。


2. AutoGLM-Phone:多模态AI助理的工作原理

2.1 核心架构与流程

AutoGLM-Phone 并不是一个简单的脚本工具,而是一个完整的AI代理系统,包含三个核心模块:

  • 视觉感知层:通过ADB定时截屏,将图像输入视觉语言模型进行理解。
  • 意图与规划层:模型解析用户指令,结合当前界面信息,生成下一步操作动作(如点击、滑动、输入文字)。
  • 执行控制层:通过ADB命令实际操控手机,完成点击坐标、输入文本、返回等操作。

整个流程是循环推进的:
截屏 → 理解界面 → 生成动作 → 执行操作 → 再截屏 → 判断是否完成 → 继续或结束

这种“感知-思考-行动”的闭环设计,使得它能应对复杂的动态界面,比如登录弹窗、广告跳转、验证码拦截等场景。

2.2 安全机制与人工接管

考虑到自动化操作的风险,系统内置了多项安全策略:

  • 敏感操作确认:当检测到支付、删除、授权等高风险行为时,会暂停并提示用户确认。
  • 人工接管支持:在需要输入验证码或人脸验证的环节,流程会自动中断,等待用户手动处理后继续。
  • 远程调试能力:支持WiFi连接设备,开发者可在办公室远程调试家里的测试机,极大提升开发效率。

这些特性让它不仅适合个人使用,也具备企业级应用潜力,比如自动化测试、客服辅助、数据采集等场景。


3. 本地控制端部署指南

要让Open-AutoGLM工作起来,你需要两部分协同:云端模型服务 + 本地控制端。本地负责连接手机、发送请求;云端负责运行大模型、返回操作建议。

下面我们先完成本地控制端的搭建。

3.1 硬件与环境准备

以下是推荐配置:

项目 要求
操作系统 Windows 10+/macOS Monterey+
Python版本 3.10 或以上
安卓设备 Android 7.0 及以上(真机或模拟器)
ADB工具 必须安装并加入环境变量
ADB安装与配置

Windows 用户:

  1. 下载 Android SDK Platform Tools
  2. 解压后复制文件夹路径(例如 C:\platform-tools)。
  3. 打开“系统属性” → “高级” → “环境变量”。
  4. 在“系统变量”中找到 Path,点击编辑 → 新建 → 粘贴路径。
  5. 打开命令行,输入 adb version,若显示版本号则成功。

macOS 用户:

在终端执行以下命令(假设解压目录为 ~/Downloads/platform-tools):

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

你可以将这行添加到 .zshrc.bash_profile 中,避免每次重启都要重新设置。


3.2 手机端设置

确保你的安卓设备已做好准备:

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

  2. 启用USB调试
    返回设置主菜单 → “开发者选项” → 开启“USB调试”。

  3. 安装ADB Keyboard(可选但推荐)
    这是一个特殊的输入法,允许通过ADB命令直接输入文字,绕过某些App对中文输入的限制。

    • 下载 ADB Keyboard APK 并安装。
    • 进入“语言与输入法”设置,将其设为默认输入法。

这样,即使在没有物理键盘的情况下,AI也能自由输入文字内容。


3.3 部署控制端代码

现在我们来下载并安装 Open-AutoGLM 的本地控制程序。

# 克隆仓库
git clone https://github.com/zai-org/Open-AutoGLM
cd Open-AutoGLM

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

注意:如果遇到依赖冲突,建议使用虚拟环境:

python -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate     # Windows

安装完成后,你会看到 phone_agent/ 目录下的核心模块,包括ADB通信、动作规划、模型调用等功能。


4. 设备连接方式详解

Open-AutoGLM 支持两种连接方式:USB 和 WiFi。推荐优先使用USB进行调试,稳定可靠;正式使用时可切换为WiFi远程控制。

4.1 USB连接

  1. 使用数据线将手机连接电脑。
  2. 手机弹出“允许USB调试?”对话框时,点击“允许”。
  3. 在命令行运行:
adb devices

输出应类似:

List of devices attached
ABCDEF123    device

只要状态为 device,说明连接成功。

4.2 WiFi远程连接

适用于远程调试或无线批量控制。

第一步:通过USB启用TCP/IP模式
adb tcpip 5555

这条命令会让设备监听5555端口的网络连接。

第二步:断开USB,使用IP连接

确保手机和电脑在同一局域网下,获取手机IP地址(可在“设置-关于手机-状态信息”中查看),然后执行:

adb connect 192.168.x.x:5555

再次运行 adb devices,你应该能看到设备以IP形式列出。

小技巧:可以写个脚本自动获取设备IP并连接,提升效率。


5. 启动AI代理:命令行与API调用

一切就绪后,就可以启动AI代理,让它接管手机了。

5.1 命令行方式快速体验

在项目根目录下运行:

python main.py \
  --device-id ABCDEF123 \
  --base-url http://123.45.67.89:8800/v1 \
  --model "autoglm-phone-9b" \
  "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"

参数说明:

参数 说明
--device-id 通过 adb devices 获取的设备ID或IP:端口
--base-url 云服务器上vLLM服务的公网地址和端口
--model 指定模型名称,需与vLLM启动时注册的一致
最后的字符串 自然语言指令,支持中文

执行后,你会看到AI开始截屏、分析、生成动作,并通过ADB自动操作手机。


5.2 Python API方式集成

如果你希望将功能嵌入自己的系统,可以直接调用Python 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}")

# (首次使用WiFi时)启用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")

这种方式更适合做批量设备管理或多任务调度。


6. 云服务vLLM部署:启动参数匹配要点

前面提到,大多数情况下我们会把模型部署在云服务器上,使用 vLLM 作为推理引擎。但很多用户反馈:“本地能连上,但模型没反应”、“返回乱码”、“超时失败”……这些问题往往出在 vLLM的启动参数不匹配

下面我们就来重点解析几个关键参数,确保Open-AutoGLM能顺利调用。

6.1 正确启动vLLM服务

假设你已经在云服务器上部署了模型,正确的启动命令应该是这样的:

python -m vllm.entrypoints.openai.api_server \
  --host 0.0.0.0 \
  --port 8800 \
  --model zhipu-ai/autoglm-phone-9b \
  --tokenizer zhipu-ai/autoglm-phone-9b \
  --task visual \
  --limit-mm-per-prompt 1 \
  --max-model-len 4096 \
  --gpu-memory-utilization 0.9 \
  --enforce-eager \
  --mm-projector-cache-file ./mm_projector.bin

我们逐个分析这些参数的重要性。


6.2 关键参数解析

--host 0.0.0.0

必须设置为 0.0.0.0,否则只能本地访问。设成 127.0.0.1 会导致外部无法连接。

--port 8800

指定对外服务端口。记得在云平台安全组中放行该端口(如阿里云、腾讯云的防火墙规则)。

--model--tokenizer

必须准确指向HuggingFace上的模型仓库名。目前官方提供的是 zhipu-ai/autoglm-phone-9b,不要随意修改。

--task visual

这是关键!因为AutoGLM是视觉语言模型,必须显式声明任务类型为 visual,否则无法处理图像输入。

--limit-mm-per-prompt 1

限制每条提示最多携带1张图片(即手机截图)。这是合理的设定,避免资源浪费。

--max-model-len 4096

模型上下文最大长度。建议不低于4096,否则长对话容易截断,影响任务连续性。

特别注意:如果设置过小(如2048),可能导致历史记忆丢失,AI反复问“我现在在哪?”

--gpu-memory-utilization 0.0.9

控制显存利用率。太高可能OOM,太低浪费性能。0.9 是平衡之选。

--enforce-eager

禁用PyTorch的图优化模式,提升兼容性。对于多模态模型尤其重要,能避免一些奇怪的推理错误。

--mm-projector-cache-file

指定多模态投影层权重文件路径。这个 .bin 文件需要提前下载,否则图像特征无法正确映射。


6.3 常见问题排查清单

问题现象 可能原因 解决方案
连接被拒绝 防火墙未开放端口 检查云服务器安全组,放行对应端口
ADB频繁掉线 WiFi信号不稳定 改用USB连接,或优化网络环境
模型无响应/超时 vLLM未正确启动 检查日志是否有CUDA OOM或加载失败
返回乱码或格式错误 启动参数缺失 --task visual 补全多模态相关参数
截图上传失败 mm_projector.bin 缺失 下载并指定正确路径
动作生成错误 上下文长度不足 提高 --max-model-len 至4096以上

7. 总结

Open-AutoGLM 是一个极具想象力的开源项目,它让我们离“真正的AI助理”又近了一步。通过视觉理解+自然语言指令+自动化执行,它可以完成大量重复性手机操作,无论是日常使用还是企业自动化都有广阔前景。

本文带你完成了从本地环境搭建、设备连接、控制端部署,到云端vLLM服务配置的全流程,并重点强调了vLLM启动参数的匹配要点。记住几个关键点:

  • 必须启用 --task visual--limit-mm-per-prompt 1 支持多模态;
  • --max-model-len 建议设为4096以上,保证上下文连贯;
  • --mm-projector-cache-file 文件不可少;
  • 防火墙和ADB连接稳定性是基础保障。

只要把这些细节处理好,你的AI就能流畅地“替你玩手机”了。

未来,随着模型轻量化和边缘计算的发展,这类AI Agent有望直接运行在手机本地,不再依赖云端。但现在,正是我们动手实践的最佳时机。


获取更多AI镜像

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

Logo

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

更多推荐