news 2026/4/28 13:57:11

AutoGLM-Phone如何连接真机?USB/WiFi双模式部署教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AutoGLM-Phone如何连接真机?USB/WiFi双模式部署教程

AutoGLM-Phone如何连接真机?USB/WiFi双模式部署教程

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

你有没有想过,让AI直接帮你操作手机?不是简单的语音助手,而是能“看懂”屏幕、理解界面、自动点击滑动,像真人一样完成复杂任务的智能体。这就是AutoGLM-Phone的核心能力。

它由智谱AI开源推出,基于强大的视觉语言模型(VLM),结合Android Debug Bridge(ADB)技术,构建了一个真正意义上的手机端AI代理框架。你只需要用自然语言下达指令,比如“打开小红书搜索附近的火锅店”,系统就能自动解析意图、识别当前界面元素、规划操作路径,并一步步执行点击、输入、滑动等动作,全程无需手动干预。

更关键的是,这个框架是开放的。开发者可以本地部署、调试、扩展,把它集成进自己的自动化流程或产品中。而连接真实手机设备,是这一切的第一步。本文将手把手教你如何通过USB 和 WiFi 两种方式,把你的安卓手机接入 AutoGLM-Phone 控制系统,实现真正的“AI接管”。

2. 核心原理:多模态感知 + 自动化执行

AutoGLM-Phone 的工作流程可以拆解为三个关键环节:

  1. 屏幕感知:通过 ADB 实时抓取手机屏幕画面,送入视觉语言模型进行分析。模型不仅能识别文字、按钮、图标,还能理解它们在界面上的布局和语义关系。
  2. 意图理解与规划:用户输入的自然语言指令(如“给昨天聊天的朋友发个笑脸表情”)被大模型解析,结合当前屏幕内容,推理出下一步该做什么——是点击消息列表?还是进入输入框?
  3. 动作执行:系统生成具体的 ADB 操作命令(如adb shell input tap x y),发送到手机执行,完成点击、滑动、输入等动作。

整个过程形成一个“感知-决策-执行”的闭环。而且,为了安全起见,系统内置了敏感操作确认机制。当检测到支付、删除等高风险行为时,会暂停并提示用户确认。在需要输入验证码或登录密码的场景,也支持人工临时接管,确保灵活性与安全性兼备。

3. 硬件与环境准备

在开始之前,先确认你的开发环境是否满足以下条件:

3.1 基础配置要求

  • 本地电脑操作系统:Windows 或 macOS(Linux 同理,但本文以 Win/Mac 为主)
  • Python 版本:建议使用 Python 3.10 或更高版本
  • 安卓设备:Android 7.0 及以上系统的手机或模拟器
  • 网络环境:USB 数据线(推荐原装),或确保手机与电脑处于同一局域网

3.2 安装 ADB 工具

ADB(Android Debug Bridge)是连接和控制安卓设备的核心工具。你需要先安装它,并配置好环境变量。

Windows 用户:
  1. 下载 Android SDK Platform Tools 并解压到本地目录(例如C:\platform-tools)。
  2. 按下Win + R,输入sysdm.cpl,打开“系统属性”。
  3. 进入“高级”选项卡 → “环境变量”。
  4. 在“系统变量”中找到Path,点击“编辑” → “新建”,添加你解压 platform-tools 的完整路径(如C:\platform-tools)。
  5. 打开命令提示符(CMD)或 PowerShell,输入:
    adb version
    如果返回类似Android Debug Bridge version 1.xx.xx的信息,说明安装成功。
macOS 用户:
  1. 下载并解压 platform-tools 到任意目录(例如~/Downloads/platform-tools)。
  2. 打开终端(Terminal),运行以下命令临时添加路径(每次新开终端需重复):
    export PATH=${PATH}:~/Downloads/platform-tools
    若想永久生效,可将上述命令添加到 shell 配置文件中(如~/.zshrc):
    echo 'export PATH=${PATH}:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc
  3. 验证安装:
    adb version

4. 手机端设置:开启调试权限

为了让电脑通过 ADB 控制手机,必须在手机上开启开发者权限。

4.1 开启开发者模式

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

4.2 启用 USB 调试

  1. 返回“设置”主菜单,进入“开发者选项”(通常在“系统”或“更多设置”中)。
  2. 找到“USB 调试”选项,勾选启用。
  3. 当你首次通过 USB 连接电脑时,手机会弹出“允许 USB 调试吗?”的提示,务必点击“允许”,并勾选“始终允许”。

4.3 安装 ADB Keyboard(可选但推荐)

这是一个特殊的输入法应用,允许你通过 ADB 命令向手机输入文字,避免因默认输入法不兼容导致无法输入中文或特殊字符。

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

5. 部署控制端代码(Open-AutoGLM)

现在回到本地电脑,准备运行控制程序。

5.1 克隆项目仓库

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

5.2 安装依赖

pip install -r requirements.txt pip install -e .

注意:建议在虚拟环境中操作,避免依赖冲突。可使用python -m venv venv && source venv/bin/activate(macOS/Linux)或venv\Scripts\activate(Windows)创建并激活虚拟环境。

6. 连接设备:USB 与 WiFi 双模式详解

6.1 USB 连接(稳定首选)

这是最简单、最稳定的连接方式,适合调试阶段。

  1. 使用数据线将手机连接电脑。
  2. 手机弹出“允许调试”提示时,点击“允许”。
  3. 在终端运行:
    adb devices
    正常输出应类似:
    List of devices attached 1234567890ABCDEF device
    其中1234567890ABCDEF就是你的设备ID。

6.2 WiFi 远程连接(无线自由)

当你希望摆脱数据线束缚,或远程控制不在身边的设备时,WiFi 模式非常实用。但首次配置仍需借助 USB。

第一步:通过 USB 启用 ADB over TCP/IP
# 先用 USB 连接,然后执行 adb tcpip 5555

这条命令会让手机监听 5555 端口的 TCP 连接。

第二步:断开 USB,通过 IP 连接
  1. 断开 USB 数据线。
  2. 查找手机的局域网 IP 地址(可在“设置”→“WLAN”→点击当前网络查看)。
  3. 在终端运行:
    adb connect 192.168.x.x:5555
    替换192.168.x.x为你的手机IP。成功后会显示:
    connected to 192.168.x.x:5555
  4. 再次运行adb devices,确认设备已连接。

小贴士:部分手机重启后会关闭 TCP 调试,需重新执行adb tcpip 5555。可考虑使用第三方工具如“无线调试”App简化流程。

7. 启动 AI 代理:下达第一条指令

一切就绪,现在让 AI 接管手机!

7.1 命令行快速启动

确保你的云服务器上的 vLLM 服务已启动,并映射了对外端口(如 8800)。在 Open-AutoGLM 目录下运行:

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

参数说明:

  • --device-id:从adb devices获取的设备ID或IP:端口(如192.168.1.100:5555
  • --base-url:云服务器上 vLLM 服务的公网地址和端口
  • --model:指定使用的模型名称
  • 最后的字符串:你的自然语言指令

执行后,你会看到 AI 开始截图、分析、生成操作步骤,并自动在手机上执行点击、搜索、关注等动作。

7.2 使用 Python API 灵活控制

如果你希望将 AutoGLM-Phone 集成到自己的项目中,可以直接调用其 Python 接口。

from phone_agent.adb import ADBConnection, list_devices # 创建 ADB 连接管理器 conn = ADBConnection() # 连接远程设备(WiFi) 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 if devices and devices[0].connection_type.value == "usb": success, msg = conn.enable_tcpip(5555) if success: ip = conn.get_device_ip() print(f"设备 IP: {ip}") # 断开连接 conn.disconnect("192.168.1.100:5555")

这段代码展示了如何编程化地管理设备连接,适用于批量控制或多设备调度场景。

8. 常见问题排查指南

即使严格按照步骤操作,也可能遇到一些小问题。以下是高频故障及解决方案:

8.1 ADB 无法识别设备

  • 现象adb devices显示unauthorized或无设备。
  • 解决
    • 检查手机是否弹出“允许调试”对话框,点击“允许”。
    • 重新插拔 USB 线,或更换接口/数据线。
    • 在开发者选项中关闭再重新开启“USB 调试”。

8.2 WiFi 连接失败

  • 现象adb connect提示“failed to connect”。
  • 解决
    • 确认手机与电脑在同一 WiFi 网络。
    • 确保已执行adb tcpip 5555
    • 检查手机防火墙或安全软件是否阻止了 ADB。
    • 尝试重启 ADB 服务:adb kill-server && adb start-server

8.3 模型无响应或乱码

  • 现象:AI 不执行操作,或输出乱码指令。
  • 解决
    • 检查--base-url是否正确指向 vLLM 服务的/v1接口。
    • 确认 vLLM 启动时设置了正确的--model--max-model-len参数。
    • 查看服务器日志是否有 CUDA 显存不足或请求超时错误。

8.4 输入中文失败

  • 现象:需要输入文字时,手机无反应。
  • 解决
    • 确保已安装并启用ADB Keyboard
    • 在“语言与输入法”中将其设为默认输入法。
    • 测试命令:adb shell am broadcast -a ADB_INPUT_TEXT --es msg "你好"

获取更多AI镜像

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 0:11:26

英语发音MP3下载:119,376个单词发音音频快速获取指南

英语发音MP3下载:119,376个单词发音音频快速获取指南 【免费下载链接】English-words-pronunciation-mp3-audio-download Download the pronunciation mp3 audio for 119,376 unique English words/terms 项目地址: https://gitcode.com/gh_mirrors/en/English-wo…

作者头像 李华
网站建设 2026/4/26 8:09:49

Apache Nifi is not starting: Management Server Address System Property问题已解决

文章目录 Apache Nifi is not starting: Management Server Address System Property问题已解决问题描述项目场景:原因分析:一、格式错误或系统属性未生效二、环境变量或 JVM 参数未正确传递三、端口冲突或不可用 解决方案:方案一&#xff1a…

作者头像 李华
网站建设 2026/4/25 6:54:16

Arduino ESP32安装攻略:3大技巧告别卡顿失败

Arduino ESP32安装攻略:3大技巧告别卡顿失败 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 想要在Arduino IDE中顺利使用ESP32开发板进行物联网项目开发吗?很多初…

作者头像 李华
网站建设 2026/4/27 19:45:15

多轮对话填空怎么搞?BERT上下文扩展实战解决方案

多轮对话填空怎么搞?BERT上下文扩展实战解决方案 1. BERT 智能语义填空服务 你有没有遇到过这样的场景:写文案时卡在一个词上,翻遍词典也找不到最贴切的那个字?或者读一段话发现缺了一个关键词,怎么读都觉得别扭&…

作者头像 李华
网站建设 2026/4/27 19:44:59

Qwen3-Embedding-0.6B缓存优化:Redis加速重复embedding查询教程

Qwen3-Embedding-0.6B缓存优化:Redis加速重复embedding查询教程 在实际业务中,我们经常遇到这样的问题:同一段文本被反复请求生成embedding向量——比如用户搜索关键词、商品标题标准化、FAQ问答库预处理、日志关键词聚类等场景。每次调用Qw…

作者头像 李华