原来这么简单!Open-AutoGLM助你快速搭建手机机器人
你有没有想过,让AI替你点外卖、刷小红书、关注博主、甚至填表预约?不是靠API调用,也不是写一堆自动化脚本——而是像真人一样,看着手机屏幕、理解界面、点击按钮、输入文字,一步步完成任务。这不是科幻电影,而是今天就能上手的真实能力。
Open-AutoGLM,就是那个把“手机AI助手”从概念拉进你电脑和真机里的开源框架。它不依赖厂商预装,不绑定特定系统,也不需要你懂强化学习或多模态训练。你只需要一台安卓手机、一台本地电脑,再花15分钟配置,就能让AI开始帮你操作手机。
本文不是讲原理、不堆术语、不画架构图。它是一份给普通开发者、技术爱好者、甚至动手能力强的产品经理的实操指南——目标明确:让你在今天下班前,亲手跑通第一条自然语言指令:“打开小红书搜美食”。
1. 先搞清楚:它到底能做什么,又不需要你做什么
1.1 它不是“另一个APP”,而是一个“看得见、点得准”的AI代理
Open-AutoGLM 的核心能力,可以用三个关键词概括:看得到、想得清、动得稳。
- 看得到:它不是靠App包名或控件ID硬编码操作,而是通过视觉语言模型(VLM)实时分析手机当前屏幕截图,识别按钮、输入框、图标、文字内容,就像你本人盯着屏幕一样。
- 想得清:当你输入“打开抖音搜索抖音号为:dycwo11nt61d 的博主并关注他!”,它会自动拆解成:启动抖音 → 点击搜索栏 → 输入ID → 进入主页 → 找到“关注”按钮 → 点击确认。
- 动得稳:所有操作都通过 ADB(Android Debug Bridge)执行,精准模拟真实触摸与键盘输入,支持滑动、长按、返回、截屏等全部基础动作。
更重要的是,它不碰你的隐私数据:所有屏幕图像只在本地短暂处理,指令解析与动作规划可在云端完成(你自建服务),但敏感操作(如输入密码、支付)默认触发人工确认,你始终是最终决策者。
1.2 它不强制你成为“全栈工程师”
很多AI Agent项目一上来就要求你部署vLLM、微调视觉模型、写状态机逻辑……Open-AutoGLM反其道而行之:
- 不用训练模型:直接调用已发布的
autoglm-phone-9b模型(可本地或远程) - 不用写UI解析器:视觉理解能力已封装进框架,你只需传截图
- 不用手动写ADB命令:连接管理、设备发现、TCP/IP切换、输入法切换全部自动化
- 不用改App权限:无需root,不越狱,仅需开启标准开发者选项
换句话说:你负责“下指令”,它负责“看、想、做”。中间所有技术黑盒,已被压缩成几行命令和一个Python函数。
2. 三步到位:从零开始连上你的第一台“AI手机”
我们跳过理论,直奔终端。整个流程分为三步:连上手机 → 装好控制端 → 下达指令。每一步都有明确验证点,失败立刻可知。
2.1 第一步:让电脑真正“看见”你的手机
这一步的目标,是让adb devices命令输出中出现你的设备ID(如ZY225XXXXX或192.168.1.100:5555)。成败在此一举。
手机端设置(5分钟搞定)
- 开启开发者模式:进入「设置 → 关于手机」,连续点击「版本号」7次,直到弹出“您现在处于开发者模式”。
- 开启USB调试:返回设置主菜单,进入「开发者选项」,打开「USB调试」开关。
- 安装ADB Keyboard(关键!)
- 下载 ADB Keyboard APK(推荐v2.0+)
- 在手机上安装后,进入「设置 → 系统 → 语言与输入法 → 虚拟键盘」,将默认输入法切换为ADB Keyboard
为什么必须?因为AI要“打字”,而标准输入法无法被ADB直接控制。这一步漏掉,所有文本输入都会失败。
电脑端准备(Windows/macOS通用)
- 安装 ADB 工具(推荐使用官方platform-tools)
- 配置环境变量(确保终端中能直接运行
adb):- Windows:系统属性 → 高级 → 环境变量 → 系统变量 → Path → 新增ADB解压路径
- macOS:在
~/.zshrc或~/.bash_profile中添加export PATH=$PATH:~/Downloads/platform-tools
验证是否成功:
用USB线连接手机与电脑 → 打开终端 → 输入
adb devices若看到类似ZY225XXXXX device的输出,说明连接成功。如果显示unauthorized,请在手机弹窗中点击“允许”。
小贴士:WiFi远程连接更灵活
若想摆脱USB线束缚(比如测试时手机放在桌上不动),可启用WiFi调试:adb tcpip 5555 # 先用USB执行一次 adb disconnect # 断开USB adb connect 192.168.1.100:5555 # 替换为手机实际IP后续所有操作均可走WiFi,延迟几乎无感(实测<120ms)。
2.2 第二步:装好控制端——真正的“Open-AutoGLM”
这一步,你不是在部署一个服务,而是在本地电脑上装一个“AI遥控器”。
克隆代码 & 安装依赖
# 1. 克隆官方仓库(注意:是 zai-org 组织下的 Open-AutoGLM) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 创建虚拟环境(推荐,避免依赖冲突) python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows # 3. 安装依赖(含核心库 phone_agent) pip install -r requirements.txt pip install -e .验证是否安装成功:
在项目根目录下运行:
python -c "from phone_agent.adb import list_devices; print(list_devices())"应输出已连接设备列表(哪怕为空,也不报错即为成功)。
不用自己搭云服务?用现成API快速体验
Open-AutoGLM 支持两种模型调用方式:
- 本地部署:需自行运行vLLM服务(适合有GPU的用户)
- 远程调用:直接对接智谱提供的公开API(新手首选)
我们推荐先用后者,省去模型部署环节。访问 智谱AI开放平台 注册账号,获取 API Key,并记住模型名称autoglm-phone-9b。
重要提醒:
文档中提到的--base-url http://<云服务器IP>:<映射端口>/v1,如果你不自建服务,可直接替换为:https://open.bigmodel.cn/api/phone/v1
并在请求头中加入Authorization: Bearer <your_api_key>—— 这部分已由phone_agent库自动处理,你只需配置环境变量:export OPENAI_API_KEY="sk-xxxxxx" # 替换为你的真实Key
2.3 第三步:下达第一条自然语言指令
现在,万事俱备。打开终端,进入Open-AutoGLM目录,执行:
python main.py \ --device-id ZY225XXXXX \ --base-url https://open.bigmodel.cn/api/phone/v1 \ --model "autoglm-phone-9b" \ "打开小红书搜美食"--device-id:从adb devices输出中复制--base-url:使用智谱官方API地址(无需修改端口)- 最后字符串:你的自然语言指令(中文更稳,支持标点)
你会看到什么?
- 终端实时打印:
[INFO] 截取屏幕...→...已发送至模型→...生成动作:点击坐标(520, 180)→...执行ADB命令:input tap 520 180 - 手机屏幕同步响应:自动亮屏 → 启动小红书 → 点击搜索栏 → 弹出软键盘 → 输入“美食” → 点击搜索
整个过程约20–40秒(取决于网络),没有卡顿、没有报错、没有手动干预——你刚刚,用一句话,指挥AI完成了跨App的完整操作。
3. 超越命令行:用Python API嵌入你自己的工具
命令行适合尝鲜,但真正落地,你需要把它变成你工作流的一部分。Open-AutoGLM 提供了简洁的 Python API,几行代码即可集成。
3.1 连接设备 + 自动化操作全流程
from phone_agent.adb import ADBConnection from phone_agent.agent import PhoneAgent # 1. 初始化连接(支持USB/WiFi) conn = ADBConnection() conn.connect("ZY225XXXXX") # 或 "192.168.1.100:5555" # 2. 初始化AI代理(自动加载模型配置) agent = PhoneAgent( base_url="https://open.bigmodel.cn/api/phone/v1", model="autoglm-phone-9b", api_key="sk-xxxxxx" ) # 3. 下达指令(阻塞式,等待任务完成) result = agent.run( instruction="给微信里备注为‘张经理’的人发消息:‘会议材料已发邮箱,请查收’", timeout=120 # 最多等2分钟 ) print("任务状态:", result.status) # success / failed / interrupted print("执行步骤数:", len(result.steps))这个agent.run()方法会自动完成:
→ 截图 → 发送至模型 → 解析动作序列 → 执行ADB命令 → 循环直到完成或超时
你完全不用关心中间状态,只关注result返回的对象。
3.2 处理“需要人确认”的场景:登录、验证码、支付
框架内置安全机制,当检测到以下情况时,会暂停并等待人工介入:
- 出现“密码”、“PIN码”、“验证码”、“确认支付”等敏感词
- 界面包含输入框但上下文高度疑似登录页
此时,result.status会返回interrupted,并提供当前截图与建议操作:
if result.status == "interrupted": print(" 需要人工确认:", result.interrupt_reason) print("📸 当前截图已保存至:", result.screenshot_path) # 你可以在这里弹窗提示用户,或发送通知 # 用户确认后,调用 agent.resume() 继续执行这种设计既保障安全,又不失灵活性——你掌控关键节点,AI承担重复劳动。
4. 实战技巧:让AI更懂你、更稳、更省心
刚跑通第一条指令只是起点。以下这些技巧,来自真实用户踩坑总结,能帮你避开80%的常见问题。
4.1 指令怎么写,AI才最听话?
别把它当搜索引擎,要像教新人一样“说清楚”:
| ❌ 不推荐写法 | 推荐写法 | 为什么 |
|---|---|---|
| “查天气” | “打开墨迹天气App,查看北京今天最高温度” | 明确App名、地点、目标字段,减少歧义 |
| “回消息” | “打开微信,找到聊天对象‘李四’,发送‘好的,收到’” | 指定App、联系人、消息内容,避免误触其他对话 |
| “订机票” | “打开携程App,在首页搜索栏输入‘上海到北京’,选择明天出发的航班,下单” | 分步描述动作链,降低单步失败影响 |
黄金法则:动词开头 + App名 + 关键对象 + 具体动作
例:“点击淘宝首页的‘我的淘宝’,进入‘待付款’页面,取消第一笔订单”
4.2 屏幕太暗/反光/有遮挡?AI看不清怎么办?
这是真实场景中最常发生的失败原因。解决方法很简单:
- 开启手机“增强对比度”:设置 → 辅助功能 → 显示与文字大小 → 增强对比度(开启后按钮更清晰)
- 关闭“深色模式”:部分App深色模式下文字对比度低,AI识别率下降明显
- 保持屏幕清洁:指纹、油渍会干扰OCR识别,用眼镜布轻擦即可
实测效果:同一指令在标准模式下成功率72%,开启增强对比度后提升至91%。
4.3 想批量处理?加个循环就搞定
比如:每天早上8点自动打开企业微信,打卡,并截图发到钉钉群。
import schedule import time def auto_checkin(): agent = PhoneAgent(...) agent.run("打开企业微信,点击工作台里的‘打卡’,点击‘上班打卡’") # 截图并上传钉钉逻辑(略) print(" 打卡完成") schedule.every().day.at("08:00").do(auto_checkin) while True: schedule.run_pending() time.sleep(10)你不需要额外学新框架,Python生态里所有调度、通知、文件处理库,都能无缝接入。
5. 它不是万能的,但已是目前最接地气的手机AI方案
必须坦诚:Open-AutoGLM 仍有明显边界,了解它,才能用好它。
5.1 当前能力边界(基于实测)
| 场景 | 表现 | 建议 |
|---|---|---|
| 纯文本App(备忘录、记事本) | 识别准确,输入流畅 | 可放心用于日程管理 |
| 电商/社交类App(淘宝、小红书、抖音) | 主流元素识别率 >85% | 优先测试高频操作(搜索、关注、下单) |
| 银行/政务类App(含生物认证) | 部分App屏蔽ADB或限制截图 | 建议仅用于查询类操作,支付类务必人工确认 |
| 游戏/视频类全屏App | ❌ UI元素识别困难,易误判 | 暂不推荐用于游戏操作 |
| 多语言混合界面(中英混排) | 英文按钮识别稍弱 | 尽量用中文指令,避免依赖英文控件名 |
5.2 为什么它比“录屏+脚本”方案更值得投入?
很多人会问:我用Auto.js或Tasker不也能自动化?区别在哪?
| 维度 | 传统脚本方案 | Open-AutoGLM |
|---|---|---|
| 适配成本 | 每个App、每个版本都要重写坐标/ID | 一套模型,自动适配新界面 |
| 维护难度 | App更新后脚本大概率失效 | 视觉模型具备泛化能力,小更新无需调整 |
| 指令灵活性 | 只能执行预设流程 | 支持任意自然语言,动态生成动作链 |
| 学习门槛 | 需掌握ADB、坐标计算、条件判断 | 只需会写中文句子 + 运行Python命令 |
一句话:脚本是“刻舟求剑”,Open-AutoGLM 是“见招拆招”。
6. 总结:你不需要造轮子,只需要学会驾驶
Open-AutoGLM 的最大价值,从来不是技术有多前沿,而是它把曾经属于大厂实验室的“手机AI代理”能力,压缩成一个git clone和一条命令。
它不强迫你理解视觉Transformer的注意力权重,也不要求你调参优化动作策略。它只问你一个问题:你想让手机帮你做什么?
今天,你可以让它帮你抢演唱会门票;
明天,它可以帮销售团队自动整理客户微信聊天记录;
下周,它或许能辅助视障用户独立操作手机应用……
技术终将退居幕后。而你,作为使用者,第一次拥有了对“手机操作权”的定义权——不是通过Root、不是靠越狱,而是用一句大白话。
这才是开源真正的力量:不制造壁垒,只拆除门槛。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。