让AI接管手机!Open-AutoGLM命令行操作全记录
你有没有想过,有一天只需说一句“帮我订一杯瑞幸的生椰拿铁”,手机就自动打开APP、选好规格、完成支付?这不是科幻电影,而是Open-AutoGLM正在真实发生的事。作为智谱开源的手机端AI Agent框架,AutoGLM-Phone不是简单的语音助手,而是一个能真正“看见”屏幕、“理解”界面、“动手”操作的视觉语言智能体。它不依赖预设脚本,不靠固定UI路径,而是像人一样观察、思考、行动——用自然语言下指令,它就能接管你的手机,完成跨应用、多步骤的真实任务。
本文不讲抽象概念,不堆技术参数,只做一件事:完整复现一次从零开始的命令行实操过程。我会带你亲手敲下每一行命令,看到设备连接成功的提示,看到AI生成的第一条操作指令,看到手机屏幕真的被自动点击、滑动、输入。所有内容基于真实环境验证,跳过理论铺垫,直奔终端黑窗与手机屏幕的联动现场。
1. 环境准备:三步确认,避免后续卡壳
在敲任何代码前,请花2分钟确认这三件事。它们看似简单,却是90%失败案例的根源。
1.1 本地电脑:ADB必须“认得”你的设备
无论Windows还是macOS,核心目标只有一个:让adb devices命令返回带device状态的设备ID。这不是可选项,是硬性前提。
Windows用户:下载Android Platform Tools,解压后将文件夹路径(如
C:\platform-tools)添加到系统环境变量Path中。打开新命令提示符,输入:adb version若显示版本号(如
Android Debug Bridge version 1.0.41),说明ADB已就位。macOS用户:将解压后的
platform-tools目录拖入~/Downloads/,然后在终端执行:echo 'export PATH=$PATH:~/Downloads/platform-tools' >> ~/.zshrc source ~/.zshrc adb version同样,看到版本号即成功。
关键验证:此时手机不要连接。先确保命令行能识别ADB工具本身,再处理设备连接。
1.2 手机端:开发者模式与输入法是两大关卡
很多用户卡在“adb devices显示unauthorized”或“无法输入文字”,问题几乎都出在这里。
- 开启开发者模式:进入手机「设置」→「关于手机」→连续点击「版本号」7次,直到弹出“您现在处于开发者模式”。
- 启用USB调试:返回「设置」→「系统」→「开发者选项」→打开「USB调试」。首次开启会弹出授权窗口,勾选“始终允许”并确认。
- 安装ADB Keyboard(决定性一步):
下载ADB Keyboard APK,手动安装。安装后进入「设置」→「语言与输入法」→「当前键盘」→选择「ADB Keyboard」为默认。
为什么必须?Open-AutoGLM需要向任意APP输入文字(如搜索框),而标准输入法会拦截ADB指令。ADB Keyboard是唯一能绕过此限制的方案。
1.3 网络连通性:USB与WiFi二选一,但必须稳定
USB直连(推荐新手):用原装数据线连接手机与电脑。执行:
adb devices正常输出应类似:
List of devices attached 1234567890abcdef device若显示
unauthorized,请检查手机弹窗是否已授权;若为空,重启ADB服务:adb kill-server && adb start-serverWiFi远程(进阶):需先用USB连接一次,执行:
adb tcpip 5555断开USB,确保手机与电脑在同一WiFi下,查看手机IP(设置→关于手机→状态→IP地址),然后:
adb connect 192.168.1.100:5555成功后
adb devices会显示192.168.1.100:5555。注意:WiFi不稳定时易掉线,首次测试建议坚持USB。
2. 控制端部署:克隆、安装、验证三连击
控制端代码是AI与手机之间的“翻译官”,它把云端模型的指令转化为ADB命令。这一步无需编译,纯Python操作。
2.1 克隆仓库并安装依赖
打开终端(Windows用CMD/PowerShell,macOS用Terminal),执行:
git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM pip install -r requirements.txt pip install -e .pip install -e .是关键:它以“开发模式”安装包,使phone_agent模块全局可用,后续python main.py才能正常导入。
2.2 快速验证控制端是否就绪
不急着连手机,先用最小化命令测试框架能否运行:
python -c "from phone_agent.adb import ADBConnection; print('Control client ready')"若输出Control client ready,说明本地环境已打通。若报错ModuleNotFoundError,请返回上一步检查pip install -e .是否执行成功。
3. 服务端对接:把AI大脑接上你的手机
Open-AutoGLM的AI能力来自云端vLLM服务。你需要将--base-url指向这个服务地址。假设你已在算力云部署好vLLM,端口映射为8800,服务器公网IP为203.123.45.67,则基础URL为http://203.123.45.67:8800/v1。
3.1 服务端健康检查(必做)
在本地电脑执行:
curl -X POST "http://203.123.45.67:8800/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "autoglm-phone-9b", "messages": [{"role": "user", "content": "你好"}] }'- 若返回JSON且含
"choices":[{...}],说明服务在线。 - 若返回
Connection refused,检查云服务器防火墙是否放行8800端口;若返回404,确认URL末尾有/v1。
3.2 获取设备ID:精准定位你的手机
再次执行:
adb devices记下输出中的设备标识符。它可能是:
- USB连接:
1234567890abcdef - WiFi连接:
192.168.1.100:5555
注意:不要复制List of devices attached或device字样,只取那一串字符。
4. 首次运行:见证AI接管手机的全过程
现在,所有齿轮已咬合。执行以下命令(替换<DEVICE_ID>和<BASE_URL>为你的实际值):
python main.py \ --device-id 1234567890abcdef \ --base-url http://203.123.45.67:8800/v1 \ --model "autoglm-phone-9b" \ "打开小红书搜索‘LUMMI MOOD洗发水’并查看最新一篇笔记的评论区"4.1 命令执行时发生了什么?
当回车键按下,你会看到终端滚动出实时日志。整个过程分四阶段:
- 屏幕捕获:
adb shell screencap -p /sdcard/screen.png→ 截取当前手机屏幕 - 图像上传:将PNG编码为base64,随文本指令一起发送至vLLM服务端
- AI推理:模型分析截图+指令,生成结构化动作序列(如
{"action":"Launch","app":"小红书"}) - 指令执行:控制端解析JSON,调用
adb shell am start -n com.xingin.xhs/.activity.SplashActivity启动APP
4.2 关键日志解读(看懂AI在想什么)
留意终端中以<think>和<answer>包裹的块:
<think>当前屏幕显示手机桌面,需要先启动小红书APP。小红书包名是com.xingin.xhs,使用am start命令启动主Activity。</think> <answer>do(action="Launch", app="小红书")<think>是AI的内部推理链,解释它为何选择此动作<answer>是最终输出的可执行指令,格式严格遵循do(action="xxx", ...)
若看到<think>但无<answer>,说明模型未生成有效动作,可能因截图模糊或指令歧义;若<answer>后无ADB响应,检查设备ID是否正确。
5. 实战指令库:10个真实场景,直接复制粘贴
别再纠结“该让AI做什么”,这里提供经过验证的指令集。每条都对应真实手机操作,复制即可用。
5.1 跨应用信息查询类
# 指令1:比价购物 python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "对比京东和淘宝上‘小米手环8’的价格,告诉我哪家更便宜" # 指令2:行程规划 python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "查今天北京到上海的高铁班次,选最早一班并保存出发时间到备忘录"5.2 社交媒体操作类
# 指令3:关注博主 python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "打开抖音,搜索抖音号‘dycwo11nt61d’,进入主页并点击关注按钮" # 指令4:发布内容 python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "打开小红书,点击底部+号,选择相册中第一张图片,添加文字‘今日咖啡’,发布"5.3 工具类自动化
# 指令5:清理存储 python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "打开手机设置,进入存储空间,点击‘清理建议’并确认删除缓存文件" # 指令6:设置闹钟 python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "打开时钟APP,新建一个明天早上7点的闹钟,重复星期一至星期五"5.4 敏感操作安全机制演示
# 指令7:涉及支付(触发人工确认) python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "打开支付宝,给好友‘张三’转账100元" # 指令8:登录账户(需人工输入验证码) python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "打开微信,点击登录,输入手机号138****1234,等待验证码输入"安全设计:当指令涉及支付、登录等高风险操作时,AI会主动停止执行,输出
<answer>wait_for_human_input(reason="需要人工确认支付")</answer>,并在手机屏幕显示提示,确保你全程掌控。
6. 故障排查:5个高频问题的秒级解决方案
遇到报错别慌,90%的问题在这张表里有答案。
| 现象 | 根本原因 | 一行解决命令 |
|---|---|---|
adb devices显示unauthorized | 手机未授权调试 | 断开重连USB,手机点“允许” |
终端卡在Capturing screenshot... | ADB Keyboard未设为默认输入法 | 进入手机「设置→语言与输入法」切换默认键盘 |
报错Connection refused | 云服务器端口未放行 | 在云控制台安全组中开放8800端口 |
| AI返回乱码或空响应 | vLLM启动时--max-model-len参数过小 | 重新运行容器,将--max-model-len 25480改为32768 |
手机无反应,但终端显示<answer> | 设备ID填写错误(多空格/少字符) | 再次执行adb devices,精确复制输出内容 |
7. 进阶技巧:让AI更懂你的手机习惯
默认配置已足够强大,但微调几处参数,能让体验质变。
7.1 屏幕分辨率适配(解决点击偏移)
某些手机截图后坐标计算偏差,可在main.py中修改:
# 找到 line ~120 的 capture_screen 函数 # 将 scale_factor 参数从 1.0 改为你的屏幕缩放比 # 例如:华为Mate50 Pro (2700x1216) 建议设为 0.8 scale_factor = 0.87.2 指令响应速度优化
默认AI会生成详细推理链(<think>块),若追求速度,可禁用:
python main.py \ --device-id <ID> \ --base-url <URL> \ --model "autoglm-phone-9b" \ --no-think \ # 新增参数,跳过推理过程 "打开B站搜索‘Open-AutoGLM教程’"7.3 批量任务执行
将多条指令写入文件tasks.txt:
打开知乎搜索‘大模型手机Agent’ 截取当前屏幕并保存到相册 返回桌面然后执行:
cat tasks.txt | while read cmd; do python main.py --device-id <ID> --base-url <URL> --model "autoglm-phone-9b" "$cmd" sleep 5 # 每条指令间隔5秒,避免过快 done8. 总结:这不是玩具,而是生产力新范式
回顾整个过程,你完成的远不止一次命令行操作。你亲手搭建了一条从自然语言到物理点击的完整通路:文字指令 → 屏幕感知 → 意图理解 → 动作规划 → ADB执行。Open-AutoGLM的价值,正在于它打破了“AI只能回答,不能行动”的传统边界。
它不替代你的思考,而是放大你的意图。当你疲惫时,让它整理一周会议纪要;当你赶时间时,让它比价下单;当你探索新技术时,让它成为你的实验伙伴——所有这些,都始于你敲下的那句“打开小红书搜索……”。
真正的智能,不是更复杂的算法,而是更简单的交互。现在,你的手机已经准备好听从你的自然语言指挥了。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。