极客新玩具:用AI接管你的安卓设备(附代码)

摘要:本文带你亲手部署智谱开源的 Open-AutoGLM 手机 AI Agent 框架,无需云端依赖、不上传截图、完全本地运行。从零开始连接真机、配置输入法、下载模型、执行指令,全程可复现。你将亲眼看到——一句“打开小红书搜美食”,AI 自动点亮屏幕、解锁、启动App、点击搜索框、输入文字、按下回车。这不是概念演示,是今天就能跑通的极客实践。


1. 这不是遥控器,是你的手机“数字分身”

1.1 它到底能做什么?

Open-AutoGLM 不是另一个“语音助手”,它是一套真正理解手机界面、能自主决策并动手操作的 AI 助理。它的能力边界,由你的一句话定义:

  • “帮我在美团点一份黄焖鸡米饭,备注不要香菜”
    → AI 自动打开美团、定位店铺、选择套餐、填写备注、提交订单
  • “打开微信,找到‘产品组’群,把刚截的图发过去”
    → AI 切换到微信、搜索群名、进入聊天页、调出相册、选图发送
  • “在B站搜索‘大模型部署教程’,只看播放量超50万的视频”
    → AI 启动B站、输入关键词、筛选排序、点击目标视频

关键在于:它不靠预设脚本,而是实时看图、读UI、想步骤、再动手。每一次操作,都基于对当前屏幕状态的真实理解。

1.2 和普通自动化工具的本质区别

工具类型 依赖方式 灵活性 隐私性 学习成本
Tasker / Automate 基于坐标/ID硬编码 极低(界面一变就失效) 高(纯本地) 高(需写逻辑)
Appium / UI Automator 基于元素XPath/ID 中(需适配不同App结构) 中(需调试权限) 高(需写代码)
Open-AutoGLM 基于视觉+语言理解 极高(一句话适配所有App) 极高(截图不出设备) 极低(只需说人话)

它把“写自动化脚本”的活,交给了大模型。你不用再研究按钮在哪、怎么找元素,只要告诉它“要什么”,剩下的交给AI。

1.3 为什么现在就能玩?三个现实优势

  • 真·本地运行:模型跑在你的Mac或Windows电脑上,手机截图全程不离设备,隐私零泄露
  • 真·免配置启动:不需要GPU服务器、不依赖云API、不填密钥,一条命令直接开干
  • 真·真机可用:不是模拟器Demo,是USB直连你手里的小米、华为、OPPO、三星,实打实操控

这不是未来科技,是你今晚插根数据线就能上手的极客玩具。


2. 三步打通“人话→手机动作”的全链路

2.1 整体工作流:感知-思考-行动闭环

Open-AutoGLM 的每一次任务执行,都严格遵循这个循环:

┌─────────────────────────────────────────────────────────────┐
│                    AI 接管手机全流程                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌──────────────────┐     ┌──────────────────┐           │
│   │    感知层        │     │     思考层       │           │
│   │ • 截图当前屏幕   │ ──→ │ • 看懂按钮/文字  │           │
│   │ • 解析UI元素树   │     │ • 理解App状态    │           │
│   │ • 获取Activity名 │     │ • 规划下一步动作 │           │
│   └──────────────────┘     └──────────────────┘           │
│              ↓                      ↓                      │
│   ┌───────────────────────────────────────────────────────┐ │
│   │                 执行层                                │ │
│   │ • Tap (x,y) —— 点击坐标                              │ │
│   │ • Type("美食") —— 输入文字                            │ │
│   │ • Launch("com.xiaohongshu.app") —— 启动App            │ │
│   │ • Swipe(500,1000,500,300) —— 向上滑动                │ │
│   └───────────────────────────────────────────────────────┘ │
│              ↑                                              │
│              └──────────────────────────────────────────────┘
│                     循环直到任务完成(或人工介入)             │
└─────────────────────────────────────────────────────────────┘

整个过程全自动,但你始终拥有控制权——当遇到支付密码、短信验证码等敏感场景,AI会主动暂停,等你手动输入后继续。

2.2 核心组件拆解:每个模块都为你而简

视觉感知模块
每次操作前,AI先“看”一眼手机屏幕:

  • adb shell screencap -p → 获取PNG截图(约1MB/张)
  • adb shell uiautomator dump → 获取XML界面树(含所有按钮文本、坐标、层级)
  • 两者结合,让AI既知道“屏幕上有什么”,也清楚“每个东西在哪”

多模态推理引擎
AutoGLM-Phone-9B 模型同时接收:

  • 文本指令(如:“打开抖音搜AI教程”)
  • 截图图像(当前界面长什么样)
  • UI结构数据(哪些是可点击按钮、输入框在哪)
    → 输出带思考过程的JSON指令:
<think>用户要搜AI教程,当前在抖音首页,顶部有搜索框,ID为'com.ss.android.ugc.aweme:id/a6d'</think>
<answer>{"action": "Tap", "element_id": "com.ss.android.ugc.aweme:id/a6d"}</answer>

ADB执行中枢
把模型输出的JSON,翻译成真实ADB命令:

  • {"action": "Tap", "element_id": "xxx"}adb shell input tap 520 180
  • {"action": "Type", "text": "AI教程"}adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'AI教程'
  • {"action": "Launch", "package": "com.ss.android.ugc.aweme"}adb shell am start -n com.ss.android.ugc.aweme/.main.MainActivity

整套链路,没有黑盒,每一步你都能在终端里看到、验证、甚至手动复现。


3. 本地部署实战:从零开始,30分钟搞定

3.1 环境准备:只要三样东西

项目 要求 验证方式
你的电脑 Windows 10+/macOS 13+/Linux Ubuntu 20.04+ python --version ≥ 3.10
安卓手机 Android 7.0+(真机优先,模拟器次选) 设置→关于手机→版本号连点7次开启开发者模式
数据线 支持数据传输的USB-C/USB-A线(纯充电线不行) adb devices 能识别出设备

提示:Mac用户推荐用Homebrew安装ADB;Windows用户直接下载platform-tools,解压后加到系统PATH。

3.2 手机端设置:四步到位

  1. 开启开发者选项
    设置 → 关于手机 → 连续点击“版本号”7次 → 弹出“您已处于开发者模式”

  2. 开启USB调试
    设置 → 系统 → 开发者选项 → 打开“USB调试”和“USB安装”

  3. 安装ADB Keyboard(关键!)
    下载 ADBKeyboard.apk

    adb install ADBKeyboard.apk
    

    设置 → 语言和输入法 → 管理键盘 → 启用“ADB Keyboard”

  4. 首次连接授权
    用数据线连接手机和电脑 → 手机弹出“允许USB调试?”→ 勾选“始终允许”→ 点确定
    终端执行:

    adb devices
    # 正常输出应为:
    # List of devices attached
    # 1234567890abcdef    device
    

3.3 一键部署控制端

# 1. 克隆官方仓库(国内用户建议用镜像加速)
git clone https://github.com/zai-org/Open-AutoGLM.git
cd Open-AutoGLM

# 2. 创建虚拟环境(推荐,避免依赖冲突)
python -m venv venv
source venv/bin/activate  # macOS/Linux
# venv\Scripts\activate  # Windows

# 3. 安装核心依赖(自动适配CPU/GPU)
pip install -r requirements.txt
pip install -e .

# 4. 验证安装成功
python -c "from phone_agent.adb import list_devices; print(list_devices())"
# 应输出已连接设备列表

注意:如果报错 No module named 'torch',请先单独安装:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu


4. 第一次接管:用一句话启动你的AI助理

4.1 最简启动命令(USB直连)

确保手机已通过USB连接且被adb devices识别,执行:

python main.py \
  --device-id $(adb devices | sed -n '2p' | awk '{print $1}') \
  --local \
  --model ./models/AutoGLM-Phone-9B \
  "打开小红书搜索美食"
  • --device-id:自动获取第一个连接设备ID
  • --local:启用本地MLX推理(无需云服务)
  • --model:指向你已下载的模型路径(见下一节)
  • 最后字符串:你的自然语言指令

你会看到终端逐行输出:

[INFO] 截图已保存: screenshots/20240520_142211.png  
[INFO] UI结构已解析: elements.xml  
[INFO] 模型正在思考...  
<think>当前在桌面,小红书图标在第三行第二列,需要点击启动</think>  
<answer>{"action": "Tap", "element": [420, 1280]}</answer>  
[INFO] 执行: adb shell input tap 420 1280  
[INFO] 等待应用启动...  

几秒后,手机自动亮屏、解锁(如需)、打开小红书、点击搜索框、输入“美食”、按下搜索键——全程无需你碰手机。

4.2 模型下载指南(国内用户友好版)

模型约20GB,推荐用国内镜像加速:

# 方法1:使用ModelScope(最快,推荐)
pip install modelscope
python -c "
from modelscope import snapshot_download
snapshot_download('ZhipuAI/AutoGLM-Phone-9B', local_dir='./models/AutoGLM-Phone-9B')
"

# 方法2:HuggingFace镜像(备选)
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --resume-download zai-org/AutoGLM-Phone-9B --local-dir ./models/AutoGLM-Phone-9B

小技巧:若磁盘空间紧张,可直接下载4-bit量化版(约6.5GB),加载更快:
huggingface-cli download --resume-download zai-org/AutoGLM-Phone-9B-4bit --local-dir ./models/AutoGLM-Phone-9B-4bit

4.3 WiFi无线控制(摆脱数据线束缚)

  1. 手机开启“无线调试”(设置→开发者选项→无线调试→开启)
  2. 电脑与手机连同一WiFi,执行:
    # 先用USB临时开启TCP/IP
    adb tcpip 5555
    # 断开USB,用WiFi连接(IP地址在手机无线调试页面可见)
    adb connect 192.168.1.100:5555
    adb devices  # 应显示 192.168.1.100:5555    device
    
  3. 启动命令替换--device-id
    python main.py \
      --device-id 192.168.1.100:5555 \
      --local \
      --model ./models/AutoGLM-Phone-9B \
      "打开B站刷3个视频"
    

5. 实战任务库:复制粘贴,立刻生效

5.1 社交通讯类(高频刚需)

# 给指定联系人发固定消息
python main.py --local --model ./models/AutoGLM-Phone-9B "打开微信,找到张三,发送:会议推迟到明天下午三点"

# 发送图片(需提前存入手机相册)
python main.py --local --model ./models/AutoGLM-Phone-9B "打开微信,给李四发昨天拍的夕阳照片"

# 多人群发通知
python main.py --local --model ./models/AutoGLM-Phone-9B "打开微信,在‘项目组’群里发:今日站会取消"

5.2 电商外卖类(解放双手)

# 美团点单(自动定位、选店、加购、提交)
python main.py --local --model ./models/AutoGLM-Phone-9B "打开美团外卖,点一份黄焖鸡米饭,备注不要香菜,送到工位"

# 淘宝比价(跨店搜索+排序)
python main.py --local --model ./models/AutoGLM-Phone-9B "打开淘宝,搜索蓝牙耳机,按销量排序,打开第一个商品页"

# 快递查询(自动跳转物流页)
python main.py --local --model ./models/AutoGLM-Phone-9B "打开菜鸟,查快递单号SF123456789CN"

5.3 内容创作类(极客生产力)

# 小红书图文生成(自动填充文案+发布)
python main.py --local --model ./models/AutoGLM-Phone-9B "打开小红书,新建笔记,标题:Mac本地部署AI助理实录,正文:今天成功用Open-AutoGLM接管了我的安卓手机..."

# B站投稿(自动填标题、标签、封面)
python main.py --local --model ./models/AutoGLM-Phone-9B "打开B站,发布新视频,标题:手把手教你用AI控制手机,标签:AI,自动化,极客"

# 网易云歌单整理(自动创建+添加歌曲)
python main.py --local --model ./models/AutoGLM-Phone-9B "打开网易云音乐,创建歌单‘AI学习曲库’,添加周杰伦的晴天、夜曲"

5.4 故障自愈:当AI卡住时,你该做什么

  • 场景1:遇到登录页/验证码
    AI会输出:<takeover>请手动输入手机号验证码</takeover>
    → 你输入验证码 → 回车 → AI继续执行

  • 场景2:截图失败(黑屏)
    常见于银行/支付App,AI会提示:<takeover>检测到安全限制,需人工操作</takeover>
    → 你手动完成支付 → 回车 → AI继续

  • 场景3:长时间无响应
    Ctrl+C 中断,重新运行命令即可,无需重启模型

  • 场景4:点击位置偏移
    在命令后加 --calibrate 参数,AI会自动校准屏幕坐标系:

    python main.py --local --model ./models/AutoGLM-Phone-9B --calibrate "打开微信"
    

6. 进阶玩法:让AI更懂你

6.1 Python API调用:嵌入你的工作流

from phone_agent import PhoneAgent
from phone_agent.model import ModelConfig
from phone_agent.agent import AgentConfig

# 配置本地模型(支持量化版)
model_config = ModelConfig(
    model_name="./models/AutoGLM-Phone-9B-4bit",
    is_local=True,
    max_tokens=2000,
)

# 配置Agent行为
agent_config = AgentConfig(
    max_steps=30,      # 最多执行30步
    verbose=True,      # 显示详细日志
    lang="cn",         # 中文指令
    device_id="192.168.1.100:5555",  # WiFi设备
)

# 创建并运行
agent = PhoneAgent(model_config=model_config, agent_config=agent_config)
result = agent.run("打开抖音,关注博主dycwo11nt61d")
print("任务结果:", result)

6.2 自定义敏感操作拦截

def my_payment_guard(message: str) -> bool:
    """支付类操作强制二次确认"""
    if "支付" in message or "付款" in message or "余额" in message:
        print(f"  检测到高风险操作:{message}")
        return input("确认执行?(y/N): ").lower() == "y"
    return True  # 其他操作默认放行

agent = PhoneAgent(
    confirmation_callback=my_payment_guard,
)

6.3 批量任务处理:解放重复劳动

tasks = [
    "打开微信,给王五发:周末聚餐地点改到三里屯",
    "打开高德地图,搜索‘最近的咖啡馆’",
    "打开Keep,开始30分钟燃脂训练",
]

for i, task in enumerate(tasks, 1):
    print(f"\n--- 执行第{i}个任务:{task} ---")
    result = agent.run(task)
    print(f" 完成:{result.get('status', 'unknown')}")
    agent.reset()  # 重置状态,准备下一个任务

7. 常见问题速查(亲测有效)

Q1:adb devices 显示 unauthorized

→ 手机上未点“允许USB调试”,拔插数据线重试;或在开发者选项中关闭再开启USB调试

Q2:执行时报错 No module named 'mlx'

→ 你用的是Windows/macOS ARM芯片?请先安装:

pip install mlx "git+https://github.com/Blaizzy/mlx-vlm.git@main"

Q3:中文输入不了,显示方块或乱码

→ 确认已安装ADB Keyboard,并在手机“语言和输入法”中设为默认输入法
→ 终端验证:adb shell ime list -s | grep adb 应输出 com.android.adbkeyboard/.AdbIME

Q4:模型加载慢/内存不足

→ 使用4-bit量化模型(见4.2节)
→ 关闭浏览器、IDE等内存大户
→ Mac用户:活动监视器→强制退出“WindowServer”进程(可释放数GB显存)

Q5:WiFi连接后adb devices显示offline

→ 手机端开启“无线调试”后,需在电脑端先执行:

adb kill-server
adb start-server
adb connect 192.168.1.100:5555

Q6:任务执行到一半卡住不动

→ 检查手机是否息屏/锁屏 → AI无法操作黑屏界面,请保持屏幕常亮
→ 或按 Ctrl+C 中断后,加 --timeout 60 参数延长等待时间


8. 总结:这不只是一个工具,而是一种新交互范式

Open-AutoGLM 的价值,远不止于“自动点手机”。它代表了一种更自然的人机协作方式:

  • 你不再学机器的语言(XPath、坐标、ADB命令),而是让机器学你的语言(“帮我订杯咖啡”)
  • 你不再维护脆弱的脚本(App更新就失效),而是交付一个能自主适应的智能体(看图识UI,动态规划)
  • 你不再妥协隐私与便利(云端API要传截图),而是在本地获得完整控制权(所有数据,永不离机)

作为极客,我们追求的从来不是“能用”,而是“够酷、够自由、够透明”。Open-AutoGLM 把这三个词,变成了终端里一行行可读、可改、可验证的代码。

现在,你的安卓手机已经准备好被接管。
插上数据线,打开终端,输入第一句指令——
真正的数字分身时代,从这一行命令开始。

---

> **获取更多AI镜像**
>
> 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
Logo

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

更多推荐