背景:为什么要在 Codex 里控制手机?
Agent 操作电脑已经普及了——打开浏览器、整理文件、切换 App,这些都很常见。但手机场景不一样:
- 手机里有你的真实账号、登录状态
- 你想让 Agent 帮你点外卖、刷抖音、查价格
- 但手机端稳定「看见屏幕 + 点击操作」的方案很少
本文介绍的两套方案,分别面向 iPhone(macOS) 和 Android,目前可以做到:刷抖音、刷朋友圈、点外卖、比价搜索、甚至玩游戏。
⚠️ 安全提醒:支付、身份认证、不可逆操作必须人工确认,不要让 Agent 代你完成。
方案一:iPhone + macOS —— Phone Harness + iPhone 镜像
核心原理
Phone Harness 借助 macOS 的 iPhone 镜像功能,把手机画面变成 Mac 上的一个窗口。Agent 的工作循环是:
截取镜像窗口 → OCR/多模态识别内容 → 判断下一步 → 模拟点击/滑动 → 再次截图验证
没有控件树时,屏幕上真实出现的内容就是唯一依据。所以每次只做一个动作,做完必须验证。
环境准备
- Mac:macOS Sequoia 或更高版本
- iPhone:能够完成镜像配对
- Python 3.12 或更高版本
- Codex(或其他能读取 Skill 并执行本地命令的 Agent)
第一步:安装 Phone Harness
把仓库克隆到固定位置(建议 ~/.phone-harness):
cd ~/.phone-harness
pip install -e .
这会安装全局的 phone-harness 命令。如果终端能运行但 Agent 新开的终端报 command not found,先检查 Python 的 scripts/bin 目录是否已在 PATH 里。
第二步:注册成 Codex Skill
Claude Code 和 Codex 分别执行对应的 skill 注册命令(具体见仓库 README)。更新仓库后,务必再跑一次 phone-harness skill > .../SKILL.md,避免 Agent 读的是旧版说明。
第三步:授予系统权限(最容易踩坑)
Phone Harness 需要做两件事:看见屏幕 和 发送点击/键盘事件。对应 macOS 系统设置里的两项权限:
| 权限 | 作用 | 设置路径 |
|---|---|---|
| 辅助功能 | 点击、滑动、键盘输入 | 系统设置 → 隐私与安全 → 辅助功能 |
| 屏幕与系统录音 | 截取镜像画面 | 系统设置 → 隐私与安全 → 屏幕录制 |
在两个列表里勾选真正执行任务的 App(比如 Terminal、iTerm 或 Codex 桌面端)。设置完成后完全退出并重开该 App,再重新建立 iPhone 镜像。
第四步:自检 —— 跑 doctor
phone-harness --doctor
这会自动检查 PyObjC、辅助功能、屏幕录制、镜像 App、窗口、截图和 OCR。看到多个 FAIL 时不要一次性全改,从第一个失败项开始修,后面的错误往往是连锁反应。
全部通过后再跑最小脚本确认链路连通:
phone-harness <<'PY'
print(screen_info())
PY
能返回窗口边界就说明 Agent 已经能「看见」镜像了。
第五步:第一次任务 —— 从低风险开始
不建议一开始就跑十几步的复杂流程。 第一个任务选一件小事:
「我今天中午要吃辣椒炒肉盖饭,半个小时内帮我在美团和淘宝闪购上找到我公司附近的高分外卖商家,筛选出最便宜的三家让我挑选。」
整个任务大约 20 分钟。速度不快是因为本地控制方案常见问题:截图全黑、界面可见却无法点击、OCR 识别错误、任务中途停止。但只要任务足够小、每一步重新验证、停止条件写清楚,成功率是有保障的。
方案二:Android —— 无线 ADB + 控件树
Android 生态更开放,Agent 可以直接读取控件树(按钮 ID、文本、坐标),比 iPhone 镜像效率高很多。
环境准备
- Mac / Linux / Windows 任一主机,已安装 ADB
- Android 11 以上的闲置机
- 主机与手机在同一 Wi-Fi 下
第一步:开启手机开发者选项与无线调试
- 手机 → 设置 → 关于手机 → 连点 7 次版本号,开启「开发者选项」
- 进入「开发者选项」→「无线调试」→ 开启
- 在无线调试页面点击「使用配对码配对设备」,记下 IP 地址、端口和配对码
第二步:主机安装并配对 ADB
brew install android-platform-tools # 或 apt install adb
adb mdns services # 查找手机广播的服务
adb pair <手机IP>:<配对端口> # 输入配对码完成配对
adb connect <手机IP>:<连接端口> # 建立连接
adb devices -l # 确认设备在线
⚠️ 配对端口和连接端口通常不同,以
adb mdns services返回的真实地址为准,不要照抄示例。
第三步:中文输入 —— 安装 ADBKeyBoard
原生 adb shell input text 只支持 ASCII。中文输入需要额外工具:
adb install ADBKeyBoard.apk # 手机上安装 ADBKeyBoard
adb shell ime set com.android.adbkeyboard/.AdbKeyboard
输入时通过 Base64 广播写入中文,写入后重新读取页面并切回原输入法。
第四步:验收测试 —— 只读比价任务
让 Agent 分别在淘宝和京东搜索某个商品,读取标题、型号、价格,不加入购物车、不进入支付。遇到验证码或登录失效立即停止。
例如搜索 RTX 5090,Agent 能读出多个 SKU 的价格,但要注意:
同一名称下可能混有 5090 和 5090D,品牌、店铺、优惠条件都不同,不能直接判断哪个平台更便宜。正式比价时必须记录具体型号和优惠条件,无法确认的字段标记为「未确认」。
第五步:扩展成定时任务
验收通过后,可以补上定时器、日志、结果推送和停止条件,做成持续运行的监控 Agent:
- 循环监控淘宝/京东价格
- 价格低于阈值时推送消息
- 遇到验证码 / 登录失效 / 页面连续无变化立即停止
- 远程维护用 SSH,不要把 ADB 端口暴露到公网
对比:两套方案怎么选?
| 维度 | iPhone + 镜像 | Android + ADB |
|---|---|---|
| 适用场景 | 控制手边正在用的真实 iPhone | 闲置 Android 机长期挂机 |
| 效率 | 较低(OCR 识别 + 模拟点击) | 较高(直接读控件树) |
| 配置难度 | 中等(权限管理是关键) | 较低(配对一次即可) |
| 中文输入 | 自然(系统级) | 需 ADBKeyBoard |
| 稳定性 | 依赖镜像连接 | 依赖 Wi-Fi 稳定 |
| 适合任务 | 点外卖、刷朋友圈、简单浏览 | 比价监控、定时打卡、信息收集 |
实践建议
- 从只读任务开始 —— 先让 Agent 看懂屏幕,再让它点击
- 每次只做一步 —— 截图 → 确认 → 点击 → 再截图验证
- 写好停止条件 —— 验证码、登录失效、页面不变化都要立即停下
- 支付环节交给人 —— Agent 不负责付钱,也不负责身份认证
- 长期任务要隔离 —— 用 Docker / SSH 远程维护,不要开放 ADB 到公网
趋势观察
桌面端 Agent 市场已趋近饱和,下一步必然是向移动端拓张。这套方案的效率虽然还不够快,但它证明了手机自动化在技术上已经可行。未来可能出现专门为手机场景设计的 Agent 产品。
来源:今日头条「长路寰宇」《让 Codex 接管你的手机点外卖、玩游戏、刷抖音,手把手教你怎么搞》(2026-09-05)
资料最后核对日期:2026-09-12 · 内容整理自 CodexGuide 社区公开教程