新手友好!Open-AutoGLM手机AI代理从0到1搭建
1. 项目背景与核心价值
随着移动设备在日常生活中的深度渗透,用户对智能化操作的需求日益增长。传统自动化工具如按键精灵、Tasker等依赖规则脚本,难以应对复杂多变的应用界面和交互逻辑。而基于大模型的AI代理正在成为下一代智能助手的核心方向。
Open-AutoGLM 是由智谱开源推出的手机端AI Agent框架,名为Phone Agent,它结合视觉语言模型(VLM)与Android调试桥(ADB),实现了真正意义上的“自然语言驱动”手机操作。用户只需输入一句指令,例如“打开小红书搜索美食推荐”,系统即可自动理解屏幕内容、解析用户意图,并规划出完整的操作路径——包括启动应用、输入关键词、点击搜索按钮等,最终完成任务。
该框架不仅支持本地部署保障数据隐私,还具备敏感操作确认机制,在涉及登录或验证码场景时可暂停执行并交由人工接管,兼顾智能性与安全性。
2. 技术架构与工作原理
2.1 系统整体架构
Open-AutoGLM 的运行流程可分为四个关键阶段:
- 屏幕感知:通过 ADB 截图获取当前手机界面图像。
- 多模态理解:将截图与用户指令一同送入视觉语言模型进行联合推理。
- 动作规划:模型输出结构化操作命令(如点击坐标、滑动方向、文本输入等)。
- 设备控制:通过 ADB 执行具体操作,并循环反馈结果直至任务完成。
整个过程形成一个闭环控制系统,具备较强的容错能力和环境适应能力。
2.2 核心组件解析
Phone Agent 主体模块
负责协调各子系统,管理会话状态,调用模型接口并解析响应。其设计兼容 OpenAI 风格 API,便于集成各类后端服务。ADB 控制层
封装了设备连接、截图抓取、触控模拟、键盘输入等功能。特别地,项目推荐使用 ADB Keyboard 实现无焦点文本输入,避免原生输入法弹窗干扰。视觉语言模型(VLM)
使用 AutoGLM-Phone 系列模型,专为移动端UI理解优化。支持最多10张连续截图输入,最大上下文长度达25,480 tokens,足以处理长序列任务。安全机制
内置风险检测模块,当识别到支付、账号修改等高危操作时,自动暂停并提示用户确认;同时支持在验证码页面手动介入,确保关键环节可控。
3. 本地环境准备与设备连接
3.1 硬件与软件要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows / macOS |
| Python 版本 | 3.10 或以上 |
| 安卓设备 | Android 7.0+ 真机或模拟器 |
| ADB 工具 | 平台工具包 platform-tools |
3.2 安装与配置 ADB
Windows 用户
- 下载 Android Platform Tools 并解压。
- 按
Win + R输入sysdm.cpl→ 高级 → 环境变量。 - 在“系统变量”中找到
Path,添加解压目录路径(如C:\platform-tools)。 - 打开命令行,执行:
bash adb version若显示版本信息则安装成功。
macOS 用户
在终端中执行以下命令(假设文件解压至 Downloads 目录):
export PATH=${PATH}:~/Downloads/platform-tools建议将此行加入.zshrc或.bash_profile文件以永久生效。
4. 手机端设置步骤
4.1 开启开发者选项与USB调试
- 进入手机“设置” → “关于手机”。
- 连续点击“版本号”7次,直到提示“您已开启开发者模式”。
- 返回设置主菜单 → “开发者选项” → 启用“USB调试”。
⚠️ 注意:部分厂商需额外授权“允许通过USB调试”权限,请根据提示操作。
4.2 安装 ADB Keyboard
为实现稳定文本输入,建议安装专用输入法:
- 下载 ADB Keyboard APK。
- 安装完成后进入“语言与输入法”设置。
- 将默认输入法切换为ADB Keyboard。
此后所有文本输入均可通过 ADB 命令完成,无需手动弹出软键盘。
5. 部署控制端代码
5.1 克隆项目仓库
在本地电脑执行以下命令:
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM5.2 安装依赖库
pip install -r requirements.txt pip install -e .若需进行二次开发,可安装完整开发依赖:
pip install -e ".[dev]"6. 设备连接方式详解
6.1 USB 连接(推荐初学者)
- 使用数据线连接手机与电脑。
- 手机端弹出“允许USB调试?”对话框时,点击“确定”。
- 在终端运行:
bash adb devices输出示例:List of devices attached 1234567890abc device
若显示unauthorized,请重新插拔并确认授权。
6.2 WiFi 远程连接(适合无线调试)
首次需通过 USB 启用 TCP/IP 模式:
adb tcpip 5555断开USB后,连接同一局域网,执行:
adb connect 192.168.x.x:5555其中 IP 地址可通过手机“设置 → WLAN → 当前网络详情”查看。
连接成功后可用adb devices验证。
7. 启动AI代理并执行任务
7.1 命令行快速运行
确保模型服务已在云端或本地启动(参考下一节),然后执行:
python main.py \ --device-id 1234567890abc \ --base-url http://<服务器IP>:8000/v1 \ --model "autoglm-phone-9b" \ "打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!"参数说明: ---device-id:来自adb devices的设备标识。 ---base-url:vLLM 或 SGlang 提供的 OpenAI 兼容接口地址。 - 最后字符串:自然语言指令,支持中文/英文混合表达。
7.2 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}") # 获取设备IP(用于WiFi连接) ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")更高级用法可结合PhoneAgent类直接调用模型:
from phone_agent import PhoneAgent from phone_agent.model import ModelConfig model_config = ModelConfig( base_url="http://localhost:8000/v1", model_name="autoglm-phone-9b", ) agent = PhoneAgent(model_config=model_config) result = agent.run("打开淘宝搜索无线耳机") print(result)8. 模型部署与服务启动
8.1 使用 vLLM 部署模型
推荐使用 vLLM 提供高性能推理服务。启动命令如下:
python3 -m vllm.entrypoints.openai.api_server \ --served-model-name autoglm-phone-9b \ --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 \ --port 8000✅ 成功标志:访问
http://<IP>:8000/v1/models可返回模型信息。
8.2 支持的模型列表
| 模型名称 | 语言支持 | 下载地址 |
|---|---|---|
| AutoGLM-Phone-9B | 中文优化 | Hugging Face / ModelScope |
| AutoGLM-Phone-9B-Multilingual | 多语言支持 | Hugging Face / ModelScope |
可根据实际需求选择对应版本。
9. 常见问题排查指南
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| ADB 无法识别设备 | 未开启USB调试或驱动异常 | 重新启用开发者选项,更换数据线或端口 |
| 连接被拒绝(Connection Refused) | 云服务器防火墙未放行端口 | 检查安全组规则,开放对应端口(如8000) |
| 模型响应乱码或卡顿 | 显存不足或 max-model-len 设置过小 | 增加 GPU 显存分配,确保参数一致 |
| ADB Keyboard 无法输入 | 未设为默认输入法 | 进入系统设置强制切换 |
| WiFi连接频繁掉线 | 网络不稳定 | 改用USB连接,或重启路由器 |
10. 总结
Open-AutoGLM 作为一款面向手机端的AI代理框架,凭借其强大的多模态理解能力与灵活的部署方式,为自动化操作提供了全新的解决方案。无论是个人效率提升还是企业级RPA应用,都展现出广阔前景。
本文详细介绍了从环境搭建、设备连接到模型部署与任务执行的全流程,帮助新手用户零基础完成AI代理的构建。通过命令行与Python API两种调用方式,既满足快速体验需求,也支持深度定制开发。
未来,随着视觉语言模型的持续进化,此类手机AI代理将在智能家居控制、跨App信息整合、无障碍辅助等领域发挥更大作用。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。