ScreenEnv リリース:フルスタック デスクトップエージェントのデプロイ
Hugging Face は ScreenEnv を導入しました。これは Docker コンテナ内に分離された Ubuntu デスクトップ環境を作成することを目的とした Python ライブラリです。このツールにより、開発者は GUI エージェント(コンピュータ使用エージェント)をサンドボックス環境でデプロイおよびテストでき、エージェントは実際のアプリケーションを見て、クリックし、操作することができます。
GUI エージェント向けサンドボックス化デスクトップ環境
ScreenEnv はコードで完全に制御できる完全な仮想デスクトップセッションを提供します。従来の自動化フレームワークが脆弱であったり、複雑な VM 設定が必要だったりするのとは異なり、ScreenEnv は Docker を活用して、分離され、再現性があり、10 秒未満でデプロイ可能な環境を提供します。AMD64 と ARM64 の両方のアーキテクチャをサポートしています。
環境の主な機能は次のとおりです:
- フルデスクトップ制御: マウスとキーボードの自動化、ウィンドウ管理、アプリケーション起動、ファイル操作、ターミナルアクセス。
- セッション管理: セッション全体を記録し、デスクトップ体験を包括的に管理する機能。
- Docker ネイティブ: Docker コンテナによる分離を使用し、複雑な VM 要件を排除します。
統合アプローチ
ScreenEnv はエージェントフレームワークやバックエンドシステムと統合するための、2 つの異なる方法を提供します。
Direct Sandbox API
細かい制御が必要な開発者やカスタムエージェントフレームワークを使用している開発者向けに、Direct Sandbox API はプログラムによる制御を可能にします。これには、Sandbox クラスを通じてアプリケーションを起動し、テキストを書き込み、スクリーンショットを直接取得する機能が含まれます。
MCP Server Integration
Model Context Protocol(MCP)をサポートする AI システム向けに、ScreenEnv は MCPRemoteServer を提供します。これにより、AI エージェントはデスクトップ環境に接続し、MCP ツールを介して制御できます。たとえば、現在の画面状態の画像バイトを取得するために「screenshot」ツールを呼び出すことができます。
smolagents を使用したデスクトップエージェントの構築
ScreenEnv は smolagents とネイティブに互換性があり、カスタムデスクトップエージェントの作成を可能にします。プロセスは主に 3 つのステップで構成されます。
- モデル選択: ユーザーは OpenAI、Hugging Face Inference Endpoints(例:Qwen2.5-VL-7B-Instruct)、ローカル Transformers モデル、または LiteLLM 経由の他のプロバイダー(例:Claude 3.5 Sonnet)用のコネクタを使用して、バックエンドのビジョン言語モデル(VLM)を選択できます。
- エージェント定義:
DesktopAgentBaseを継承することで、開発者は_setup_desktop_toolsメソッドを実装し、エージェントのアクション空間を定義できます。例としてclick(x, y),write(text),press(key),open(file_or_url),launch_app(app_name)などのツールがあります。 - 実行: エージェントに特定のタスク(例:LibreOffice を開いてレポートを書き、保存する)を割り当て、特定の解像度(例:1920x1080)を持つ定義済みの
Sandbox環境内で実行できます。
今後のロードマップ
現在は Ubuntu に焦点を当てていますが、ScreenEnv は Android、macOS、Windows へのサポート拡大を目指しています。目標は、クロスプラットフォームの GUI 自動化と、ベンチマークや評価のために特化した再現可能なサンドボックス環境の作成を可能にすることです。
SUMMARY: Hugging Face は、Docker コンテナ内に分離された Ubuntu デスクトップ環境を作成し、GUI エージェントのテストとデプロイを可能にする Python ライブラリ ScreenEnv をリリースしました。
TITLE: ScreenEnv リリース:フルスタック デスクトップエージェントのデプロイ