Open-AutoGLM新手教程:从安装到远程控制全流程
1. 这不是另一个自动化工具,而是一个能“看懂”手机屏幕的AI助手
你有没有试过让手机自己完成一连串操作?比如“打开小红书,搜‘周末咖啡馆’,点开第三条笔记,截图发给微信好友”——过去这需要写脚本、反复调试坐标、处理弹窗,现在,Open-AutoGLM 让它变成一句话的事。
这不是概念演示,也不是实验室玩具。它是智谱AI开源的真实可用的手机端AI Agent框架,核心能力就三点:看得见(理解当前屏幕)、听得懂(解析自然语言指令)、动得了(通过ADB自动点击、滑动、输入)。它不依赖预设规则,而是像人一样观察界面、推理意图、规划动作。
这篇文章不讲大道理,只带你从零开始:
在你的电脑上装好控制端
让你的安卓手机被正确识别
配好输入法,解决中文乱码问题
启动本地模型服务或连接云端API
用一句“打开抖音搜dycwo11nt61d并关注”,亲眼看到手机自己执行全过程
进阶:WiFi远程控制、多设备并发、调试每一步决策
全程不需要你懂深度学习,只要你会用命令行、会点手机设置。我们跳过所有“理论上可行”的环节,只保留真正跑得通的步骤。
2. 准备工作:三件套缺一不可
在敲下第一行代码前,请确认你手边有这三样东西。少一样,后面90%的问题都出在这里。
2.1 你的电脑:系统与Python环境
- 操作系统:Windows 10/11、macOS 12+ 或 Ubuntu 20.04+(Linux用户最省心)
- Python版本:必须是3.10 或 3.11(3.12暂未完全适配,3.9以下会报错)
快速验证:打开终端,输入
python --version,看到Python 3.10.x或Python 3.11.x就行 - 注意:Windows用户强烈建议用WSL2(Windows Subsystem for Linux),原生CMD/PowerShell容易遇到编码和路径问题。这不是可选项,是避坑刚需。
2.2 你的安卓手机:不止要能开机,还要“能对话”
- 系统版本:Android 7.0(Nougat)及以上(2016年后的主流机型基本都满足)
- 关键设置:必须开启开发者模式和USB调试
怎么开?
- 进入「设置」→「关于手机」→ 连续点击「版本号」7次,直到弹出“您已处于开发者模式”
- 返回「设置」主菜单 → 找到并进入「开发者选项」→ 开启「USB调试」
- 别漏了这个:有些手机(如小米、华为)还需开启「USB调试(安全设置)」,否则ADB只能识别设备,无法操作
2.3 ADB工具:手机与电脑之间的“翻译官”
ADB(Android Debug Bridge)是整个流程的底层通信桥梁。它不是可选插件,而是必须安装的基础工具。
macOS用户(推荐):
# 先装Homebrew(如果还没装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 再装ADB brew install android-platform-tools # 验证 adb versionUbuntu/Debian用户:
sudo apt update && sudo apt install android-tools-adb android-tools-fastboot adb versionWindows用户(WSL2内操作):
sudo apt update && sudo apt install android-tools-adb android-tools-fastboot adb version如果坚持用原生Windows,请去 Google官方平台工具页 下载zip包,解压后把文件夹路径加到系统环境变量PATH里。但再次提醒:WSL2体验更稳。
3. 手机端配置:两步搞定,告别“输入乱码”
很多新手卡在第一步:手机能连上,但AI让输“小红书”,屏幕上却蹦出一堆问号或英文。根源只有一个——没装对输入法。Open-AutoGLM靠ADB Keyboard模拟输入,它专为命令行设计,支持中文,但需要手动启用。
3.1 安装ADB Keyboard(5秒完成)
在你的电脑终端里,执行这一行命令(自动下载+安装):
curl -O https://github.com/senzhk/ADBKeyBoard/raw/master/ADBKeyboard.apk && adb install ADBKeyboard.apk成功提示是
Success。如果报错adb: no devices/emulators found,说明手机没连好或USB调试没开,请回退到第2节检查。
3.2 启用并设为默认输入法(关键!)
安装完只是第一步,必须告诉手机:“以后所有文字输入,都交给ADB Keyboard来干”。
在终端里,一次性执行这三行:
adb shell ime enable com.android.adbkeyboard/.AdbIME adb shell ime set com.android.adbkeyboard/.AdbIME adb shell settings get secure default_input_method最后一行输出必须是
com.android.adbkeyboard/.AdbIME。如果不是,请重复执行前两行。
为什么这步不能跳?
因为安卓系统默认输入法(如Gboard、百度输入法)无法被ADB命令直接调用。只有ADB Keyboard这个“为命令行而生”的输入法,才能精准接收adb shell input text "小红书"这样的指令,并正确渲染中文。
4. 控制端部署:克隆、安装、启动,三步到位
现在,你的电脑和手机已经“握手成功”,接下来是让AI大脑上线。
4.1 克隆代码并创建纯净环境
别直接在系统Python里装,用虚拟环境隔离,避免依赖冲突:
git clone https://github.com/zai-org/Open-AutoGLM.git cd Open-AutoGLM python3 -m venv venv source venv/bin/activate # Windows用户用:venv\Scripts\activate4.2 安装依赖(重点:vLLM必须装)
Open-AutoGLM本身轻量,但它的“眼睛”(视觉模型)需要vLLM推理框架驱动。这一步决定你后续能不能跑起来:
pip install --upgrade pip pip install -r requirements.txt pip install vllm==0.6.3.post1 # 指定版本,新版有兼容问题 pip install -e .验证安装:
python -c "from phone_agent import PhoneAgent; print(' 控制端安装成功')"
4.3 连接手机:USB直连是最稳的起点
用数据线把手机连到电脑,然后在终端运行:
adb devices正确输出长这样:
List of attached devices 1234567890abcdef device如果显示
unauthorized,请在手机弹出的授权框里点“允许”或“始终允许”。
5. 模型服务:本地启动 or 云端接入?选一个马上开干
Open-AutoGLM的“大脑”可以自己部署,也可以直接调用现成的云服务。新手强烈建议先走云端路线,5分钟就能看到效果;等熟悉了再挑战本地部署。
5.1 方案A:零配置,用z.ai云服务(推荐新手)
z.ai提供免费额度,无需GPU,开箱即用:
- 访问 z.ai注册页,注册账号(邮箱即可)
- 登录后,在Dashboard找到API Key(一串以
sk-开头的字符) - 在终端里,用这一行命令让AI开始干活:
python main.py \ --device-id $(adb devices | sed -n '2p' | awk '{print $1}') \ --base-url https://api.z.ai/api/paas/v4 \ --model autoglm-phone-9b \ --apikey YOUR_API_KEY_HERE \ "打开淘宝搜索iPhone 15"替换
YOUR_API_KEY_HERE为你自己的密钥。执行后,你会看到手机自动亮屏、解锁(如果锁屏)、打开淘宝、输入搜索词、点击搜索——全程无人干预。
5.2 方案B:本地部署vLLM服务(适合有GPU用户)
如果你有RTX 3090/4090或A100显卡,想完全掌控模型,按此步骤:
# 启动vLLM服务(需10-20分钟首次下载模型) python3 -m vllm.entrypoints.openai.api_server \ --model zai-org/AutoGLM-Phone-9B-Multilingual \ --served-model-name autoglm-phone-9b-multilingual \ --port 8000 \ --max-model-len 25480 \ --mm-processor-cache-type shm \ --mm-processor-kwargs "{\"max_pixels\":5000000}"启动成功后,终端会显示
Uvicorn running on http://0.0.0.0:8000。
然后用这行命令测试:curl http://localhost:8000/v1/models有JSON返回,说明服务活了。
5.3 本地调用:把上面的URL换成你的localhost
服务跑起来后,命令只需改两个地方:
python main.py \ --device-id $(adb devices | sed -n '2p' | awk '{print $1}') \ --base-url http://localhost:8000/v1 \ # ← 改这里 --model autoglm-phone-9b-multilingual \ # ← 改这里 "打开高德地图,搜索最近的加油站"6. 远程控制:扔掉数据线,让手机在隔壁房间听你指挥
USB线连着虽然稳定,但不够酷。WiFi远程控制才是Open-AutoGLM的真正亮点——手机放桌上,你在沙发上发指令,它照样执行。
6.1 两种WiFi连接法,总有一种适合你
方法1:Android 11+ 原生无线调试(最简单)
- 手机连WiFi,进「开发者选项」→ 开启「无线调试」
- 点击「无线调试」→ 「使用配对码配对设备」→ 记下IP、端口、配对码
- 电脑终端执行:
adb pair 192.168.1.100:37847 # IP和端口替换成你手机显示的 # 输入配对码,回车 adb connect 192.168.1.100:5555 # 连接端口通常是5555
方法2:通用TCP/IP模式(所有安卓都支持)
- 先用USB线连好手机,确保
adb devices能识别 - 执行:
adb tcpip 5555 # 让手机监听5555端口 - 拔掉USB线,查手机WiFi IP(设置→WiFi→点当前网络→IP地址)
- 执行:
adb connect 192.168.1.100:5555 # 替换为你手机的真实IP
- 先用USB线连好手机,确保
6.2 远程执行命令:参数里指定IP就行
连接成功后,命令和之前几乎一样,只加一个--device-id:
python main.py \ --device-id 192.168.1.100:5555 \ # ← 关键!填你手机的IP:端口 --base-url https://api.z.ai/api/paas/v4 \ --model autoglm-phone-9b \ --apikey YOUR_API_KEY \ "截个当前屏幕图,用微信发给文件传输助手"手机不用插线,只要在同一WiFi下,指令秒达。
7. 故障排查:90%的问题,都在这五个检查点
部署时出错?别急着重装。先按顺序检查这五点,80%的问题当场解决。
7.1 “adb devices 显示空”?检查物理层
- USB线是否支持数据传输?(换一根确认,很多充电线不行)
- 手机是否弹出“允许USB调试”对话框?点了“允许”没?
- 开发者选项里,“USB调试”和“USB调试(安全设置)”是否都开了?
- 重启ADB服务:
adb kill-server && adb start-server
7.2 “输入中文变乱码”?回到第3.2节
adb shell settings get secure default_input_method输出是否为com.android.adbkeyboard/.AdbIME?- 如果是Windows原生环境,加这行再运行:
$env:PYTHONIOENCODING="utf-8"7.3 “模型服务连不上”?分两头查
- 本地服务:
curl http://localhost:8000/v1/models是否返回JSON?- 否 → 查vLLM启动日志,常见错误:CUDA显存不足(需24GB+)、模型下载中断(删掉
~/.cache/huggingface重试)
- 否 → 查vLLM启动日志,常见错误:CUDA显存不足(需24GB+)、模型下载中断(删掉
- 云端服务:
curl -H "Authorization: Bearer YOUR_KEY" https://api.z.ai/api/paas/v4/models- 否 → 检查API Key是否复制完整,有无空格;或访问z.ai控制台看服务状态
7.4 “任务执行一半卡住”?看屏幕状态
Open-AutoGLM依赖实时截图做决策。如果手机屏幕黑了、锁屏了、或者弹出权限请求(如“允许XX访问位置”),它会停住等待。
解决方案:
- 手机保持亮屏(设置→显示→休眠时间调长)
- 关闭锁屏密码(或设置为“无”)
- 首次运行时,手动点掉所有系统弹窗(如“允许存储访问”)
7.5 “执行结果不对”?用详细模式看AI怎么想的
加--verbose参数,让AI把每一步思考和动作都打印出来:
python main.py --verbose --device-id ... "打开微信发消息"你会看到类似:
[思考] 当前屏幕在桌面,需要找到微信图标 [动作] Tap on element at [320, 650] [思考] 已进入微信,首页有“聊天”列表,需点击“文件传输助手” [动作] Scroll and tap on "文件传输助手"这比盲猜快十倍。
8. 进阶玩法:让一个AI同时管三台手机
公司测试组要批量测App?家里有三台旧手机当智能中控?Open-AutoGLM原生支持多设备并发。
8.1 查看所有已连接设备
adb devices -l # -l参数显示详细信息输出示例:
1234567890abcdef device product:star2qltezc model:SM_G9650 device:star2qltesq transport_id:1 9876543210fedcba device product:walleye model:Pixel_2 device:walleye transport_id:2
8.2 Python脚本并发控制(抄作业版)
把下面代码保存为multi_control.py,修改设备ID和任务,一键启动:
from concurrent.futures import ThreadPoolExecutor from phone_agent import PhoneAgent from phone_agent.model import ModelConfig # 配置你的模型服务(这里用z.ai云服务) model_config = ModelConfig( base_url="https://api.z.ai/api/paas/v4", model_name="autoglm-phone-9b", api_key="YOUR_API_KEY" ) # 定义设备ID和对应任务 tasks = { "1234567890abcdef": "打开Chrome,访问csdn.net", "9876543210fedcba": "打开微博,搜索#AI#", "abcdef1234567890": "打开知乎,搜索‘大模型入门’" } def run_on_device(device_id, task): agent = PhoneAgent(model_config=model_config, device_id=device_id) try: result = agent.run(task, timeout=120) # 2分钟超时 return f" {device_id[:6]}: {task[:20]}... → {result[:50]}" except Exception as e: return f" {device_id[:6]}: {str(e)[:50]}" # 并发执行(最多3台同时跑) with ThreadPoolExecutor(max_workers=3) as executor: results = list(executor.map(lambda x: run_on_device(*x), tasks.items())) for r in results: print(r)运行
python multi_control.py,三台手机将同步开始执行各自的任务。
9. 总结:你现在已经掌握了移动AI自动化的钥匙
回顾一下,你刚刚完成了什么:
🔹 让一台普通安卓手机,具备了“看、听、动”的AI能力
🔹 绕过了所有复杂的UI自动化脚本,用自然语言下达指令
🔹 实现了USB直连、WiFi远程、多设备并发三种控制模式
🔹 掌握了从环境配置、故障排查到进阶开发的全链路技能
Open-AutoGLM的价值,不在于它多炫技,而在于它把过去需要专业工程师花几天写的自动化脚本,压缩成了一句话。电商运营批量上架商品、测试工程师回归验证、老人子女远程帮操作手机……这些场景,现在都变得触手可及。
下一步,你可以:
➡ 尝试更复杂的指令,比如“对比京东和淘宝上同款耳机的价格,截图发我”
➡ 把常用指令写成Shell脚本,一键执行
➡ 结合Cron定时任务,让手机每天早上8点自动抓取天气预报
技术的意义,从来不是堆砌参数,而是让复杂变简单。你已经跨过了那道门槛。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。