如何让AI操作真实手机?Open-AutoGLM+ADB连接全步骤详解

1. 这不是科幻,是已经能跑通的真机自动化

你有没有想过,让AI像人一样“看”手机屏幕、“想”下一步该点哪、“动手”完成一整套操作?不是模拟器里的玩具,而是真正控制你手边那台安卓手机——打开App、输入文字、滑动页面、点击按钮、甚至处理验证码。这不是概念演示,也不是实验室Demo,而是智谱开源的Open-AutoGLM框架正在做的事。

它背后的核心能力来自AutoGLM-Phone:一个专为手机场景设计的视觉语言模型智能体(Phone Agent)。它不靠预设脚本,也不依赖固定UI结构,而是用多模态方式“理解”当前屏幕画面,再结合自然语言指令,实时推理、动态规划、精准执行。你说“打开小红书搜美食”,它会先识别首页图标,点击进入,再找搜索框,输入关键词,最后点搜索——全程自动,无需一行UI自动化代码。

更关键的是,它把“AI决策”和“设备控制”彻底解耦:视觉理解与任务规划在云端大模型完成,而点击、滑动、输入等动作,通过最成熟、最稳定的Android底层工具——ADB(Android Debug Bridge)下发到真实设备。这意味着,你不需要改App、不用越狱、不依赖特定厂商SDK,只要手机开了调试模式,就能被AI接管。

这篇文章不讲原理推导,不堆技术参数,只带你从零开始,把这套能力真正跑起来:本地电脑配好ADB,手机调好设置,控制端代码部署好,云端模型连得上,最后用一句大白话,让AI替你刷抖音、点关注、回消息。每一步都可验证,每一个命令都贴出来,遇到问题有明确排查路径。

2. 为什么是Open-AutoGLM?它解决了什么老难题

过去几年,手机自动化方案不少,但大多卡在三个地方:太脆弱、太封闭、太难用

  • 太脆弱:基于UI控件ID或坐标点的脚本,一旦App更新界面,整个流程就崩;截图比对方案又容易被阴影、字体、状态栏干扰。
  • 太封闭:很多商业方案只支持自家云服务或特定机型,无法本地部署,数据不出内网?做不到;想换模型?没接口。
  • 太难用:要写Python调用uiautomator2,要学ADB命令,要配环境变量,还要处理权限弹窗、输入法切换、网络超时……新手三天都搭不起来。

Open-AutoGLM直接绕开了这些坑:

  • 它用视觉语言模型(VLM)做“屏幕理解”,看到的就是用户看到的——图标、文字、按钮位置、当前状态,全部从像素里读出来。App怎么改版,它都能重新“认”。
  • 它把AI大脑(模型推理)和手脚(设备控制)分开。模型可以跑在你自己的GPU服务器上,ADB控制端完全本地运行,数据全程可控。
  • 它把复杂封装成一句话:“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”。你不需要知道“先按home键→再滑动→再点搜索图标→再输入文字→再点放大镜”,AI自己拆解、自己执行、自己校验结果。

更重要的是,它不是“全自动就完事了”的激进派。系统内置敏感操作确认机制:当检测到支付、删除、授权等高危动作时,会暂停并等待人工确认;遇到登录页、验证码弹窗这类AI暂时搞不定的环节,也能立刻交还控制权,让你手动输完再继续。这种“人在环路”的设计,让它既强大,又可靠。

3. 本地控制端搭建:从装ADB到连上真机

服务端(模型)我们先默认已部署好(后文会说明如何确认),现在聚焦本地电脑——这是你指挥AI的“指挥中心”。所有操作都在这里完成:连接手机、发送指令、接收反馈。

3.1 硬件与基础环境准备

你不需要高端配置,一台日常办公的电脑足矣:

  • 操作系统:Windows 10/11 或 macOS Monterey 及以上(Apple Silicon芯片需额外注意Python包兼容性,后文提示)
  • Python:强烈建议使用 Python 3.10(不是3.11或3.12,部分依赖库尚未完全适配)。可通过 python.org 下载安装,勾选“Add Python to PATH”。
  • 安卓设备:一部 Android 7.0(Nougat)及以上的真机或模拟器(推荐真机,体验最真实)。确保电量充足,最好接上充电线。
  • ADB 工具:这是整个链条的“神经末梢”,必须正确安装并加入系统路径。
ADB 安装与环境变量配置

Windows 用户

platform-tools-latest-windows.zipC:\adbWin + Rsysdm.cplPathC:\adbadb versionAndroid Debug Bridge version 1.0.41

macOS 用户

platform-tools-latest-darwin.zip~/Downloads/platform-tools
echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc
source ~/.zshrc
如何让AI操作真实手机?Openadb version
adb versioncommand not foundbad CPU typedarwin-arm64brew install android-platform-tools

3.2 手机端关键设置:三步打通“任督二脉”

电脑配好了,手机才是真正的“执行者”。这三步设置缺一不可,且顺序不能乱:

adb shell input text "xxx"

3.3 部署控制端代码:克隆、安装、验证

现在,本地环境和手机都已就绪,我们来部署Open-AutoGLM的控制端。

  1. 克隆仓库
    打开终端(Windows用CMD/PowerShell,macOS用Terminal),执行:
git clone https://github.com/zai-org/Open-AutoGLM
cd Open-AutoGLM
  1. 安装依赖
    确保你已激活Python 3.10环境,然后运行:
pip install -r requirements.txt
pip install -e .
-e .
  1. 验证ADB连接
    用USB数据线将手机连接电脑。确保手机弹出“允许USB调试吗?”的提示,勾选“始终允许”并点确定。
    回到终端,输入:
adb devices
ZY223456789 deviceunauthorized

4. 设备连接实战:USB直连与WiFi远程双模式

ADB提供了两种主流连接方式:稳定可靠的USB直连,和灵活自由的WiFi无线连接。我们分别实操。

4.1 USB直连:新手首选,一步到位

这是最简单、延迟最低的方式,适合初次验证和日常调试。

adb devicesdeviceadb devicesZY223456789--device-id

4.2 WiFi远程连接:摆脱线缆,实现真·远程控制

当你需要在客厅沙发用笔记本控制卧室床头柜上的手机,或者在办公室电脑控制家里测试机时,WiFi模式就派上用场了。它分两步走,且必须先用USB完成初始化

  1. USB初始化TCP/IP端口
    手机仍用USB连接,终端执行:
adb tcpip 5555
restarting in TCP mode port: 5555
192.168.x.x192.168.x.x
adb connect 192.168.x.x:5555
connected to 192.168.x.x:5555adb devices192.168.x.x:5555 device
failed to connect to '192.168.x.x:5555'

5. 启动AI代理:用一句话指挥真机

所有前置条件都已满足,现在进入最激动人心的环节:让AI真正“上手”操作你的手机。

5.1 命令行一键启动:最简实践

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

参数详解:

--device-idadb devicesIP:端口--base-urlhttp://<服务器IP>:<端口>/v1192.168.1.1008800http://192.168.1.100:8800/v1--modelautoglm-phone-9b

执行后,你会看到终端滚动输出:

[INFO] Capturing screen...[INFO] Planning action: CLICK on '抖音' icon[INFO] Executing: adb shell input tap 500 1200[INFO] Waiting for new screen...

几秒后,你的手机屏幕上就会真实发生这一切:抖音App启动、搜索框被点击、文字被输入、搜索结果出现、目标博主头像被点击、关注按钮被按下。整个过程,你只需看着,无需动手。

5.2 Python API集成:嵌入你自己的项目

如果你希望把这个能力集成到自己的Web后台、桌面工具或自动化流水线中,Open-AutoGLM 提供了干净的Python API。

以下是一个完整、可运行的连接与操作示例:

from phone_agent.adb import ADBConnection, list_devices

# 创建ADB连接管理器
conn = ADBConnection()

# 尝试连接WiFi设备(替换为你的手机IP)
success, message = conn.connect("192.168.1.100:5555")
print(f"连接状态: {message}")

# 列出所有已连接设备
devices = list_devices()
for device in devices:
    print(f"设备ID: {device.device_id}, 连接类型: {device.connection_type.value}")

# (可选)为USB设备启用TCP/IP,方便后续转WiFi
# success, message = conn.enable_tcpip(5555)
# ip = conn.get_device_ip()
# print(f"设备IP: {ip}")

# 断开连接
conn.disconnect("192.168.1.100:5555")

这段代码展示了如何用代码方式管理ADB连接。它的价值在于:你可以把它作为模块,嵌入到Flask/FastAPI后端中,前端用户提交一句指令,后端就调用此API连接设备、调用Open-AutoGLM的推理接口,最终返回操作日志和截图。真正的“AI手机管家”雏形,就此诞生。

6. 常见问题排查:让每一次连接都稳稳当当

即使步骤都对,实操中也可能遇到“看似正常,实则卡住”的情况。以下是高频问题与直击要害的解决方案:

adb devicesunauthorizedpython main.py ...Capturing screen...adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png ./adb kill-server && adb start-serverConnection refused--base-urlhttp://<服务器IP>:<端口>/v1/modelsps aux | grep vllmsudo ufw allow 8800--base-url/v1

7. 总结:从“能用”到“好用”的下一步

到这里,你已经亲手完成了AI操控真机的全流程:从ADB环境配置、手机开发者设置、控制端部署,到用一句自然语言触发完整操作。这不是一个孤立的Demo,而是一套可扩展、可定制、可落地的技术栈。

它证明了一件事:AI Agent的“手”和“眼”,完全可以脱离模拟器,在真实世界中工作。Open-AutoGLM的价值,不仅在于它能做什么,更在于它怎么做的哲学——用最成熟的工业级工具(ADB)做执行,用最先进的多模态模型(VLM)做感知与决策,两者解耦,各司其职。

接下来,你可以轻松地:

  • 把它变成你的个人效率工具:每天自动整理微信收藏、定时抓取竞品价格、批量给通讯录好友发节日祝福;
  • 集成到企业内部系统:客服工单自动跳转App查订单、HR系统一键生成入职指引视频;
  • 甚至参与开源共建:为Open-AutoGLM贡献新的手机型号适配、优化截图策略、增加iOS支持(需配合其他工具链)。

技术的门槛,从来不在概念,而在第一步的“跑通”。你已经跨过了这道坎。现在,拿起你的手机,打开终端,输入那句属于你的指令——让AI,真正开始工作。


获取更多AI镜像

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