ScreenEnv 發布:部署全堆疊桌面代理程式

Hugging Face 推出了 ScreenEnv,一個旨在於 Docker 容器中建立隔離 Ubuntu 桌面環境的 Python 函式庫。此工具讓開發者能在沙盒環境中部署與測試 GUI 代理程式(電腦使用代理),使代理程式能看到、點擊並與真實應用程式互動。

沙盒式桌面環境(供 GUI 代理程式使用)

ScreenEnv 提供完整的虛擬桌面會話,可透過程式碼全程控制。與可能脆弱或需複雜 VM 設定的傳統自動化框架不同,ScreenEnv 利用 Docker 提供一個隔離、可重現且可在 10 秒內部署的環境。它支援 AMD64 與 ARM64 架構。

  • Full Desktop Control:自動化滑鼠與鍵盤、視窗管理、應用程式啟動、檔案操作與終端機存取。
  • Session Management:能夠錄製完整會話,並全方位管理桌面體驗。
  • Docker Native:透過使用 Docker 容器進行隔離,省去複雜的 VM 需求。

整合方式

ScreenEnv 提供兩種不同的方法,將代理框架與後端系統整合:

直接沙盒 API

對於需要細緻控制或使用自訂代理框架的開發者,直接沙盒 API 允許以程式方式控制。它包括透過 Sandbox 類別直接啟動應用程式、輸入文字與擷取螢幕截圖的功能。

MCP 伺服器整合

對於支援模型上下文協定(Model Context Protocol,MCP)的 AI 系統,ScreenEnv 提供 MCPRemoteServer。這讓 AI 代理程式能連接至桌面環境,並透過 MCP 工具進行控制,例如呼叫「screenshot」工具以取得當前螢幕狀態的影像位元組。

使用 smolagents 建置桌面代理程式

ScreenEnv 原生相容於 smolagents,可用於建立自訂桌面代理程式。此流程包含三個主要步驟:

  1. Model Selection:使用者可透過 OpenAI、Hugging Face Inference Endpoints(例如 Qwen2.5-VL-7B-Instruct)、本地 Transformers 模型,或透過 LiteLLM(例如 Claude 3.5 Sonnet)等連接器,選擇後端視覺語言模型(VLM)。
  2. Agent Definition:繼承自 DesktopAgentBase,開發者可實作 _setup_desktop_tools 方法,以定義代理程式的行動空間。範例工具包括 click(x, y)write(text)press(key)open(file_or_url)launch_app(app_name)
  3. Execution:可為代理程式指派特定任務,例如開啟 LibreOffice 撰寫並儲存報告,並在具體的 Sandbox 環境中以特定解析度(例如 1920x1080)執行。

未來路線圖

雖然目前專注於 Ubuntu,ScreenEnv 目標是擴展支援至 Android、macOS 與 Windows。其目標是實現跨平台 GUI 自動化,並為基準測試與評估專門建立可重現的沙盒環境。

Sources