phone-eye:通过视觉与 UI 树融合让 AI 代理操作真实 Android 手机

前言

在开发智能体时,让代码在真实的 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 提供了以下核心能力:

  1. 视觉感知:能够获取屏幕截图并读取屏幕内容。
  2. 屏幕操作:支持点击、滑动和打字。
  3. 稳定性:支持 Wi-Fi ADB 断开连接后的自动重连,确保连接稳定。
  4. 无监督运行:支持 24/7 无监督运行,遇到意外弹窗时,代理会读取并处理这些弹窗。
  5. 多设备支持:支持连接多部手机,每个手机需要单独运行一个 phone-eye 进程,通过设置 ANDROID_SERIAL 环境变量进行区分。

安装与启用

安装前请确保电脑上已安装 Python 3.10+ 和 git。

  1. 克隆仓库并安装依赖:
    git clone https://github.com/boheastill/phone-eye && cd phone-eye && pip install -r requirements.txt
  1. 配置环境变量(以设置视觉模型 API Key 为例):
    export PHONE_EYE_VISION_API_KEY=<your_api_key>
  1. 启动服务:
    python server.py

典型用法

Phone-Eye 适用于以下场景:

  • 移动 Web QA 循环:验证智能体在真实屏幕上的工作结果。
  • OEM 设置向导:智能体处理设备启动时的各种弹窗。
  • 表单回归检查:自动化测试表单的填写和验证。
  • 无监督哨兵:让智能体在夜间值守,唤醒设备、解锁、操作并截图。

适用场景与注意

在部署 Phone-Eye 时,需要注意以下限制和注意事项:

  • 锁屏限制:锁屏状态下,屏幕可以读取,但无法进行操作。
  • 输入法限制:打字功能仅支持 ASCII 字符;中文输入需要使用剪贴板技巧。
  • 新设备控制:在手动启用 USB 调试之前,无法完全控制一部全新的手机。
  • 首次授权:在新的电脑上连接手机时,第一个“允许 USB 调试?”的弹窗需要人工点击一次。
  • 厂商 ROM 限制:某些厂商 ROM(如 MIUI)会限制锁屏状态下的输入操作。
  • 操作系统:目前不支持 iOS。
  • 视觉质量:视觉效果取决于所使用的模型。
  • 部署要求:手机上无需安装应用,不需要 Root 权限,也不需要额外的服务器。

结尾

Phone-Eye 通过结合视觉模型与 UI 树,为 AI 代理提供了操作真实 Android 设备的能力。对于需要进行自动化测试、设备操作或需要物理交互的智能体开发场景,这是一个实用的工具。更多细节和使用示例,请参考其 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜