Open-AutoGLM开发者模式开启详细步骤
本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现安卓设备的智能自动化操作。通过平台一键部署模型服务与控制端,用户可快速开展UI交互任务,如自动打开应用、发送消息、批量设备测试等典型移动端AI Agent应用场景。
Open-AutoGLM开发者模式开启详细步骤
1. 什么是Open-AutoGLM的“开发者模式”
1.1 开发者模式的本质不是开关,而是能力组合
很多人第一次看到“开发者模式”会下意识认为这是个像手机设置里那样点一下就能打开的开关。其实不然——Open-AutoGLM没有一个叫“开发者模式”的独立功能按钮。所谓开发者模式,是指你完整打通从本地控制端、设备连接、模型服务到任务执行的全链路能力。它意味着你能:
- 看见每一步AI在想什么(不是黑盒调用,而是输出思考过程)
- 自由更换设备、切换本地/远程模型、调整参数
- 在代码里直接调用核心类,而不是只依赖命令行
- 遇到问题时能定位到ADB层、模型层还是逻辑层
换句话说,开发者模式 = 可观察 + 可干预 + 可扩展。它不是终点,而是你真正开始定制和深入使用的起点。
1.2 为什么必须手动配置?自动部署为什么不够
Open-AutoGLM镜像(如vLLM-Omni平台上的预置镜像)通常已预装模型服务和基础依赖,但它无法自动完成设备侧配置。原因很实在:
- ADB调试权限必须由用户在手机上手动点击“允许”,系统不允许远程授权
- ADB Keyboard输入法需要用户主动启用并设为默认,涉及Android安全策略
- 每台手机的IP地址、设备ID、USB连接状态都不同,无法统一预设
- 开发者需要根据实际网络环境选择USB直连、WiFi直连或远程云设备,路径不可预测
所以,镜像给你的是“引擎”,而开发者模式是你亲手把方向盘、油门、后视镜都装好,并确认每颗螺丝都拧紧的过程。
2. 四步走通开发者模式:从零到可调试
2.1 第一步:让电脑真正“看见”你的手机
这一步失败,后面全部归零。别跳过验证环节。
2.1.1 ADB安装与路径确认(三系统统一检查法)
无论你用Windows、macOS还是Linux,请在终端/命令提示符中执行这一行:
adb version 2>/dev/null || echo "ADB未安装或未加入PATH"
- 如果输出类似
Android Debug Bridge version 1.0.41→ 通过 - 如果提示
command not found或不是内部或外部命令→ 需重装或配PATH
快速自查清单(不用翻教程):
- Windows:打开命令提示符,输入
where adb,应返回类似C:\platform-tools\adb.exe - macOS:打开终端,输入
which adb,应返回/opt/homebrew/bin/adb或/usr/local/bin/adb - Linux:输入
which adb,应返回/usr/bin/adb或/usr/local/bin/adb
注意:
adb命令必须能在任意目录下运行,不能只在 platform-tools 文件夹里才有效。这是PATH没配对的典型表现。
2.1.2 手机端“允许调试”必须亲手点三次
很多用户卡在这一步,却以为是电脑问题。请严格按顺序操作:
- 先连USB线(确认是数据线!插上后手机通知栏应有“正在通过USB充电”提示,不是“仅充电”)
- 手机弹窗出现“允许USB调试吗?” → 点击 “允许”(不是“确定”,不是“始终允许”,就是这一次)
- 立即在电脑执行
adb devices- 若显示
unauthorized→ 断开USB,进手机「开发者选项」→「撤销USB调试授权」→ 重连 → 再点“允许” - 若仍不显示设备 → 换USB口、换线、重启手机ADB(
adb kill-server && adb start-server)
- 若显示
正确输出示例:
List of attached devices
ZY22528XJ7 device
2.1.3 ADB Keyboard不是装完就完事,必须“激活+设默认”
很多用户装了APK却输不出中文,根源在此:
# 1. 确认APK已安装(输出应含com.android.adbkeyboard)
adb shell pm list packages | grep adbkeyboard
# 2. 确认已启用(输出应含enabled)
adb shell ime list -s
# 3. 设为默认(关键!必须执行)
adb shell ime set com.android.adbkeyboard/.AdbIME
# 4. 验证是否生效(输出必须是这一串)
adb shell settings get secure default_input_method
# 正确返回:com.android.adbkeyboard/.AdbIME
如果第4步返回空或别的包名,说明没生效。请勿跳过第3步。
2.2 第二步:本地模型服务启动——不是“跑起来就行”,而是“稳住再用”
你不需要自己训练模型,但必须让vLLM服务稳定承载AutoGLM-Phone-9B。重点不在参数多,而在避坑。
2.2.1 最简启动命令(适合首次验证)
别一上来就抄长命令。先用这个最小集验证服务能否跑通:
python3 -m vllm.entrypoints.openai.api_server \
--model zai-org/AutoGLM-Phone-9B-Multilingual \
--port 8000 \
--max-model-len 25480 \
--tensor-parallel-size 1
--tensor-parallel-size 1:强制单卡,避免多卡初始化失败--port 8000:固定端口,方便后续脚本引用- 其他参数(如mm-processor、cache-type)首次可省略,等基础服务跑通再加
启动成功标志:终端最后几行出现
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: Started reloader process [xxxx] using statreload
2.2.2 三秒验证服务是否真活(比curl更准)
别只信curl返回200。用这个命令看模型是否加载完成:
curl -s http://localhost:8000/v1/models | jq -r '.data[0].id' 2>/dev/null || echo "服务未响应或模型未加载"
- 如果输出
autoglm-phone-9b-multilingual(或你设的served-model-name)→ 模型已就绪 - 如果超时或报错 → 检查vLLM日志里是否有
OSError: CUDA out of memory或Failed to load model
小技巧:首次启动会下载20GB模型权重,网速慢时可能卡在
Loading model weights十几分钟。耐心等待,不要中断。
2.3 第三步:控制端代码部署——克隆、装包、验模块,三步闭环
这一步的目标是:让你的Python能import PhoneAgent,并能创建实例。
2.3.1 创建干净虚拟环境(强烈建议)
git clone https://github.com/zai-org/Open-AutoGLM.git
cd Open-AutoGLM
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
2.3.2 安装依赖的“黄金顺序”
pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
pip install vllm==0.6.3.post1 # 用文档指定版本,避免兼容问题
pip install -e .
验证安装:运行
python -c "from phone_agent import PhoneAgent; print(' PhoneAgent可导入')"若报错
ModuleNotFoundError,90%是-e .没执行,或当前目录不是Open-AutoGLM根目录。
2.3.3 用一行代码测通全链路(比main.py更轻量)
在项目根目录下,新建 test_dev_mode.py:
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
# 用你的真实设备ID(adb devices第一列)
device_id = "ZY22528XJ7"
model_config = ModelConfig(
base_url="http://localhost:8000/v1",
model_name="autoglm-phone-9b-multilingual"
)
agent = PhoneAgent(model_config=model_config, device_id=device_id)
print(" PhoneAgent实例创建成功")
print(" 设备连接状态:", "已连接" if agent.adb.is_connected() else "未连接")
运行它:python test_dev_mode.py
- 输出两行 → 开发者模式主干已通
- 若卡在
adb.is_connected()→ 回头检查2.1节设备连接 - 若报vLLM连接错误 → 回头检查2.2节服务是否监听0.0.0.0(不是127.0.0.1)
2.4 第四步:进入开发者模式——用verbose看透AI每一步
现在,你拥有了所有零件。真正的开发者模式,从加一个参数开始。
2.4.1 命令行开启“透视眼”模式
python main.py \
--device-id ZY22528XJ7 \
--base-url http://localhost:8000/v1 \
--model autoglm-phone-9b-multilingual \
--verbose \
"打开微信,给文件传输助手发一条‘你好’"
你会看到类似这样的输出:
==================================================
【视觉理解】已截取屏幕,图像尺寸 1080x2340,送入模型分析...
--------------------------------------------------
【AI思考】当前界面是微信主屏,底部有“微信”“通讯录”“发现”“我”四个tab。
任务需进入聊天页,应先点击右上角“+”号,再选“发起群聊”?不对,目标是“文件传输助手”。
该联系人位于通讯录顶部,但当前在主屏,需先点击“通讯录”tab。
--------------------------------------------------
【执行动作】Tap at (540, 2200) → 点击通讯录tab
==================================================
【视觉理解】新截图已获取,当前为通讯录列表页...
--------------------------------------------------
【AI思考】“文件传输助手”在列表顶部,坐标约为(540, 320),直接点击即可。
--------------------------------------------------
【执行动作】Tap at (540, 320) → 点击文件传输助手
==================================================
【视觉理解】新截图已获取,当前为聊天窗口...
--------------------------------------------------
【AI思考】输入框在底部,需先点击激活,再输入文字。
--------------------------------------------------
【执行动作】Tap at (540, 2250) → 点击输入框
【执行动作】Input text: 你好
【执行动作】Press enter
这就是开发者模式的核心价值:你不再猜测AI为什么失败,而是亲眼看到它在哪一步理解错了、坐标算偏了、或者误判了UI结构。
2.4.2 Python API中开启调试(用于集成开发)
在你的业务代码里,这样写:
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
agent = PhoneAgent(
model_config=ModelConfig(
base_url="http://localhost:8000/v1",
model_name="autoglm-phone-9b-multilingual"
),
device_id="ZY22528XJ7",
verbose=True # 👈 关键!开启详细日志
)
result = agent.run("截图当前屏幕并保存为debug.png")
print("任务结果:", result)
verbose=True 会把所有ADB命令、截图路径、模型请求/响应体(脱敏后)都打印出来,帮你精准定位是设备没响应,还是模型返回了空动作。
3. 开发者模式下的高频实战场景
3.1 场景一:任务中途人工接管——当AI卡在验证码时
AutoGLM-Phone内置了人工接管机制,但需要你主动触发:
python main.py \
--device-id ZY22528XJ7 \
--base-url http://localhost:8000/v1 \
--model autoglm-phone-9b-multilingual \
--manual-intervention \
"登录淘宝账号"
- 当AI识别到验证码图片、滑块、短信弹窗等敏感操作时,会暂停并输出:
检测到人工验证环节,请手动完成,完成后按回车继续... - 你操作手机完成验证后,敲回车,AI继续后续流程
- 这个开关让自动化不再是“全有或全无”,而是人机协同的务实方案
3.2 场景二:批量测试多台设备——用代码代替重复劳动
你有3台测试机?不用一台台连。用这段代码并发跑:
from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
from concurrent.futures import ThreadPoolExecutor
devices = ["ZY22528XJ7", "R58M908TQ9F", "192.168.1.100:5555"] # USB ID + WiFi IP
tasks = ["打开设置", "打开Chrome", "打开相机"]
def run_on_device(device_id, task):
agent = PhoneAgent(
model_config=ModelConfig(
base_url="http://localhost:8000/v1",
model_name="autoglm-phone-9b-multilingual"
),
device_id=device_id,
verbose=False
)
return f"{device_id}: {agent.run(task)[:50]}..."
with ThreadPoolExecutor(max_workers=3) as executor:
results = list(executor.map(run_on_device, devices, tasks))
for r in results:
print(r)
效果:3台设备同时执行不同任务,总耗时≈单台耗时,不是3倍。
3.3 场景三:自定义动作逻辑——当标准Tap/Text不够用时
PhoneAgent.run() 是高层封装,但开发者模式允许你绕过它,直接调用底层能力:
from phone_agent.adb import ADBConnection
from phone_agent.screenshot import ScreenshotManager
conn = ADBConnection()
conn.connect("ZY22528XJ7")
# 1. 截图并保存到本地供你分析
screenshot = ScreenshotManager(conn).take_screenshot()
screenshot.save("debug_screen.png") # 生成可查看的PNG
# 2. 手动执行ADB命令(比如强制停止某个APP)
conn.shell("am force-stop com.taobao.taobao")
# 3. 或者用OpenCV做自定义图像识别(非AutoGLM内置)
import cv2
img = cv2.imread("debug_screen.png")
# ... 你的OpenCV逻辑,比如找“同意”按钮坐标
# 然后 conn.tap(x, y)
这才是开发者模式的终极自由:AI是你的副驾驶,而方向盘永远在你手里。
4. 开发者模式避坑指南:那些文档没写的细节
4.1 ADB连接不稳定?试试这个“保活”命令
WiFi连接时,ADB常因休眠断开。加一行保活:
# 在设备上执行(只需一次)
adb shell settings put global adb_enabled 1
adb shell settings put global stay_on_while_plugged_in 3
stay_on_while_plugged_in 3表示充电时保持屏幕常亮(值3=充电+USB+AC)- 配合
adb connect IP:5555,可大幅降低掉线率
4.2 中文乱码?不是编码问题,是字体缺失
如果你在手机上看到“????”而非中文,不是Python编码错了,而是ADB Keyboard没加载中文字体:
# 重新安装带中文支持的ADB Keyboard
adb uninstall com.android.adbkeyboard
adb install https://github.com/senzhk/ADBKeyBoard/releases/download/v1.0/ADBKeyboard.apk
adb shell ime set com.android.adbkeyboard/.AdbIME
验证:在手机上随便点个输入框,用电脑执行
adb shell input text "测试",应显示“测试”二字。
4.3 模型响应慢?先关掉“过度思考”
AutoGLM-Phone默认会做多步规划,但简单任务不需要。加参数提速:
python main.py \
--device-id ZY22528XJ7 \
--base-url http://localhost:8000/v1 \
--model autoglm-phone-9b-multilingual \
--max-steps 3 \ # 限制最多3步动作,避免无限循环
--temperature 0.01 \ # 降低随机性,让输出更确定
"返回桌面"
--max-steps是防呆关键,防止AI在“找不到返回键”时反复截图--temperature 0.01让模型更“听话”,少“发挥创意”
5. 总结:开发者模式不是终点,而是你掌控力的起点
5.1 你现在已经拥有的能力
- 能让任意安卓设备(7.0+)通过USB或WiFi被你的电脑精准控制
- 能本地启动AutoGLM-Phone模型服务,并验证其可用性
- 能用
--verbose参数实时查看AI的视觉理解、思考逻辑和动作执行 - 能在任务中人工接管,也能用Python API并发操控多台设备
- 能绕过高层封装,直接调用ADB、截图、自定义图像识别等底层能力
5.2 下一步你可以探索的方向
- 定制化提示词工程:修改
phone_agent/prompt.py里的system prompt,让AI更懂你的业务术语 - 私有模型微调:用你自己的APP截图数据,微调视觉编码器(需GPU)
- 集成进CI/CD:把
python main.py命令写进GitHub Actions,实现每日自动回归测试 - 构建Web控制台:用FastAPI包装PhoneAgent,做成网页版手机自动化平台
开发者模式的意义,从来不是“让AI替你干活”,而是让你有能力判断:什么时候该信AI,什么时候该自己动手,什么时候该改写AI。
你现在站在了这条分界线上——往前一步,是工具使用者;往后一步,是智能体架构师。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)