他力code
ブログ一覧に戻る

Gemini 2.5 Computer Use:UI操作エージェントを最短で試す

スクショ+履歴からクリック/入力を生成するGemini 2.5 Computer Useの最短パターン。5分で動く骨格コードと、安全に回すための基本ループを図解します。

何があった?

  • 2025/10/7、Googleが Gemini 2.5 Computer Use を公開(Public Preview)。
  • スクショ+操作履歴を与えると、クリック/入力/スクロール等のUIアクションをJSONで提案し、反復ループで完了まで誘導。
  • Google AI Studio / Vertex AI から利用可。Web/モバイルの操作ベンチで優位と主張。
  • 主にブラウザ操作に最適化デスクトップOS全体の制御は未最適化の旨が明記。
  • 高リスク操作はユーザー確認外部安全審査を要求でき、CAPTCHA/医療機器/不正用途などは拒否設定が可能。

課題とTips

  • Pre-GAの不安定さ(Public Preview)
    Tips: 本番は避けステージングで検証。リトライ/タイムアウト/フォールバックを設計。
  • UIドリフト(要素名/DOM変更)
    Tips: セレクタの許可リスト再探索戦略(role/name/xpath複合)。モーダル/無限スクロール対策。
  • 認証/2FA・CAPTCHAで停止しがち
    Tips: 専用テストアカウントステージング人間承認ゲート(HITL)を併用。
  • 重要操作(購入/削除/送金)の誤実行リスク
    Tips:step上限+承認待ち”を標準化し、危険語(purchase/transfer等)で
    強制HITL
  • 監査と再現性
    Tips: アクションJSON+時刻+URL+スクショJSONLで保管し、ハッシュで改ざん検知。

具体的ノウハウ

5分で動く骨格コードと、安全に回すための基本ループを図解します。最小構成は 観測→提案→実行→再観測 の反復だけ。

Observe: スクショ/URL/履歴

Propose: UIAction JSON

Execute: click/type/scroll

最小コード(Node.js+Playwright)

実運用ではAPI呼び出しで UIAction を取得。ここではダミーで流れを確認。

// npm i playwright
import { chromium } from 'playwright';

const dummyUIActions = [
    { type: 'navigate', url: 'https://example.com' },
    { type: 'type', selector: '#q', text: 'kobatch' },
    { type: 'click', selector: 'button[type=submit]' }
];

async function run() {
    const br = await chromium.launch();
    const page = await br.newPage();

    for (const a of dummyUIActions) {
        if (a.type === 'navigate') await page.goto(a.url);
        if (a.type === 'type') await page.fill(a.selector, a.text || '');
        if (a.type === 'click') await page.click(a.selector);
    }
    await br.close();
}
run();

ポイント

  • 危険操作(購入/削除/送金)は人間承認のゲートを必須化
  • 監査ログはアクションJSON+タイムスタンプを行単位で保存
{
    "ts": "2025-10-12T09:00:00Z",
    "url": "https://example.com",
    "action": { "type": "click", "selector": "#login" }
}