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,可用於建立自訂桌面代理程式。此流程包含三個主要步驟:
- Model Selection:使用者可透過 OpenAI、Hugging Face Inference Endpoints(例如 Qwen2.5-VL-7B-Instruct)、本地 Transformers 模型,或透過 LiteLLM(例如 Claude 3.5 Sonnet)等連接器,選擇後端視覺語言模型(VLM)。
- Agent Definition:繼承自
DesktopAgentBase,開發者可實作_setup_desktop_tools方法,以定義代理程式的行動空間。範例工具包括click(x, y)、write(text)、press(key)、open(file_or_url)與launch_app(app_name)。 - Execution:可為代理程式指派特定任務,例如開啟 LibreOffice 撰寫並儲存報告,並在具體的
Sandbox環境中以特定解析度(例如 1920x1080)執行。
未來路線圖
雖然目前專注於 Ubuntu,ScreenEnv 目標是擴展支援至 Android、macOS 與 Windows。其目標是實現跨平台 GUI 自動化,並為基準測試與評估專門建立可重現的沙盒環境。