手机AI Agent来了!Open-AutoGLM本地部署详细教程
本文介绍了如何在星图GPU平台上自动化部署Open-AutoGLM – 智谱开源的手机端AI Agent框架镜像,实现自然语言驱动的手机自动化操作。用户可快速构建如‘打开小红书搜索咖啡探店并点击首条笔记’等真实任务流,适用于移动应用测试、生活助理及跨App流程自动化场景。
手机AI Agent来了!Open-AutoGLM本地部署详细教程
你有没有想过,让手机自己“动手”完成任务?不是调用API、不是打开网页,而是像真人一样——看懂屏幕、点击按钮、输入文字、滑动页面,甚至在验证码弹出时提醒你接管。这不是科幻电影,而是智谱AI开源的Open-AutoGLM正在做的事。
它不依赖云端App内嵌逻辑,也不需要厂商深度适配系统权限;它通过ADB直连真机,用视觉语言模型理解每一帧屏幕画面,再把你的自然语言指令(比如“帮我订一杯瑞幸的生椰拿铁,送到公司前台”)拆解成可执行的操作序列。整个过程,模型在本地或私有云运行,你的屏幕截图、操作路径、App界面数据,全程不上传、不联网、不泄露。
这篇教程不讲大道理,不堆技术术语,只聚焦一件事:手把手带你把Open-AutoGLM跑起来,真机实测,一步不错。 无论你是刚接触ADB的安卓新手,还是想快速验证AI Agent能力的开发者,只要按顺序操作,15分钟内就能看到手机自动打开小红书、搜索“咖啡探店”,并点开第一条笔记。
我们不预设你懂强化学习、不假设你配好了CUDA环境、更不会让你从编译vLLM开始。所有步骤都经过实测验证(Windows 11 + 小米13 + Python 3.10),命令可复制、报错有对策、卡点有截图提示——就像朋友坐在你旁边,一边敲命令一边告诉你:“这里要等3秒”“这个弹窗点允许就行”。
准备好了吗?我们直接开始。
1. 先搞明白:Open-AutoGLM到底能做什么
在动手前,先建立一个清晰预期:Open-AutoGLM不是一个“语音助手”,也不是“智能客服”,而是一个看得见、想得清、动得了的手机端AI代理框架。它的能力边界非常具体,也正因如此,才真正可靠。
1.1 它的核心能力,就三件事
-
看得见:每0.8秒截一次屏,用GLM-4.5V多模态模型分析当前界面——识别按钮文字、判断输入框位置、区分广告卡片和正文内容,甚至能看懂微信聊天窗口里哪条是新消息。
-
想得清:把你的自然语言指令(如“查一下我上个月在京东买的蓝牙耳机物流到哪了”)拆解成原子动作链:打开京东App → 点击“我的订单” → 向下滑动 → 找到“蓝牙耳机”订单 → 点击“查看物流” → 截图保存。
-
动得了:通过ADB发送精准坐标点击、滑动、长按、输入文本指令。它不靠“猜坐标”,而是结合UI元素识别结果,动态计算安全点击区域,避免误点广告或返回键。
1.2 它不做什么(重要!)
- 不越权:所有敏感操作(如支付、删除联系人、访问短信)都会暂停并弹出确认提示,必须你手动点击“继续”才执行;
- 不越界:无法操作未开启USB调试的设备,无法绕过系统级权限限制(如后台自启、无障碍服务开关);
- 不万能:对极小字体、强反光屏幕、动态模糊界面识别率会下降,但会主动重试或请求人工介入。
简单说:它是个“超级熟练的实习生”,听你指挥、看得仔细、动作稳当,但关键决策永远留给你。
2. 硬件与环境准备:三步搞定基础条件
别被“AI Agent”吓住——它底层依赖的是早已成熟的ADB工具链。只要你能用电脑给手机装个APK,就能跑起来。我们分三块准备:电脑环境、手机设置、网络连接。
2.1 电脑端:装好ADB,验证能连
- 操作系统:Windows 10/11 或 macOS Monterey 及以上(Linux同理,命令微调即可);
- Python版本:强烈建议使用 Python 3.10.12(实测兼容性最好,3.12部分依赖包未适配);
- ADB工具:去Android SDK Platform-Tools官网下载最新zip包,解压到一个无中文、无空格的路径,例如
C:\adb或~/adb。
验证是否成功:
Windows:打开CMD,输入adb version,看到类似Android Debug Bridge version 1.0.41即成功;
macOS:终端输入adb version,同理。
如果提示“命令未找到”,说明环境变量没配好:
- Windows:右键“此电脑”→属性→高级系统设置→环境变量→系统变量→Path→新建→粘贴你的ADB解压路径(如
C:\adb); - macOS:在
~/.zshrc文件末尾添加export PATH=$PATH:~/adb,然后执行source ~/.zshrc。
2.2 手机端:开启调试,装好输入法
这是最容易卡住的一步,但只需一次设置,永久生效:
-
开启开发者模式:
设置 → 关于手机 → 连续点击“版本号”7次 → 输入锁屏密码 → 提示“您现在处于开发者模式”。 -
开启USB调试:
设置 → 系统 → 开发者选项 → 打开“USB调试” → 弹出授权窗口时,勾选“始终允许”,点击“确定”。 -
安装ADB Keyboard(关键!):
- 去GitHub搜索
adb-keyboard,下载最新版apk(如adb-keyboard-v2.0.0.apk); - 用USB线连接手机,电脑CMD/Terminal输入
adb install adb-keyboard-v2.0.0.apk; - 安装成功后,进入手机“设置 → 语言与输入法 → 虚拟键盘”,将默认输入法切换为 ADB Keyboard。
- 去GitHub搜索
注意:某些品牌(如华为、OPPO)需额外开启“仅充电模式下允许ADB调试”,在开发者选项里找“USB配置”或“选择USB用途”,设为“文件传输”或“MTP”。
2.3 连接方式:USB优先,WiFi备用
- USB直连(推荐新手):插上线,CMD输入
adb devices,看到一串设备ID(如123abcde device)即成功; - WiFi无线(适合远程调试):
① 先用USB连上,执行adb tcpip 5555;
② 拔掉USB线,确保手机和电脑在同一WiFi;
③ CMD输入adb connect 192.168.1.100:5555(将IP换成你手机实际IP,可在手机“关于手机→状态”里查看);
④ 再次adb devices,应显示192.168.1.100:5555 device。
小技巧:手机IP经常变?用
adb shell ip route | grep wlan0快速查当前IP。
3. 部署控制端:克隆代码、装依赖、跑通第一行命令
现在,你的电脑能“看见”手机了,接下来让AI“接管”它。Open-AutoGLM的控制端是纯Python项目,无需编译,但依赖项需逐个确认。
3.1 下载并安装控制代码
打开CMD或Terminal,依次执行:
# 1. 克隆官方仓库(国内用户建议加 --depth 1 加速)
git clone https://github.com/zai-org/Open-AutoGLM --depth 1
cd Open-AutoGLM
# 2. 创建虚拟环境(强烈推荐,避免污染全局Python)
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
# 3. 安装核心依赖(注意:requirements.txt里部分包需指定版本)
pip install -r requirements.txt
pip install -e . # 安装本项目为可编辑模式
验证安装:执行
python -c "import phone_agent; print('OK')",无报错即成功。
3.2 快速测试:不调用AI,先确认ADB通路
在 Open-AutoGLM 目录下,运行一个最小化测试脚本,验证ADB控制是否正常:
python -c "
from phone_agent.adb import ADBConnection
conn = ADBConnection()
devices = conn.list_devices()
print('已连接设备:', [d.device_id for d in devices])
if devices:
print('截取一张屏幕:', conn.screenshot('test.png'))
"
如果看到 已连接设备: ['123abcde'] 和 截取一张屏幕: True,且目录下生成了 test.png(打开看是不是你手机当前屏幕),恭喜——硬件链路已100%打通。
3.3 启动AI代理:一行命令,让手机动起来
Open-AutoGLM本身不包含大模型,它需要连接一个已部署的视觉语言模型服务(如autoglm-phone-9b)。为简化入门,我们采用最轻量方案:使用官方提供的云服务地址(测试用,非生产)。
安全提示:以下地址仅用于功能验证,不处理真实隐私数据,模型权重不上传,所有推理在服务端完成,但屏幕截图经加密传输。
在 Open-AutoGLM 目录下,执行:
python main.py \
--device-id 123abcde \
--base-url https://api.auto-glm.cn/v1 \
--model autoglm-phone-9b \
"打开小红书,搜索'上海咖啡探店',点开第一条笔记"
--device-id:替换为你自己的设备ID(adb devices第一列);--base-url:官方测试API,无需自行部署;- 最后字符串:你的自然语言指令,支持中文,越具体成功率越高。
首次运行会自动下载模型配置,等待约20秒。随后你会看到:
- 手机屏幕自动亮起 → 打开小红书 → 顶部搜索框高亮 → 输入“上海咖啡探店” → 点击搜索 → 列表加载 → 自动滑动 → 点击第一条笔记。
整个过程约12秒,无需任何手动干预。
4. 进阶操作:用Python API定制你的自动化流程
命令行适合快速验证,但真正落地到项目中,你需要用代码封装逻辑。Open-AutoGLM提供了简洁的Python API,几行代码就能构建完整工作流。
4.1 连接管理:自动发现设备,智能切换连接方式
from phone_agent.adb import ADBConnection, DeviceInfo
# 自动扫描所有可用设备(USB/WiFi)
conn = ADBConnection()
devices = conn.list_devices()
print(f"发现 {len(devices)} 台设备:")
for i, dev in enumerate(devices):
print(f"{i+1}. {dev.device_id} ({dev.connection_type.value})")
# 选择第一台设备(通常是最稳定的USB连接)
target_device = devices[0]
conn.set_target_device(target_device.device_id)
4.2 任务编排:把多步操作写成可复用函数
比如,你想每天早上8点自动打开Keep,开始“晨间拉伸”课程:
def start_morning_stretch():
"""自动打开Keep,搜索并启动晨间拉伸"""
try:
# 1. 启动Keep App
conn.launch_app("com.gotokeep.keep")
# 2. 等待首页加载(最多10秒)
if not conn.wait_for_text("首页", timeout=10):
raise TimeoutError("Keep首页未加载")
# 3. 点击搜索图标(坐标基于屏幕中心偏移,更鲁棒)
width, height = conn.get_screen_size()
conn.tap(width * 0.9, height * 0.08) # 右上角搜索
# 4. 输入关键词并搜索
conn.input_text("晨间拉伸")
conn.press_keycode(66) # 回车键
# 5. 点击第一个结果(用文本匹配,比坐标更可靠)
if conn.click_text("晨间拉伸(10分钟)"):
print(" 已启动晨间拉伸课程")
else:
print(" 未找到课程,尝试点击屏幕中央")
conn.tap(width // 2, height // 2)
except Exception as e:
print(f" 执行失败:{e}")
# 调用
start_morning_stretch()
4.3 安全机制:关键操作人工确认,防误触
所有涉及账户、支付、删除的操作,Open-AutoGLM默认强制暂停。你可以在代码中监听事件:
from phone_agent.agent import PhoneAgent
agent = PhoneAgent(
device_id="123abcde",
base_url="https://api.auto-glm.cn/v1",
model_name="autoglm-phone-9b"
)
# 注册回调函数,当检测到敏感操作时触发
@agent.on_sensitive_action
def on_sensitive(action_desc):
print(f"🚨 检测到敏感操作:{action_desc}")
print("请手动确认是否继续(y/n):", end="")
if input().strip().lower() == "y":
return True # 允许执行
return False # 中断流程
# 下达指令
agent.run("登录微信,给张三发消息'今天开会改到下午'")
# 当执行到“输入密码”或“发送消息”时,会自动暂停并等待你的y/n输入
5. 常见问题排查:90%的报错,都在这三类里
部署过程中,你可能会遇到报错。别慌,90%的问题都集中在以下三类,对照解决即可:
5.1 ADB连接类问题
| 现象 | 原因 | 解决方案 |
|---|---|---|
adb devices 显示 unauthorized |
手机弹出授权窗口未点“允许” | 拔插USB线,重新授权;或执行 adb kill-server && adb start-server |
adb devices 无输出 |
USB调试未开启,或驱动未安装 | 小米/华为用户需安装对应品牌ADB驱动;检查开发者选项是否开启 |
WiFi连接后 adb shell 报错 closed |
手机休眠导致ADB断连 | 在开发者选项中关闭“USB调试(安全设置)”或开启“保持唤醒” |
5.2 模型调用类问题
| 现象 | 原因 | 解决方案 |
|---|---|---|
ConnectionRefusedError |
--base-url 地址错误或服务未启动 |
检查URL末尾是否有 /v1;测试 curl -X POST https://api.auto-glm.cn/v1/models 是否返回JSON |
KeyError: 'choices' |
模型返回格式异常,通常是服务端OOM | 换用更小模型(如 autoglm-phone-3b),或减少指令长度 |
| 指令执行一半卡住 | 屏幕未刷新,模型等待超时 | 在 main.py 中增加 --timeout 60 参数,延长单步等待时间 |
5.3 UI识别类问题
| 现象 | 原因 | 解决方案 |
|---|---|---|
| 总是点错位置 | 手机分辨率缩放比例非100% | 设置 → 显示 → 字体与样式 → 显示大小 → 设为“默认”或“标准” |
| 识别不到中文按钮 | 系统字体被替换为非思源黑体 | 恢复系统默认字体;或在 config.yaml 中启用OCR增强模式 |
| 搜索框无法输入文字 | ADB Keyboard未设为默认输入法 | 重新进入“语言与输入法”,手动切换一次ADB Keyboard |
终极调试技巧:加
--debug参数运行,会自动生成debug/目录,包含每一步的截图、UI树结构、模型思考日志,逐帧排查。
6. 总结:你已经掌握了手机AI Agent的第一把钥匙
回看一下,你刚刚完成了什么:
- 让一台普通安卓手机,具备了“看-想-动”的闭环能力;
- 用一行自然语言,驱动它完成跨App、多步骤、带条件判断的真实任务;
- 掌握了从ADB连接、环境配置、代码调用到问题排查的全链路技能;
- 理解了它的能力边界:强大但不越界,智能但需监督,高效但可中断。
这不仅是部署一个工具,更是打开了一扇门——门后是AI与物理世界交互的新范式。下一步,你可以:
- 尝试更复杂的指令:“对比美团、饿了么上‘宫保鸡丁’的价格和配送费,选最便宜的下单”;
- 把脚本接入定时任务(Windows任务计划程序 / macOS launchd),实现全自动生活助理;
- 结合企业微信API,让AI自动抓取钉钉审批截图,生成日报发到群聊。
技术从来不是目的,解放双手、节省时间、降低操作门槛,才是Open-AutoGLM存在的意义。它不取代你,而是成为你手指的延伸,把重复劳动交给机器,把创造力留给人。
现在,关掉这篇教程,拿起你的手机,再输一遍那句:“打开小红书,搜索‘上海咖啡探店’”。这一次,你看到的不只是结果,而是未来已来的清晰回响。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐

所有评论(0)