Gemini Computer Use 入門:Gemini 3.5 Flash でブラウザを操作する

Gemini API Computer Use の実用ガイド。Interactions API で computer_use を有効にする方法、Playwright のような実行環境が必要な理由、ブラウザ自動化 Agent の安全境界を整理します。

Gemini API の Computer Use は、モデルが回答するだけでなく、画面を見て、どこをクリックするか、何を入力するかを判断し、その操作をクライアント側のコードに渡す機能です。

ブラウザ自動化 Agent、Web フローのテスト、繰り返しフォーム入力、ページ情報の整理などに向いています。ただし、モデルが直接ブラウザを操作するわけではありません。モデルは操作を提案し、実行、スクリーンショット返送、停止制御はクライアント側が担当します。

公式ドキュメント:

1
https://ai.google.dev/gemini-api/docs/computer-use?hl=zh-cn

仕組み

  1. タスク、ツール設定、現在の画面状態を Gemini に送る。
  2. Gemini がクリック、入力、スクロール、ページを開くなどの操作を返す。
  3. Playwright などでその操作を実行する。
  4. 新しいスクリーンショットを撮って Gemini に返す。
  5. 完了、安全確認、または停止条件まで繰り返す。

推奨モデルは gemini-3.5-flash です。Interactions API の tools に次を指定します。

1
2
3
4
{
  "type": "computer_use",
  "environment": "browser"
}

Python の最小例

1
2
pip install google-genai playwright
playwright install chromium
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.5-flash",
    input="Search for 'Gemini API' on Google.",
    tools=[
        {
            "type": "computer_use",
            "environment": "browser",
            "enable_prompt_injection_detection": True,
        }
    ],
)

print(interaction)

enable_prompt_injection_detection は有効にしておくのがおすすめです。Web ページ内に敵対的な指示文が含まれる可能性があるためです。

Playwright で実行する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from playwright.sync_api import sync_playwright

SCREEN_WIDTH = 1440
SCREEN_HEIGHT = 900

playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False)

context = browser.new_context(
    viewport={"width": SCREEN_WIDTH, "height": SCREEN_HEIGHT}
)
page = context.new_page()
page.goto("https://www.google.com")

座標は正規化されていることが多いため、実際の画面座標に変換します。

1
2
3
4
5
6
def denormalize_x(x: int, screen_width: int) -> int:
    return int(x / 1000 * screen_width)


def denormalize_y(y: int, screen_height: int) -> int:
    return int(y / 1000 * screen_height)

モデルが返した function_call を実行し、実行後にスクリーンショットを返します。難しいのは最初の API 呼び出しではなく、このループを安定させることです。

小さく始める

最初は実アカウントや本番画面を避け、検索、ローカルテストページ、フォーム検証など低リスクなタスクにします。各ステップの intent を確認し、モデルの判断が妥当かを見ます。

安全境界

  • サンドボックス化したブラウザ、コンテナ、VM を使う。
  • 履歴、自動入力、保存済みパスワードへのアクセスを禁止する。
  • ログイン、支払い、投稿、メッセージ送信、規約同意ではユーザー確認を必須にする。
  • CAPTCHA や人間確認を回避させない。
  • 許可リストまたは禁止リストを用意する。
  • プロンプト、スクリーンショット、操作、安全判断、実行ログを残す。

Function Calling との違い

Function Calling はモデルが API を選び、構造化パラメータを埋める仕組みです。Computer Use は実際の UI を見て操作します。安定した API があるなら Function Calling を優先し、画面操作が必要な場合に Computer Use を使います。

よくある落とし穴

  • モデルが自分でブラウザを操作すると思い込む。
  • 座標変換を忘れる。
  • ポップアップや Cookie バナーがある状態から始める。
  • 最大ステップ数や停止条件を入れない。
  • 金融、医療、アカウント安全など重要な判断に使う。

実用的な構成

1
2
3
4
5
6
7
agent/
  client.py
  browser.py
  actions.py
  safety.py
  recorder.py
  prompts.py

API 呼び出し、UI 実行、安全ポリシーを分けておくと、後でブラウザ以外の環境にも広げやすくなります。

まとめ

Gemini Computer Use は、固定スクリプトだったブラウザ自動化を、画面状態に応じて次の操作を決める形へ近づけます。使うなら、実行環境を固定し、操作ループを安定させ、安全ルールを先に置くことが重要です。

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。