【2026年版】ブラウザ自動化の先へ:UI-TARS、Claude Computer Use、OSWorld 2.0で構築するデスクトップGUI自律操作エージェント実践
過去3年間、生成AIエコシステムはBrowser-Use、Stagehand、Playwright MCPなどを用いたWebブラウザDOM解析の自動化に注力してきました。しかし、エンタープライズ領域における実業務ソフトウェアの70%以上はブラウザDOMを持ちません。レガシーERP(SAP GUI)、複雑なVBAマクロを組み込んだネイティブExcel、デスクトップCAD、ターミナルコンソール、オンプレミスの専用業務クライアントにはWeb DOMが存在せず、DirectX、Metal、Win32、Qtで直接描画される画面に対してDOMベースのエージェントは完全に無力でした。真のエンタープライズ自動化を実現するため、2026年はネイティブな視覚・言語・行動(VLA: Vision-Language-Action)モデル、ピクセル座標グラウンディング、System-2遅考推論を備えた自律型デスクトップGUIエージェントが台頭しています。本稿では、UI-TARS 1.5、Claude 3.7 Computer Use、OSWorld 2.0ベンチマーク、そして安全なサンドボックス隔離基盤を徹底解剖します。
📑 目次
1. 要約とデスクトップGUIエージェントの最前線
2. DOM依存の終焉:なぜデスクトップ業務が重要なのか
3. 3つの知覚アーキテクチャの比較
4. UI-TARS:ネイティブVLAとSystem-2遅考推論
5. Claude 3.7 Computer Use vs オープンモデルのトレードオフ
6. Python実践実装:安全なデスクトップ操作コントローラー
7. OSWorld 2.0分析:長期タスクのドリフト克服
8. セキュリティとサンドボックス:VNC隔離と緊急停止機能
9. アーキテクチャ比較マトリクスと関連開発ツール
10. よくある質問(FAQ)
01. 要約とデスクトップGUIエージェントの最前線
Web自動化は実用段階に達しましたが、デスクトップ上の知的業務は長らく手作業のままでした。2026年、デスクトップGUIエージェントはOS画面全体を対話型キャンバスとして直接扱います:
- HTMLセレクタからの脱却:エージェントは生の画面フレーム(1080p〜4K)を監視し、マルチモーダルLLM(MLLM)を通じてUI要素をピクセル単位で直接認識。正規化座標 (x, y) をOSのマウス・キーボード入力イベントにマッピングします。
- オープンソースの先頭 vs 商用最高峰API:ByteDanceが公開したオープンソースモデル UI-TARS 1.5 は強化学習を用いたSystem-2自己検証・バックトラッキング(巻き戻し)を導入。Anthropicの Claude 3.7 Sonnet は高度な推論とネイティブなComputer Useツール呼び出しを提供します。
- OSWorld 2.0の現実解:Ubuntu、Windows、macOSにわたる369の実環境タスクで構成されるOSWorld 2.0において、エージェントは100ステップの長期タスクで42%〜52%の成功率を記録。ステップ数増加に伴う状態ドリフト(脱線)の防止が最大の焦点となっています。
- 必須となるサンドボックス隔離:OSに対する直接操作は特権リスクを伴います。本番アーキテクチャでは、使い捨てMicroVM(E2Bなど)や仮想ディスプレイストリーム(VNC/RDP)内でエージェントを実行し、ホスト側ファイアウォールと緊急キルスイッチを併用します。
+─────────────────────────────────────────────────────────────────────────────+
| Autonomous Desktop GUI Agent Architecture (2026) |
| |
| [ User Goal: "Consolidate Q3 SAP exports into Excel macro, generate PDF" ] |
| │ |
| ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ HOST SUPERVISOR & ACTION FIREWALL (Safety Interceptor) │ |
| │ - Rate Limiting & Egress Filtering - Destructive Command Blocker │ |
| │ - Biometric Confirmation Gateway - Emergency Human Kill-Switch │ |
| └──────────────────────────────────┬────────────────────────────────────┘ |
| │ Virtual Display / Peripherals |
| ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ ISOLATED DESKTOP SANDBOX (E2B / Cloud VNC / KVM Virtual Machine) │ |
| │ │ |
| │ ┌─────────────────────┐ ┌─────────────────────────┐ │ |
| │ │ Screenshot Buffer │ │ OS Input Controller │ │ |
| │ │ (1920x1080 RGB) │ │ (PyAutoGUI / uinput) │ │ |
| │ └──────────┬──────────┘ └─────────────▲───────────┘ │ |
| │ │ Raw Frame │ (x, y) Click │ |
| │ ▼ │ & Hotkeys │ |
| │ ┌───────────────────────────────────────────────────┴───────────┐ │ |
| │ │ AGENT RUNTIME: UI-TARS 1.5 / Claude 3.7 Sonnet │ │ |
| │ │ 1. Visual Grounding: Detect target UI elements via pixels │ │ |
| │ │ 2. System-2 Deliberation: Check milestones & reflect │ │ |
| │ │ 3. Action Plan: Emit precise mouse, click, and key sequences │ │ |
| │ └───────────────────────────────────────────────────────────────┘ │ |
| │ │ |
| │ [ Legacy SAP Client ] [ Native Excel ] [ Desktop CAD ] │ |
| └───────────────────────────────────────────────────────────────────────┘ |
+─────────────────────────────────────────────────────────────────────────────+
02. DOM依存の終焉:なぜデスクトップ業務が重要なのか
従来のブラウザ自動化は、アプリケーションが構造化されたアクセシビリティツリーや予測可能なCSSクラスを提供することを前提としています。しかし企業の基幹業務ではその前提が崩壊します:
1. Canvas描画のWebアプリ
FigmaやCanvas描画モードのGoogle Docs、WebGLダッシュボードは、DOMノードを持たない空のキャンバス上に直接UIを描画します。
2. レガシー基幹システム
SAP GUI、AS400端末エミュレータ、Bloomberg Terminal、医療電子カルテなどのミッションクリティカルなシステムは、Webインターフェースを持たないネイティブバイナリです。
3. 複数アプリの横断連携
データのダウンロード、ローカルExcelでのVBAマクロ実行、社内CRMの更新、PDF署名など、OSのプロセス境界を跨ぐ複合業務が日常の大半を占めます。
03. 3つの知覚アーキテクチャの比較:ピクセル vs アクセシビリティツリー vs ハイブリッド
エージェントはデスクトップ画面をどのように認識すべきでしょうか?2026年現在は3つの設計アプローチが存在します:
+─────────────────────────────────────────────────────────────────────────────+
| Desktop Perception Paradigms |
| |
| [ Approach 1: Pure Visual Grounding (Pixel-to-Coordinate) ] |
| Screen Frame ──▶ High-Res VLM ──▶ Coordinates (x: 450, y: 720) |
| • Pros: Universal, zero OS dependency, handles Canvas / Games / Legacy |
| • Cons: Heavy token cost, coordinate distortion, resolution scaling drift|
| |
| [ Approach 2: OS Accessibility Tree Grounding (UIAutomation / AT-SPI) ] |
| Screen State ──▶ OS API Walk ──▶ Filtered Hierarchy ──▶ Element ID / Path|
| • Pros: Deterministic, lightweight text tokens, 100% click precision |
| • Cons: 40% of native apps have broken/missing a11y trees, slow tree walk|
| |
| [ Approach 3: Dual-Stream Hybrid Fusion (2026 Best Practice) ] |
| Visual Screenshot (VLM) ◄──Fused Decision──► OS A11y Tree (Cache) |
| • Fast path: Use A11y node bounding box if recognized |
| • Fallback: Use visual grounding when a11y nodes are obscured/custom |
+─────────────────────────────────────────────────────────────────────────────+
| 比較軸 | 純粋ピクセルグラウンディング | OSアクセシビリティツリー | デュアルストリーム・ハイブリッド融合 |
|---|---|---|---|
| 汎用性 | 100%(画面上のあらゆるピクセル) | 約60%(カスタム描画UIで失敗) | 98%(段階的フォールバック) |
| トークン効率 | 低(約1,200〜2,000トークン/画面) | 高(約300〜600トークン/ツリー) | 中(約1,500トークン/判断) |
| クリック精度 | 88% - 94%(座標ズレのリスクあり) | 99%(ノードが存在する場合) | 98.5%(近傍バウンディングボックスに吸着) |
| OS非依存性 | 完全(VNC/画面配信に対応) | 低(OS固有のAPIフックが必要) | 高(モジュール式アダプター) |
| 推論ターンレイテンシ | 1.8秒 - 3.5秒(VLM推論) | 0.4秒 - 0.9秒(テキストLLM) | 1.9秒 - 3.2秒 |
04. UI-TARS:ネイティブVLAとSystem-2遅考推論
ByteDanceが開発・オープンソース化した UI-TARS は、GUI操作専用のネイティブな Vision-Language-Action (VLA) モデルの草分けです。汎用視覚モデルに後付けプロンプトを当てるのではなく、動作トークンの直接生成と強化学習に基づく内省プロセス(System-2)を統合しています:
+─────────────────────────────────────────────────────────────────────────────+
| UI-TARS 1.5 System-2 Reasoning Trajectory |
| |
| Observation ──▶ [ Reflection & Verification ] |
| │ "Did the previous action open the File dialog?" |
| │ State: YES. Detected 'Open File' window at (x: 200, y: 150)
| ▼ |
| [ Sub-goal Decomposition ] |
| │ "Next sub-goal: Select 'Quarterly_Report.xlsx'" |
| │ Search Strategy: Visual scan of table rows |
| ▼ |
| [ Milestone Recognition ] |
| │ Target element found at (x: 320, y: 410) |
| ▼ |
| [ Action Emission ] |
| │ Action: click(point=[320, 410]) |
| │ Post-Action Expectation: File selected in input box |
+─────────────────────────────────────────────────────────────────────────────+
-
標準化された運動トークン:正規化された 1000 × 1000 座標系において、
click(point=[x, y])、double_click()、drag(start, end)、press_hotkey()などのトークンを直接出力。 - System-2自己検証:直前の操作が期待した画面遷移を起こしたかを事前に確認。ボタン押下でダイアログが開かなかった場合、過ちを繰り返さず自動で再試行または別ルートを探索。
- ローカル配備性:UI-TARS 7Bモデルはローカルワークステーション(Apple Silicon 32GB以上、またはRTX 4090)で実行可能であり、機密データを外部に出さず1秒未満で応答します。
05. Claude 3.7 Computer Use vs オープンモデルのトレードオフ:レイテンシ、コスト、精度
開発チームは商用の最前線API(Claude 3.7 Sonnet)と自前ホストのオープンウェイトモデル(UI-TARS 7B/72B)のどちらを採用すべきでしょうか:
- 視覚トークンコストの試算:1080pのスクリーンショットを2秒ごとに商用モデルへ送信し続けると、100ステップの業務処理で1回あたり15〜30ドルのコストが発生します。
- 高度な推論 vs 定型大量RPA:曖昧な指示や複雑な非構造化文書を読み解く業務にはClaude 3.7 Sonnetが最適ですが、定型的な大量データ転送や反復入力ではUI-TARSがコスト面で圧倒的優位に立ちます。
- データガバナンス:金融・医療分野など、画面上の個人情報や財務データを外部クラウドAPIへ送信できない環境では、オンプレミスで運用可能なUI-TARSが標準的な選択肢となります。
06. Python実践実装:安全なデスクトップ操作コントローラーの構築
以下は、座標正規化スケーリング、安全ゲートキーパー、破壊的コマンドの検知遮断、人間介入承認を含む、完全に実行可能なPythonリファレンス実装です:
# Production Reference Implementation: Desktop GUI Agent Controller (2026)
# Demonstrates Vision-Language-Action Execution, Coordinate Normalization,
# Destructive Command Interception, and Human-in-the-Loop Safeguards.
import time
import math
from typing import Dict, Any, List, Tuple, Optional
from dataclasses import dataclass, field
from enum import Enum
# ─── 1. CORE DATA STRUCTURES & ACTIONS ────────────────────────────────────────
class ActionType(str, Enum):
MOUSE_CLICK = "mouse_click"
DOUBLE_CLICK = "double_click"
HOTKEY = "hotkey"
TYPE_TEXT = "type_text"
TERMINAL_COMMAND = "terminal_command"
WAIT = "wait"
@dataclass
class UIAction:
action_type: ActionType
coordinates: Optional[Tuple[int, int]] = None # (x, y) on 1000x1000 normalized grid
text_payload: Optional[str] = None
hotkey_sequence: Optional[List[str]] = None
thought_reasoning: str = ""
is_destructive: bool = False
@dataclass
class ScreenDimensions:
width: int
height: int
# ─── 2. SAFETY INTERCEPTOR & GATEKEEPER ───────────────────────────────────────
class DesktopSafetyGatekeeper:
"""
Host-side safety authority that validates actions before dispatching
to real or virtual OS input peripherals.
"""
DESTRUCTIVE_HOTKEYS = {("ctrl", "alt", "del"), ("cmd", "shift", "backspace")}
DESTRUCTIVE_COMMANDS = ["rm -rf", "format", "drop database", "mkfs", "dd if="]
def __init__(self, require_human_for_destructive: bool = True):
self.require_human = require_human_for_destructive
self.audit_log: List[Dict[str, Any]] = []
def inspect_action(self, action: UIAction, human_approved: bool = False) -> Tuple[bool, str]:
# 1. Inspect terminal/shell commands
if action.action_type == ActionType.TERMINAL_COMMAND and action.text_payload:
for pattern in self.DESTRUCTIVE_COMMANDS:
if pattern in action.text_payload.lower():
action.is_destructive = True
if not human_approved:
return False, f"Blocked destructive terminal command pattern: '{pattern}'"
# 2. Inspect high-risk hotkeys
if action.action_type == ActionType.HOTKEY and action.hotkey_sequence:
normalized_keys = tuple(sorted([k.lower() for k in action.hotkey_sequence]))
for risk_keys in self.DESTRUCTIVE_HOTKEYS:
if normalized_keys == tuple(sorted(risk_keys)):
action.is_destructive = True
if not human_approved:
return False, f"Blocked dangerous system hotkey: '{action.hotkey_sequence}'"
# Log action to immutable audit trail
self.audit_log.append({
"timestamp": time.time(),
"action": action.action_type.value,
"coordinates": action.coordinates,
"destructive": action.is_destructive,
"approved": True
})
return True, "Action approved."
# ─── 3. PERIPHERAL ADAPTER & COORDINATE SCALER ────────────────────────────────
class OSPeripheralController:
"""
Translates normalized model coordinates (1000x1000) to actual physical display pixels
and dispatches low-level OS input events.
"""
def __init__(self, display: ScreenDimensions):
self.display = display
def denormalize_coordinates(self, norm_x: int, norm_y: int) -> Tuple[int, int]:
"""Converts [0, 1000] model grid to [0, width] x [0, height]."""
real_x = math.floor((norm_x / 1000.0) * self.display.width)
real_y = math.floor((norm_y / 1000.0) * self.display.height)
return real_x, real_y
def execute_native_input(self, action: UIAction):
if action.coordinates:
rx, ry = self.denormalize_coordinates(*action.coordinates)
print(f"🖱️ [OS DRIVER] Moving cursor to ({rx}px, {ry}px) [Model: {action.coordinates}]")
if action.action_type == ActionType.MOUSE_CLICK:
print(f"⚡ [OS DRIVER] Emitting LEFT_BUTTON_CLICK at ({rx}, {ry})")
elif action.action_type == ActionType.DOUBLE_CLICK:
print(f"⚡ [OS DRIVER] Emitting DOUBLE_CLICK at ({rx}, {ry})")
elif action.action_type == ActionType.HOTKEY:
print(f"⌨️ [OS DRIVER] Emitting KEY_COMBINATION: {' + '.join(action.hotkey_sequence or [])}")
elif action.action_type == ActionType.TYPE_TEXT:
print(f"⌨️ [OS DRIVER] Typing string payload: \"{action.text_payload}\"")
elif action.action_type == ActionType.TERMINAL_COMMAND:
print(f"🖥️ [OS DRIVER] Executing Shell Command: '{action.text_payload}'")
# ─── 4. AUTONOMOUS DESKTOP AGENT CONTROLLER ───────────────────────────────────
class DesktopGUIAgent:
"""
The orchestrator agent combining VLA decision logic, safety inspection,
and OS input driver dispatch.
"""
def __init__(self, display: ScreenDimensions, gatekeeper: DesktopSafetyGatekeeper):
self.driver = OSPeripheralController(display)
self.gatekeeper = gatekeeper
def step(self, action: UIAction, human_confirmed: bool = False) -> Dict[str, Any]:
print(f"\n🧠 [SYSTEM-2 REFLECTION] {action.thought_reasoning}")
# Safety Check
is_safe, reason = self.gatekeeper.inspect_action(action, human_approved=human_confirmed)
if not is_safe:
print(f"🛑 [SAFETY INTERCEPT] Action Rejected: {reason}")
return {"success": False, "reason": reason}
# Dispatch
self.driver.execute_native_input(action)
return {"success": True, "reason": "Executed successfully"}
# ─── 5. RUNTIME VERIFICATION HARNESS ──────────────────────────────────────────
if __name__ == "__main__":
print("=" * 75)
print("DEMO: AUTONOMOUS DESKTOP GUI AGENT SAFETY & GROUNDING CONTROLLER (2026)")
print("=" * 75)
# Initialize 1080p display and safety gatekeeper
virtual_screen = ScreenDimensions(width=1920, height=1080)
safety_shield = DesktopSafetyGatekeeper(require_human_for_destructive=True)
agent = DesktopGUIAgent(display=virtual_screen, gatekeeper=safety_shield)
# STEP 1: Safe Action - Navigate SAP Menu
step1 = UIAction(
action_type=ActionType.MOUSE_CLICK,
coordinates=(180, 45), # 1000x1000 normalized grid
thought_reasoning="Milestone 1: Click 'Accounting' dropdown in SAP native menu bar."
)
agent.step(step1)
# STEP 2: Safe Action - Type Transaction Code
step2 = UIAction(
action_type=ActionType.TYPE_TEXT,
text_payload="FS10N",
thought_reasoning="Milestone 2: Enter general ledger balance inquiry transaction code."
)
agent.step(step2)
# STEP 3: Malicious / Accidental Destructive Step Intercepted
step3_destructive = UIAction(
action_type=ActionType.TERMINAL_COMMAND,
text_payload="rm -rf /var/sap/data/*",
thought_reasoning="Adversarial prompt injection attempt detected on unverified clipboard buffer."
)
print("\n[SCENARIO 1: Destructive Action Without Approval]")
agent.step(step3_destructive, human_confirmed=False)
# STEP 4: High-Risk Action With Human Biometric Approval
print("\n[SCENARIO 2: Authorized High-Risk Action via Supervisor Approval]")
agent.step(step3_destructive, human_confirmed=True)
print("\n" + "=" * 75)
print(f"Demonstration Complete. Total Audit Ledger Entries: {len(safety_shield.audit_log)}")
print("=" * 75)
07. OSWorld 2.0ベンチマーク分析:長期タスクのドリフト克服と主要な失敗パターン
OSWorld 2.0 はUbuntu、Windows、macOSにわたる369のリアルなタスクでエージェントを評価します。人間のベースラインが88.3%であるのに対し、最先端モデルは全体で49%〜52%にとどまっており、4つの典型的な失敗パターンが明らかになっています:
- 解像度と座標のドリフト:ポップアップ通知やウィンドウの拡大縮小により対象が数ピクセル移動し、古い記憶の座標をクリックして誤動作する現象。
- コンテキスト長の圧迫:高解像度画像を60枚蓄積すると注意機構が破綻するため、古い画像をテキスト要約へ圧縮するプルーニングが不可欠です。
-
無応答ローディング時の連打トラップ:Webのような
networkidleがないため、処理中にボタンを連打してアプリをクラッシュさせる事態。画面ピクセルの差分検知で防ぎます。 - 低コントラストUIでの誤認:ダークモードの業務ソフトやCAD画面で、保存とエクスポートなど似たアイコンを見誤る問題。
08. セキュリティとサンドボックス:VNC隔離、eBPF制御、緊急停止(Kill-Switch)
社員のPC上で自律エージェントに直接マウスとキーボードの権限を与えることは、極めて重大なセキュリティリスクを招きます。本番運用では3層のゼロトラストサンドボックスを構築します:
+─────────────────────────────────────────────────────────────────────────────+
| Zero-Trust Desktop Sandbox Containment Stack |
| |
| [ Enterprise Gateway ] |
| │ |
| ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ LAYER 1: VIRTUAL DISPLAY & PERIPHERAL ISOLATION │ |
| │ - Headless X11 / Wayland / RDP virtual server │ |
| │ - The agent NEVER touches physical user hardware │ |
| │ - Video frame streamed via WebRTC / VNC buffer │ |
| └──────────────────────────────────┬────────────────────────────────────┘ |
| │ |
| ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ LAYER 2: SYSTEM CALL INTERCEPTION & eBPF NETWORK EGRESS │ |
| │ - eBPF sensor intercepts dangerous POSIX syscalls (fork, execve, ptrace)│
| │ - Network firewall restricts outbound traffic exclusively to whitelist│ |
| └──────────────────────────────────┬────────────────────────────────────┘ |
| │ |
| ▼ |
| ┌───────────────────────────────────────────────────────────────────────┐ |
| │ LAYER 3: SUPERVISOR KILL-SWITCH & USER TAKEOVER │ |
| │ - User moves physical mouse ──▶ Instant agent suspension (Kill-Switch)│ |
| │ - Live action stream mirrored to supervisor dashboard │ |
| └───────────────────────────────────────────────────────────────────────┘ |
+─────────────────────────────────────────────────────────────────────────────+
- 第1層:仮想ディスプレイ隔離:エージェントは隔離されたMicroVM(E2Bなど)内の仮想X11/Wayland/RDPバッファのみを操作。物理ハードウェアへの直接アクセスは完全に排除。
-
第2層:eBPFシステムコール&通信監査:カーネルレベルのeBPFセンサーにより、危険なコマンド(
rm -rf、不正なデータ外部送信)を検知遮断し、許可リスト外のIP通信を拒否。 -
第3層:物理操作による緊急キルスイッチ:人間が物理マウスを動かすか
Escキーを押した瞬間に、エージェントのドライバ権限を即時剥奪して人間の操作を最優先。
09. アーキテクチャ比較マトリクスと関連開発ツール
2026年における主要なデスクトップ・コンピューター操作エージェント基盤の比較は以下の通りです:
| 比較軸 | UI-TARS (ByteDance) | Claude 3.7 Computer Use | OpenHands | E2B Desktop Sandbox |
|---|---|---|---|---|
| モデル形態 | オープンウェイト(VLA 7B/72B) | 商用フロンティアAPI | モデル非依存オーケストレーター | インフラサンドボックス環境 |
| 主な知覚方式 | 生ピクセル(System-2 VLA) | 生ピクセル(Vision API) | ハイブリッド(DOM + 端末 + GUI) | 仮想画面フレームバッファ |
| ホスティング環境 | オンプレミス(自社GPU基盤) | クラウドAPI(Anthropic) | セルフホスト / クラウド | マネージドクラウド / MicroVM |
| 対応OS | Windows, macOS, Linux, Android | Windows, macOS, Ubuntu | Linux, Docker, ブラウザ | Linux(Firecracker MicroVM) |
| 主な用途 | 高頻度RPA、QAテスト、一括入力 | 複雑な知的業務の推論処理 | ソフトウェア開発自律エージェント | 安全なエージェント隔離実行環境 |
| オープンソース性 | 100% オープンソース | プロプライエタリ | 100% オープンソース | オープンSDK / マネージド |
E2B
MicroVMサンドボックス
信頼できないデスクトップセッションやターミナル操作をハードウェアレベルで安全に隔離実行する、AIエージェント向け主要MicroVMクラウド環境。
Claude 3.7 Sonnet
フロンティアモデル
デスクトップ操作、ブラウザ自動化、高度なツール実行を可能にするネイティブのComputer Use機能を備えたAnthropicの最高峰推論モデル。
OpenHands
オープンソース
ソフトウェア開発、ターミナル操作、デスクトップ連携のための最高峰オープンソース自律エージェントプラットフォーム。
Devin
自律型ソフトウェアAI
ブラウザ、ターミナル、エディタを総合制御し、自律的にコード開発とデスクトップ環境作業を完遂するCognitionのフラッグシップAI。
10. よくある質問(FAQ)
Q1: 個別APIを開発する代わりにデスクトップGUIエージェントを使う利点は何ですか?
理想的な世界では全ソフトがRESTやGraphQLを提供すべきですが、現実の企業内には数千のレガシーシステム(SAP、オフコン端末、専用会計ソフト)が存在し、API開発には膨大な費用と年月を要します。デスクトップGUIエージェントは既存コードやDBに一切手を加えないゼロタッチ自動化を実現します。
Q2: 視覚エージェントに入力する最適な画面解像度はどれくらいですか?
4Kの生画像をそのまま入力するとトークン消費と推論レイテンシが激増します。本番環境では1920x1080でキャプチャし、モデル内部の1000x1000正規化グリッドで判断させた後、物理ピクセルへと数学的にスケーリング変換してクリックを発行するのが一般的です。
Q3: アプリの動的ローディングやアニメーションはどのように待機しますか?
ブラウザと異なりデスクトップにはロード完了通知イベントがありません。本番エージェントは視覚差分ポーリング(Visual Delta Polling)を採用し、250ミリ秒間隔でフレームを取得してピクセル変動率が1%未満に安定したことを確認してから次の操作を実行します。
Q4: マルチモニターや複数ウィンドウ環境でも動作しますか?
はい、動作します。複数画面を1つの結合キャンバス(3840x1080など)として扱うか、ウィンドウフォーカスAPIを活用して対象アプリをメイン仮想ディスプレイにアクティブ化してから視覚認識を行う構成をとります。
Q5: UI-TARSはローカルの一般的なPC環境で動かせますか?
UI-TARS 7Bモデルは、GGUFやAWQなどの量子化を行うことで、Apple Silicon搭載Mac(ユニファイドメモリ32GB以上)やNVIDIA RTX 4090単体でもローカル動作可能です。72Bモデルは企業向けのA100/H100クラスのGPU環境が推奨されます。