前言¶
在开发智能体时,让代码在真实的 Android 设备上运行是一个常见需求。Phone-Eye 旨在解决这个问题。它通过 adb 在设备上提供视觉和操作能力,让 AI 代理能够“看”到屏幕并执行点击、滑动等操作。这是通过将视觉模型与 UI 树(Accessibility Tree)融合实现的,适用于任何 MCP 客户端。
这是什么¶
Phone-Eye 是一个开源的 MCP 插件,能够让 AI 代理通过 adb 直接看到并操作真实的 Android 手机。它不需要在手机上安装额外的应用,也不需要 Root 权限或额外的服务器。
- 核心能力:视觉 + UI 树融合。
- 支持对象:任何 MCP 客户端(Claude Code、Codex、DSH 等)。
- 维护者:boheastill。
- 许可证:MIT。
核心功能¶
Phone-Eye 提供了以下核心能力:
- 视觉感知:能够获取屏幕截图并读取屏幕内容。
- 屏幕操作:支持点击、滑动和打字。
- 稳定性:支持 Wi-Fi ADB 断开连接后的自动重连,确保连接稳定。
- 无监督运行:支持 24/7 无监督运行,遇到意外弹窗时,代理会读取并处理这些弹窗。
- 多设备支持:支持连接多部手机,每个手机需要单独运行一个 phone-eye 进程,通过设置
ANDROID_SERIAL环境变量进行区分。
安装与启用¶
安装前请确保电脑上已安装 Python 3.10+ 和 git。
- 克隆仓库并安装依赖:
git clone https://github.com/boheastill/phone-eye && cd phone-eye && pip install -r requirements.txt
- 配置环境变量(以设置视觉模型 API Key 为例):
export PHONE_EYE_VISION_API_KEY=<your_api_key>
- 启动服务:
python server.py
典型用法¶
Phone-Eye 适用于以下场景:
- 移动 Web QA 循环:验证智能体在真实屏幕上的工作结果。
- OEM 设置向导:智能体处理设备启动时的各种弹窗。
- 表单回归检查:自动化测试表单的填写和验证。
- 无监督哨兵:让智能体在夜间值守,唤醒设备、解锁、操作并截图。
适用场景与注意¶
在部署 Phone-Eye 时,需要注意以下限制和注意事项:
- 锁屏限制:锁屏状态下,屏幕可以读取,但无法进行操作。
- 输入法限制:打字功能仅支持 ASCII 字符;中文输入需要使用剪贴板技巧。
- 新设备控制:在手动启用 USB 调试之前,无法完全控制一部全新的手机。
- 首次授权:在新的电脑上连接手机时,第一个“允许 USB 调试?”的弹窗需要人工点击一次。
- 厂商 ROM 限制:某些厂商 ROM(如 MIUI)会限制锁屏状态下的输入操作。
- 操作系统:目前不支持 iOS。
- 视觉质量:视觉效果取决于所使用的模型。
- 部署要求:手机上无需安装应用,不需要 Root 权限,也不需要额外的服务器。
结尾¶
Phone-Eye 通过结合视觉模型与 UI 树,为 AI 代理提供了操作真实 Android 设备的能力。对于需要进行自动化测试、设备操作或需要物理交互的智能体开发场景,这是一个实用的工具。更多细节和使用示例,请参考其 GitHub 仓库。