Open-AutoGLM+ADB Keyboard:输入法切换部署细节揭秘
本文介绍了基于星图GPU平台自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架的技术实践。通过该平台,开发者可快速搭建移动端AI代理环境,结合ADB Keyboard实现自然语言指令驱动的自动操作,典型应用于模型微调与智能交互场景,提升移动自动化开发效率。
Open-AutoGLM+ADB Keyboard:输入法切换部署细节揭秘
1. 背景与技术定位
随着移动端 AI Agent 的发展,如何让大模型真正“操作”手机完成复杂任务成为研究热点。Open-AutoGLM 是由智谱开源的手机端 AI Agent 框架,其核心项目 AutoGLM-Phone 基于视觉语言模型(VLM)实现对手机界面的多模态理解,并通过 ADB(Android Debug Bridge)完成自动化控制。
用户只需输入自然语言指令,如“打开小红书搜索美食”,系统即可自动解析意图、识别当前屏幕内容、规划操作路径并执行点击、滑动、输入等动作。这一能力的背后,是视觉感知、语义理解、动作决策与设备控制的深度融合。而其中最关键的环节之一——文本输入的自动化处理,依赖于一个特殊组件:ADB Keyboard。
本文将重点解析 Open-AutoGLM 中 ADB Keyboard 的部署逻辑、输入法切换机制及其在真实设备上的实践细节,帮助开发者顺利搭建本地控制环境。
2. 系统架构与工作流程
2.1 多模态代理的核心组成
Phone Agent 架构由三大模块构成:
- 视觉感知层:通过定时截屏获取手机当前界面图像,送入 VLM 模型进行内容理解。
- 语义决策层:结合用户指令和屏幕信息,生成下一步操作动作(如点击坐标、输入文本、滑动方向)。
- 设备控制层:利用 ADB 协议向安卓设备发送操作命令,包括触摸事件、按键模拟和输入法调度。
整个流程闭环如下:
用户指令 → 截图上传 → VLM 理解界面元素 → 规划动作序列 → ADB 执行 → 反馈结果
2.2 ADB Keyboard 的关键作用
在传统 ADB 自动化中,文本输入通常受限。标准 adb shell input text 命令存在编码问题,无法正确输入中文或特殊字符。此外,多数输入法不支持纯命令行输入。
ADB Keyboard 正是为解决此问题而设计。它是一个轻量级 APK 应用,注册为系统输入法,接收来自 ADB 的广播指令,直接将指定字符串“注入”到当前焦点输入框中,绕过常规键盘交互流程。
其优势在于:
- 支持 Unicode 字符(含中文、表情符号)
- 输入速度快,无延迟弹窗
- 不依赖特定输入法,兼容性强
- 可远程调用,适合无人值守场景
3. 本地控制端部署全流程
3.1 硬件与环境准备
要成功运行 Open-AutoGLM 控制端,需满足以下条件:
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10+/macOS Monterey+ |
| Python 版本 | 3.10 或以上 |
| 安卓设备 | Android 7.0+ 真机或模拟器 |
| ADB 工具 | platform-tools 最新版 |
ADB 环境配置(Windows)
- 下载 Android SDK Platform Tools 并解压。
- 使用快捷键
Win + R输入sysdm.cpl,进入“系统属性”。 - 点击“高级”选项卡 → “环境变量” → 在“系统变量”中找到
Path。 - 添加 ADB 解压目录路径(例如:
C:\platform-tools)。 - 打开命令提示符,执行:
若返回版本号,则表示配置成功。adb version
ADB 环境配置(macOS)
在终端中执行以下命令(假设文件解压至 Downloads 目录):
export PATH=${PATH}:~/Downloads/platform-tools
建议将该行添加至 ~/.zshrc 或 ~/.bash_profile 以持久化配置。
验证方式同上:
adb version
3.2 手机端设置详解
开启开发者模式
进入手机“设置” → “关于手机” → 连续点击“版本号”7次,直至提示“您已开启开发者模式”。
启用 USB 调试
返回设置主菜单 → “系统” → “开发者选项” → 启用“USB 调试”。
注意:部分厂商(如小米、华为)可能还需额外开启“USB 调试(安全设置)”以允许调试安装应用。
安装并启用 ADB Keyboard
- 下载 ADB Keyboard APK(官方 GitHub 仓库提供)。
- 将 APK 文件传输至手机并安装。
- 进入“设置” → “语言与输入法” → “当前输入法”或“默认键盘”。
- 选择“ADB Keyboard”作为默认输入法。
重要提示:某些手机系统会自动切换回原生输入法。建议关闭“智能切换输入法”功能,确保 ADB Keyboard 始终处于激活状态。
3.3 部署 Open-AutoGLM 控制端
克隆代码库
git clone https://github.com/zai-org/Open-AutoGLM
cd Open-AutoGLM
安装依赖
pip install -r requirements.txt
pip install -e .
推荐使用虚拟环境(venv 或 conda),避免依赖冲突。
3.4 设备连接方式对比
USB 连接(推荐用于调试)
- 使用数据线连接手机与电脑。
- 手机弹出“允许 USB 调试?”对话框时,点击“允许”。
- 执行命令查看设备状态:
adb devices
预期输出示例:
List of devices attached
ABCDEF1234567890 device
若显示 unauthorized,请重新插拔或重启 ADB 服务:
adb kill-server
adb start-server
WiFi 远程连接(适用于无线部署)
首次需通过 USB 完成初始化配置:
# 启用 TCP/IP 模式,端口 5555
adb tcpip 5555
# 断开 USB,使用 IP 连接
adb connect 192.168.x.x:5555
其中 192.168.x.x 为手机在同一局域网下的 IP 地址,可通过手机设置中的“WLAN”详情页查看。
连接成功后,可拔掉数据线,后续所有操作均通过网络进行。
安全提醒:确保路由器防火墙未屏蔽 5555 端口,且设备处于可信网络环境。
4. 启动 AI 代理与指令执行
4.1 命令行方式启动
在项目根目录下运行:
python main.py \
--device-id <你的设备ID或IP:5555> \
--base-url http://<云服务器IP>:<映射端口>/v1 \
--model "autoglm-phone-9b" \
"打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"
参数说明:
| 参数 | 说明 |
|---|---|
--device-id |
来自 adb devices 输出的设备标识 |
--base-url |
云端 vLLM 服务地址,格式为 http://x.x.x.x:port/v1 |
--model |
模型名称,必须与服务端加载一致 |
| 指令字符串 | 用户自然语言任务描述 |
4.2 Python API 方式集成
对于需要嵌入现有系统的场景,可使用 SDK 提供的 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")
该方式便于构建 Web 控制台、CI/CD 测试流水线等高级应用。
5. 常见问题与排查指南
5.1 ADB 连接失败
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
unauthorized |
未授权调试 | 重新插拔,确认手机端点击“允许” |
offline |
ADB 服务异常 | 执行 adb kill-server && adb start-server |
connect fail |
IP 错误或端口未开放 | 检查手机 IP 和防火墙设置 |
5.2 输入法失效或乱码
- 问题表现:输入中文显示为问号或拼音错误。
- 根本原因:ADB Keyboard 未设为默认输入法,或系统强制切换。
- 解决方案:
- 重新进入“语言与输入法”设置,手动切换为 ADB Keyboard。
- 关闭“根据应用推荐输入法”类功能。
- 测试输入:
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "测试中文"。
5.3 模型响应异常
- 现象:模型无响应、返回乱码或推理超时。
- 检查点:
- 确认云服务器 vLLM 启动参数包含
--host 0.0.0.0 --port 8800。 - 检查 GPU 显存是否足够(9B 模型建议 ≥ 20GB)。
- 查看日志是否有
CUDA out of memory报错。 - 确保
max-model-len设置合理(建议 ≥ 8192)。
- 确认云服务器 vLLM 启动参数包含
5.4 敏感操作拦截机制
系统内置安全策略,在检测到支付、删除、权限申请等高风险操作时,会暂停自动执行,等待人工确认。开发者可通过配置文件调整敏感词库或关闭该功能(仅限测试环境)。
6. 总结
Open-AutoGLM 结合 ADB Keyboard 实现了从“看到”到“做到”的完整闭环,尤其在文本输入环节解决了长期困扰移动自动化领域的编码与兼容性难题。通过本文介绍的部署流程,开发者可以快速搭建本地控制环境,实现基于自然语言的手机智能操控。
关键要点回顾:
- ADB Keyboard 是实现可靠文本输入的核心组件,必须正确安装并设为默认输入法。
- ADB 连接支持 USB 与 WiFi 两种模式,后者更适合远程调试与集群管理。
- 控制端与云端模型通信需确保网络可达、接口匹配、参数一致。
- 实际部署中应重点关注输入法稳定性、设备授权状态与模型资源占用。
未来,随着端侧大模型能力提升,此类框架有望进一步降低对云端依赖,实现更高效、更私密的本地化运行。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐


所有评论(0)