告别手动点击!Open-AutoGLM实现手机自动化全记录

本文基于智谱AI开源项目 Open-AutoGLM 的实操经验,完整记录从零部署到稳定运行的全过程。不讲抽象原理,只说你真正需要知道的操作细节、踩坑总结和实用技巧。

1. 这不是“另一个AI玩具”,而是能真正接管你手机的智能体

你有没有过这样的时刻:

  • 每天重复打开微信→点开群→复制链接→切回淘宝→粘贴搜索→比价下单?
  • 为批量关注50个抖音博主,手指点到发麻,还总点错?
  • 测试新App时,反复执行“注册→登录→跳过→授权→返回首页”这套固定流程?

过去,这类操作只能靠人工或写死坐标的脚本——前者累,后者脆。而 Open-AutoGLM 改变了规则:你用自然语言说话,它看懂屏幕、理解意图、自己动手

这不是概念演示,也不是实验室Demo。我在一台Android 12真机(小米12)上,用它完成了以下真实任务:
打开小红书,搜索“北京咖啡探店”,保存前3篇笔记封面图
在美团外卖中,为常去的3家餐厅各添加1条带图好评
自动完成某电商App的新人注册全流程(含短信验证码人工输入)
每晚9点准时打开B站,播放“AI技术周报”合集并投币

整个过程无需一行代码修改,不依赖UI元素ID,不关心屏幕分辨率——你只管说,它负责做。

下面,我将带你用最短路径跑通它,避开所有文档里没写的坑。

2. 本地控制端部署:三步到位,拒绝环境玄学

2.1 硬件与基础准备(关键检查项)

别急着敲命令,先确认这4件事:

  • 你的手机必须是Android 7.0+(iOS暂不支持)
  • 电脑已安装ADB且能识别设备:在终端执行 adb devices,输出应为 xxxxxx device(不是 unauthorized 或空)
  • Python版本≥3.10:执行 python --version 验证;若为3.9或更低,请先升级
  • 关闭所有手机管家类App的“USB调试权限拦截”(华为/OPPO/Vivo用户重点注意)

小技巧:在小米手机上,除了开启“开发者选项”和“USB调试”,还需额外开启“USB调试(安全设置)”——这个开关藏在“更多设置→开发者选项”底部,不开启会导致ADB连接后立即断开。

2.2 安装Open-AutoGLM控制端(极简版)

# 1. 克隆仓库(推荐国内镜像加速)
git clone https://gitee.com/zai-org/Open-AutoGLM
cd Open-AutoGLM

# 2. 创建独立虚拟环境(强烈建议!避免包冲突)
python -m venv venv
source venv/bin/activate  # macOS/Linux
# venv\Scripts\activate  # Windows

# 3. 安装依赖(跳过vLLM等可选推理引擎,我们走云端API)
pip install -r requirements.txt
pip install -e .

注意:requirements.txt 中包含 vllmsglang,但如果你不打算本地部署大模型,请务必跳过它们——否则会触发CUDA版本冲突。只需保留 openai, adbutils, Pillow, pydantic 等核心依赖即可。

2.3 手机端必备配置(3个动作,缺一不可)

步骤 操作位置 关键要点
① 开启开发者模式 设置 → 关于手机 → 连续点击“版本号”7次 点击后会弹出“您现在处于开发者模式”提示
② 启用USB调试 设置 → 更多设置 → 开发者选项 → USB调试 必须勾选,且首次连接时需在手机上点击“允许”
③ 安装ADB Keyboard 下载APK → 手机安装 → 设置 → 语言与输入法 → 当前输入法 → 切换为“ADB Keyboard” 这是中文输入唯一可靠方案,不装它,所有带中文的任务都会失败

验证是否成功:在终端执行 adb shell input text "test",手机输入框应出现 test;再执行 adb shell input text "你好",若显示乱码或无反应,说明ADB Keyboard未生效——请重启手机后重试切换输入法。

3. 连接你的手机:USB与WiFi双模式实测指南

3.1 USB直连(新手首选,稳定性100%)

这是最稳妥的方式,适合首次尝试:

# 1. 用USB线连接手机与电脑
# 2. 终端执行(确保手机已弹窗授权)
adb devices
# 输出示例:8A9X1234567890AB    device

# 3. 记下这串字符(设备ID),后续要用
DEVICE_ID="8A9X1234567890AB"

实测发现:部分Type-C转接头或USB扩展坞会导致ADB识别不稳定。如 adb devices 显示 ?????????? no permissions,请直接使用原装数据线连接电脑主板USB口。

3.2 WiFi无线连接(解放双手,适合长期使用)

当你想把手机放在桌上、远离电脑操作时,WiFi模式是刚需:

# 1. 先用USB线连接,启用TCP/IP模式
adb tcpip 5555

# 2. 拔掉USB线,确保手机与电脑在同一WiFi下
# 3. 查找手机IP(设置→关于手机→状态信息→IP地址)
PHONE_IP="192.168.3.102"

# 4. 连接无线设备
adb connect $PHONE_IP:5555
# 成功提示:connected to 192.168.3.102:5555

# 5. 验证连接
adb devices
# 输出应包含:192.168.3.102:5555    device

常见故障排查:

  • 若提示 failed to connect to '192.168.3.102:5555':检查手机防火墙是否阻止ADB,或路由器是否开启“AP隔离”(关闭即可)
  • 若连接后 adb shell 命令卡住:在手机上进入“开发者选项”,关闭“USB调试(安全设置)”再重开一次

4. 调用云端AI服务:一行命令启动自动化

4.1 获取可用的云端模型服务

Open-AutoGLM本身不包含大模型,它通过标准OpenAI API调用远程推理服务。目前有2种选择:

方案 获取方式 推荐指数 说明
官方托管服务(推荐) 访问 CSDN星图镜像广场 → 搜索“AutoGLM-Phone” → 一键部署 预置9B视觉语言模型,免配置,公网可访问,适合快速验证
自建vLLM服务 下载 autoglm-phone-9b 模型权重 → 使用vLLM启动API服务 需GPU服务器,延迟更低,但部署复杂度高

我实测采用官方托管服务:部署后获得地址 http://116.205.182.44:8800/v1,模型名 autoglm-phone-9b,API Key为 EMPTY(无需鉴权)。

4.2 执行第一条自动化指令(关键命令详解)

python main.py \
  --device-id "192.168.3.102:5555" \
  --base-url "http://116.205.182.44:8800/v1" \
  --model "autoglm-phone-9b" \
  "打开抖音,搜索抖音号dycwo11nt61d,进入主页并关注他!"

参数逐个解释(避免填错):

  • --device-id:必须是你通过 adb devices 看到的完整ID(如 192.168.3.102:55558A9X1234567890AB
  • --base-url:以 /v1 结尾,不要漏掉斜杠
  • --model:严格匹配模型名,区分大小写,当前为 autoglm-phone-9b
  • 最后字符串:就是你对手机说的话,越自然越好,无需加标点

成功运行时,你会看到:

  1. 手机自动亮屏、解锁(需提前关闭锁屏密码)
  2. 终端实时打印AI思考过程:<think>当前在桌面,需启动抖音应用...</think>
  3. 手机依次执行:启动抖音 → 点击搜索框 → 输入抖音号 → 点击搜索结果 → 进入主页 → 点击“关注”按钮
  4. 最终终端输出:Task completed: success

5. 实战技巧:让自动化更稳、更快、更懂你

5.1 提升成功率的3个自然语言技巧

AI不是搜索引擎,它需要“像人一样被指挥”。实测有效的表达方式:

场景 效果差的写法 效果好的写法 原因
搜索内容 “搜美食” “在小红书搜索‘北京胡同咖啡’,只看图文笔记” 加限定词减少歧义,明确平台和内容类型
点击目标 “点那个红色按钮” “点击页面底部中间的‘立即领取’红色按钮” 描述位置+颜色+文字,三重定位更鲁棒
处理异常 “如果打不开就重试” “如果提示‘应用未安装’,请返回桌面并搜索‘淘宝’安装” 给出明确fallback路径,而非模糊指令

进阶技巧:在指令末尾加 (请每步完成后告诉我),AI会在每个操作后暂停并输出当前状态,方便你随时介入。

5.2 处理敏感场景:支付、登录、验证码的正确姿势

当遇到密码框、支付页、短信验证码时,系统会自动触发保护机制:

  • 黑屏检测:AI收到黑屏截图后,立即输出 do(action="Take_over", message="请手动输入支付密码")
  • 人工接管:终端会暂停并提示 Takeover required: 请手动输入支付密码,你操作完后按回车继续
  • 无缝衔接:接管后,AI会基于新截图继续后续步骤(如“点击确认支付”)

实测案例:在某电商App完成下单,AI自动执行到支付页→黑屏→你手动输密码→回车→AI继续点击“完成支付”→返回订单页截图保存。

5.3 批量任务自动化:用Python API替代命令行

当需要连续执行多个任务时,命令行反复敲太低效。用Python脚本更灵活:

from phone_agent.agent import PhoneAgent
from phone_agent.config import AgentConfig

# 初始化Agent(复用同一连接)
agent = PhoneAgent(
    model_config={
        "base_url": "http://116.205.182.44:8800/v1",
        "model_name": "autoglm-phone-9b",
        "api_key": "EMPTY"
    },
    agent_config=AgentConfig(
        max_steps=80,  # 适当提高步数上限
        device_id="192.168.3.102:5555"
    )
)

# 批量执行任务
tasks = [
    "打开微博,关注@人民日报",
    "打开知乎,搜索‘大模型Agent’,收藏前2个回答",
    "打开高德地图,搜索‘最近的充电站’,截图结果"
]

for i, task in enumerate(tasks, 1):
    print(f"\n--- 任务 {i}: {task} ---")
    result = agent.run(task)
    print(f"结果: {result}")
    if i < len(tasks):  # 任务间加3秒间隔,避免过快
        import time
        time.sleep(3)

优势:可加入错误重试、结果校验、日志记录,真正工程化落地。

6. 故障排除:90%的问题都出在这5个地方

根据上百次实操记录,整理高频问题与根治方案:

现象 根本原因 一招解决
终端报错 ConnectionRefusedError 云端模型服务未启动或端口未映射 检查CSDN星图镜像广场中服务状态,确认“运行中”且端口已开放
手机无反应,终端卡在 Getting screenshot... ADB Keyboard未启用或ADB连接中断 执行 adb devices 确认连接;手机设置中强制停止ADB Keyboard后重开
中文输入显示方块或乱码 ADB Keyboard安装包损坏或未设为默认 重新下载APK安装,必须在“语言与输入法”中手动切换,不能仅在键盘切换栏点选
AI一直重复点击同一位置,无法进入下一步 页面加载慢,AI误判“已加载完成” 在指令中加入等待提示:“打开淘宝,等待首页加载完成后,点击‘我的淘宝’”
执行到支付页后黑屏,但未触发接管 敏感页检测逻辑未生效 升级Open-AutoGLM至最新版(git pull origin main),旧版存在黑屏识别bug

终极调试命令:加 --verbose 参数查看详细日志

python main.py --verbose --device-id ... "你的指令"

日志中重点关注 screenshot size(截图尺寸是否正常)、current_app(当前应用识别是否准确)、raw response(AI原始输出)三项。

7. 它能做什么?一份真实能力清单(非宣传稿)

不吹嘘,只列我亲手验证过的功能边界:

类别 已验证能力 限制说明
应用启动与跳转 启动微信/抖音/小红书/淘宝/美团/高德/网易云等50+主流App 识别基于包名,冷启动App需1-2秒
界面交互 点击、长按、双击、滑动(上下左右)、拖拽、返回、Home键 滑动距离由AI动态计算,长页面需多次滑动
文本输入 中文、英文、数字、emoji、标点符号全支持 输入超长文本(>50字)时建议分段指令
内容提取 从截图中识别按钮文字、列表标题、商品价格、文章摘要 不支持OCR式逐字识别,但能准确抓取关键字段
多步任务 注册→登录→完善资料→发布内容→分享到朋友圈 单任务最长支持100步,复杂流程建议拆解
条件判断 “如果看到‘立即体验’按钮就点击,否则点击‘稍后再说’” 需在指令中明确写出分支逻辑

❌ 目前做不到的事(避免预期偏差):

  • 无法操作iOS设备(无官方支持)
  • 无法识别动态验证码图片(需人工接管)
  • 无法处理游戏内复杂UI(如《原神》角色选择界面)
  • 无法在息屏状态下操作(需保持亮屏)

总结

Open-AutoGLM不是又一个“能跑通Demo”的AI项目,而是一个真正面向日常生产力的手机自动化工具。它用最朴素的方式解决了最烦人的事:把人从重复点击中解放出来。

回顾整个落地过程,最关键的三个认知是:

  1. 环境准备比模型更重要:80%的失败源于ADB配置或ADB Keyboard未生效,而非AI能力不足;
  2. 指令质量决定成功率:与其调参,不如花30秒把指令写得更像人话;
  3. 人机协同才是常态:它不是取代你,而是当你需要时立刻接手,在敏感环节主动交还控制权。

现在,你已经拥有了让手机“听懂你、替你做”的能力。下一步,不妨从一个小任务开始:
今晚回家路上,用语音输入“打开高德,导航到公司,避开拥堵”,看它能否在你下车前就规划好路线。

技术的价值,从来不在多炫酷,而在多自然地融入生活。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐