前言¶
在開發智能體時,讓代碼在真實的 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 倉庫。