Phone Controller | 手机操控者
通过自然语言控制安卓手机,AI 理解屏幕内容并自动规划执行步骤。
核心用法
用户直接说指令,如:
- "打开小红书搜索美食"
- "在QQ群里发消息"
- "帮我订外卖"
直接执行,无需额外说明。
执行前检测(必须)
每次使用前,先确认手机已连接且 ADB Keyboard 就绪:
cd ~/.openclaw/workspace/projects/phone-controller/Open-AutoGLM && source .venv/bin/activate
python main.py --list-devices --quiet
预期输出:✓ 设备ID 和 ADB Keyboard...✅ OK
完整部署指南
第一步:电脑端配置
安装 ADB(Linux/macOS)
# Linux
sudo apt install android-tools-adb
# macOS
brew install android-platform-tools
# 验证
adb --version
克隆项目
git clone https://github.com/zai-org/Open-AutoGLM.git \
~/.openclaw/workspace/projects/phone-controller/Open-AutoGLM
安装 Python 依赖
cd ~/.openclaw/workspace/projects/phone-controller/Open-AutoGLM
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/pip install -e .
第二步:手机端配置
1. 开启开发者模式
- 设置 → 关于手机 → 版本号连续点击 10 次
- 返回设置 → 系统 → 看到「开发者选项」
2. 开启 USB 调试
- 设置 → 开发者选项 → USB 调试 → 开启
- 手机用 USB 连接电脑
3. 安装并启用 ADB Keyboard
- 下载 ADBKeyboard.apk:https://github.com/senzhk/ADBKeyBoard/blob/master/ADBKeyboard.apk
- 安装后:设置 → 系统 → 语言与输入法 → 键盘 → 启用 ADB Keyboard
- 设为默认输入法
4. 授权 USB 调试
- 手机弹出「是否允许 USB 调试」→ 点击「允许并始终允许」
5. 验证连接
adb devices -l
# 预期输出示例:
# 5D7XUW9DYTWONR59 device usb:1-4 product:PDYT20 model:PDYT20 device:OP4E21
第三步:配置 API Key
从 https://open.bigmodel.cn 获取 API Key,然后在命令中使用:
python main.py \
--base-url https://open.bigmodel.cn/api/paas/v4 \
--model "autoglm-phone" \
--apikey "你的API_KEY" \
--max-steps 50 \
"你的指令"
支持的操作
| 操作 | 描述 | 示例 |
|---|---|---|
Launch | 启动应用 | Launch app="微信" |
Tap | 点击坐标 | Tap element=[500,300] |
Type | 输入文本 | Type text="你好" |
Swipe | 滑动屏幕 | Swipe start=[400,900] end=[400,300] |
Back | 返回 | - |
Home | 回桌面 | - |
Long Press | 长按 | - |
Double Tap | 双击 | - |
Wait | 等待 | Wait duration="2 seconds" |
Take_over | 人工接管 | 登录/验证码等 |
常见问题排查
问题:adb devices 找不到设备
解决:
adb kill-server
adb start-server
adb devices -l
问题:手机提示「是否允许 USB 调试」
解决: 点击「允许并始终允许」(防止每次都要确认)
问题:OnePlus/OPPO 等设备 ADB Keyboard 检测失败
解决: main.py 已使用 dumpsys input_method 替代 ime list -s,无需手动修复
问题:ADB Keyboard 无法输入中文
说明: ADB Keyboard 仅支持英文/数字;中文由手机其他输入法完成,无需操作
问题:QQ/微信 等应用显示敏感界面无法截图
说明: 应用有安全限制,agent 会提示 Take_over 需要人工接管
项目来源
本技能基于 zai-org/Open-AutoGLM,开源项目,持续更新。
文件结构
~/.openclaw/workspace/skills/phone-controller/
SKILL.md # 技能说明
~/.openclaw/workspace/projects/phone-controller/
README.md # 用户级配置说明(含 API Key)
Open-AutoGLM/ # GLM 官方项目
main.py # 主程序(含 OnePlus 补丁)
.venv/ # Python 虚拟环境
phone_agent/ # 核心模块