Vercel Labsは10月31日、オープンソースツールagent-desktopを公開した。プログラミングエージェントがmacOS、Windows、Linux上のデスクトップアプリケーションを直接操作できるようにするものだ。スクリーンショットから座標を推測するのではなく、OSが提供するアクセシビリティツリーを読み取り、インターフェースの構造をエージェントが直接参照できるデータに変える。これによりコンピュータ操作は視覚的な推測から構造化された読み取りへと変わり、操作対象はピクセルから番号付きのインターフェース要素になる。
agent-desktop自体はエージェントではなく、モデルも内蔵していない。Rustで書かれたコマンドラインツールとC言語ライブラリで、ターミナルコマンドを実行できるあらゆるエージェントが呼び出せる。コマンドを実行するたびにJSONスナップショットが返され、画面上の操作可能な要素にはそれぞれ参照番号が付く。エージェントは番号を指定して操作し、インターフェースを再読込して結果を確認する。プロジェクトはApache-2.0ライセンスを採用し、最新バージョン1.0.2は10月30日に公開された。公式リポジトリはGitHubにあり、組織名はVercel Labs、プロジェクト名はagent-desktopである。
スクリーンショットを見ないのに、なぜ安定するのか?
スクリーンショット方式では、モデルがまず画像を見てボタンの位置を推定しなければならず、インターフェースが変わると誤ってクリックしやすい。アクセシビリティツリーはボタン、入力欄、メニューの役割と名前を直接示し、参照番号は取得したスナップショットにひも付けられる。インターフェースが変化すると古い番号は期限切れ参照エラーを返し、エージェントは無理にクリックを続けるのではなく、再読込しなければならない。既定では操作はバックグラウンドで実行され、マウスを動かさず、フォーカスも奪わないため、ユーザーは作業を続けられる。インターフェースツリーが大きすぎる場合は、コンテナ構造だけを示すスケルトンモードが用意されており、エージェントは数千のノードを一度に取り込むのではなく、領域ごとに展開できる。
どんなアプリにまだ届かないのか?
- アクセシビリティツリーを公開していないアプリは対象外で、たとえば一部のキャンバス型インターフェースやゲーム風インターフェースでは、視覚的な方式に依然として価値がある。
- ウェブの自動化は引き続きagent-browserの担当で、agent-desktopはデスクトップアプリのみを扱う。ChromiumやElectronアプリ向けにデバッグポートを開き、ウェブ部分はagent-browserが引き継ぐことができる。
- 自動化の品質は各アプリのインターフェース実装に左右され、同じツールでもアプリによって性能が大きく異なる場合がある。公開当日のデモを一般的な結論とみなしてはならない。
開発者にとって、agent-desktopの価値はもう一つのエージェントにあるのではなく、デスクトップ操作を呼び出し可能で再試行可能な基盤に変えることにある。まず小規模な範囲で、対象アプリを安定して読み取れることを検証してから、日常のワークフローに組み込むかどうかを決めるべきだ。次に注目すべきは、公開当日の注目度ではなく、実際のオフィスアプリにおける安定性の記録である。