2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gemini 2.5 Computer Use modelの概要とクイックスタート+α

Posted at

 先日Google社よりGemini 2.5 Computer Use modelがPreviewとして発表されました。
 このモデルはGemini2.5 Proの視覚理解と推論機能を基盤としたUIとの対話に特化した新しいモデルです。具体的にはユーザーからの入力を受け取ってGoogle検索を行ったりフォームへの入力などをAIが代替します。
 またGemini2.5 Proを使用していることで複数のベンチーマークで優れたパフォーマンスを出しています。

 今回はこちらのモデルの概要とクイックスタートと応用した使い方をまとめましたのでぜひご覧ください。

Gemini 2.5 Computer Useについて

概要

 Gemini 2.5 Computer Use Previewモデルを使用することでスクリーンショットを使用して、Computer Use modelはコンピュータ画面を「認識」し、マウスのクリックやキーボード入力などの特定の UI アクションを生成して「操作」できます。
 ユースケースとしては以下のようなことが考えられます。

  • ウェブサイトでのデータ入力やフォームへの記入など、繰り返し発生する作業を自動化
  • ウェブ アプリケーションとユーザーフローの自動テストを実行
  • さまざまなウェブサイトで調査を行う(eコマースサイトから商品情報、価格、レビューを収集して購入の判断に役立てるなど)

 AIが一般的になる前からプログラムで実装することができましたがLLMを組み合わせることで自動化の幅がより広がりそうですね。

Gemini 2.5 Computer Useモデルはプレビューモデルであるためエラーやセキュリティの脆弱性が発生しやすい可能性があるため、厳重な監督がお勧めされています。また現時点では重要な判断、機密データ、重大エラーを修正できないアクションを伴うタスクには使用しないこともお勧めされています。

仕組み

流れとしては以下となります。

  1. ユーザーがモデルにリクエストを送信する
  2. モデルがレスポンスを受信する
  3. モデルが受信したアクションを実行する
  4. モデルが新しい環境の状態を確認する

 モデルは当初の目標が達成されるかエラーが発生するまで2~4のステップを繰り返します。
 また安全性の取り組みとしてステップ2においてモデルがリスクを伴う可能性があるアクションを確認した場合には、エンドユーザーにアクションを実行して良いか確認を求め、ユーザーに拒否された場合にはアクションを実行しません。確認が必要な場合にはステップ2の段階でAPIレスポンスとしてsafety_decisionrequire_confirmationが含まれます。
スクリーンショット 2025-10-13 11.23.41.png

サポートされるUIアクション

 現在サポートされるアクションは以下の通りでFunctionCallを介してリクエストできます。

コマンド名 説明
open_web_browser Webブラウザを開く
wait_5_seconds 動的コンテンツの読み込みやアニメーションの完了を待つため、実行を 5 秒間一時停止
go_back ブラウザの履歴の前のページに移動
go_forward ブラウザの履歴の次のページに移動
search デフォルトの検索エンジンのホームページを検索
navigate ブラウザを指定された URL に直接移動
click_at ウェブページの特定の座標をクリック。x値とy値で指定
hover_at ウェブページの特定の座標にマウスを移動。x値とy値で指定
type_text_at 特定の座標にテキストを入力。x値とy値で指定
key_combination 「Ctrl+C」や「Enter」などのキーまたはキーの組み合わせを押す
scroll_document ウェブページ全体を「上」、「下」、「左」、「右」にスクロール
scroll_at 指定された要素または領域の座標(x, y)を、指定された方向に一定の大きさだけスクロール
drag_and_drop 要素を開始座標からドラッグし、宛先座標にドロップ。x値とy値で指定

安全性とセキュリティ

safety_decisionについて

 前述したsafety_decisionについては以下のような形式でAPIレスポンスとして返します。エンドユーザーに確認を求めるアクションについては利用規約に基づき、人間による確認のリクエストを回避することは許可されていません。具体的にはreCAPTCHAの人間確認などが該当します。
 ユーザーがアクションを確認しない場合にはループが終了します。ユーザーがアクションを確認するとアクションが実行され、safety_acknowledgementフィールドがTrueとしてマークされます。

{
  "content": {
    "parts": [
      {
        "text": "I have evaluated step 2. It seems Google detected unusual traffic and is asking me to verify I'm not a robot. I need to click the 'I'm not a robot' checkbox located near the top left (y=98, x=95).",
      },
      {
        "function_call": {
          "name": "click_at",
          "args": {
            "x": 60,
            "y": 100,
            "safety_decision": {
              "explanation": "I have encountered a CAPTCHA challenge that requires interaction. I need you to complete the challenge by clicking the 'I'm not a robot' checkbox and any subsequent verification steps.",
              "decision": "require_confirmation"
            }
          }
        }
      }
    ]
  }
}

安全に使用するためのベストプラクティス

 Computer Use APIは2025年10月13日時点でプレビューでもあり以下のようなリスクに注意しましょう。

  • 信頼できないコンテンツと詐欺:モデルがユーザーの目標を達成しようとする際に、信頼できない情報源や画面上の指示に依存する可能性があります。たとえば、ユーザーの目標が Google Pixel を購入することであり、モデルが「アンケートに回答すると Google Pixel が無料」という詐欺に遭遇した場合、モデルがアンケートに回答する可能性があります
  • 意図しないアクションが発生する:モデルがユーザーの目標やウェブページの内容を誤って解釈し、間違ったボタンをクリックしたり、間違ったフォームに記入したりするなどの誤ったアクションを実行する可能性があります。これにより、タスクの失敗やデータ漏洩が発生する可能性があります
  • ポリシー違反:API の機能が、Google のポリシー(生成 AI の使用禁止に関するポリシーと Gemini API 追加利用規約)に違反するアクティビティに意図的または意図せず向けられる可能性があります。これには、システムの完全性を損なう可能性のある行為、セキュリティを侵害する行為、セキュリティ対策を回避する行為、医療機器を制御する行為などが含まれます

 対策としては以下の安全対策を実装しましょう。

  • 人間参加型(HITL)requiere_confirmationを使用している場合には実行前にユーザー確認を実装する。またモデルに指示を追加することで特定のアクションを実行させないようにしたり、特定のアクションを実行する前にユーザーに確認を求めることも可能
  • 安全な実行環境:安全なサンドボックス環境でエージェントを実行して、潜在的な影響を制限
  • 意図しない指示を防ぐ:プロンプト内のユーザー生成テキストをすべてサニタイズして、意図しない指示やプロンプト インジェクションのリスクを軽減
  • ガードレールの設定:ユーザー入力、ツールの入力と出力、エージェントの応答の適切性、プロンプト インジェクション、ジェイルブレイクの検出を評価
  • 許可とブロックリスト:モデルが移動できる場所と実行できる操作を制御するフィルタリング、メカニズムを実装
  • オブザーバビリティとロギング:デバッグ、監査、インシデント対応のために詳細なログを記録
  • 環境管理:予期しないポップアップ、通知、レイアウトの変更は、モデルを混乱させるため新しいタスクごとに既知のクリーンな状態から開始

モデルについて

プロパティ 説明
モデルコード gemini-2.5-computer-use-preview-10-2025
サポートされるデータ型 入力:画像、テキスト 出力:テキスト
トークン上限 入力トークンの上限:128,000 出力トークンの上限:64,000

料金については2025年10月13日時点では記載がないため更新され次第アップデートします。

クイックスタート

準備

それでは上記のクイックスタートをもとにComputer Use Preview modelを試してみましょう。
まずはGitのレポジトリをクローンします。

git clone https://github.com/google/computer-use-preview.git
cd computer-use-preview

次にPythonの仮想環境を設定し必要なパッケージをインストールしましょう

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

次にPlaywrightとBroweserのパッケージをインストールしましょう。

# Install system dependencies required by Playwright for Chrome
playwright install-deps chrome

# Install the Chrome browser for Playwright
playwright install chrome

最後にAPIキーの設定も忘れずに行いましょう。

export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

実行

 準備が整ったら以下のコマンドを実行してみましょう。
 実行する内容としてはGoogleのホームページにて「Hello World」と検索する仕組みとなります。
 なおinitial_urlとして"https://www.google.com" が設定されているため、最初にGoogleのホームページを開くことになります。

python main.py --query "Go to Google and type 'Hello World' into the search bar"

 playwrightが実行されると以下のようなログが出力されます。ステップ1としてGoogleのホームページを開くことに成功したとわかります。その上で検索窓を確認し「Hello World」と入力したこともわかります。
スクリーンショット 2025-10-13 16.17.13.png

 そのまま問題なく進むと思いきやGoogleのブラウザ側が意図せぬ挙動を確認したとのことでreCAPTCHAが表示されました。AIではアクションができないのでユーザーで「私はロボットではありません」のチェックボックスを入れる必要があります。
こちらは前述したsafety_decisionとしてrequire_confirmationが返されたことを意味し、ユーザー側でのアクションが必要になります。
スクリーンショット 2025-10-13 16.21.20.png

 実際にブラウザを見てみるとreCAPTCHAが表示されていました。チェックボックスにチェックを入れた後にターミナル上で"yes"と入力します。
スクリーンショット 2025-10-13 16.21.07.png

 そうするとターミナル上に以下のように表示されAIでも「Hello World」の検索結果が表示されタスクが成功したようです。

Agent Loop Complete: I have evaluated step 3. I successfully clicked the "I'm not a robot" checkbox (although it wasn't visible in the second screenshot, the page changed to the search results, so it must have worked).
The page now shows the Google search results for "Hello World". The task was to go to Google and type 'Hello World' into the search bar. I have done this, and the search has been executed.

Task completed successfully. I went to Google and typed 'Hello World' into the search bar, and the search results are now displayed.

 プログラムで細かく動作を設定せずとも自然言語で指示を出すことで希望するタスクをAIが実行してくれました。

応用(+α)

 今度は少しステップを増やしてGoogleのホームページからamazonのサイトに移動して「airpods pro 2」のレビューを調べてもらいましょう。最初のURLは同様にGoogleのホームページとして細かい指示は与えずに試してみようと思います。
クエリは以下となります。

python main.py --query "Search 'airpods pro2' on amazon and show the reviews."

 まずはGoogle検索でamazon.comのサイトへ遷移をしようとします。今回はreCAPTCHAの画面は表示されずにamazonのサイトへ遷移することができました。
スクリーンショット 2025-10-13 17.40.31.png

 amazon.comのサイトはUS向けのサイトのため配送先が日本になっており住所を変更するというポップアップが表示されましたが今は無視して検索を進めることにしたようです。
スクリーンショット 2025-10-13 17.42.01.png

スクリーンショット 2025-10-13 17.43.20.png

 続いてamazonのサイトに「airpods pro2」と検索をしました。検索上位に「airpods pro2」を見つけることができレビューも確認できたようです。そして「see customer reviews」をクリックして次に進もうとします。
スクリーンショット 2025-10-13 17.46.25.png

スクリーンショット 2025-10-13 17.44.48.png

 「see customer reviews」をクリックしようとしたところポップアップが閉じたためかクリックできなかったようです。そこで製品のタイトルや画像をクリックして製品のページに飛ぶよう試みます。想定外のことが起きても目標を達成するために進んでくれる点はAIの良さですね。
スクリーンショット 2025-10-13 17.47.21.png

 無事製品のページに遷移できたようです。その上でレビューを探すようですがページの下の方にあることも理解しているようです。LLMとして知識を持っているためわざわざ指示を出さなくても自分で見つけてくれる点は素晴らしいですね。
スクリーンショット 2025-10-13 17.49.04.png

 最後にレビューが見つかるまでページをスクロールしていき無事ユーザーのレビューが記載されているページに辿り着きました。

スクリーンショット 2025-10-13 17.51.57.png

スクリーンショット 2025-10-13 17.52.34.png

感想

 同じようなことは今までもプログラミングでもできましたが指示を細かく出す必要があり、サイトのUIなどが更新されると対応できないなど柔軟性に欠けました。一方でLLMのモデルが一般的になることで細かい指示を与えることなく、また自然言語で指示を与えることができる点はまさにLLMが登場してきた際と同様の感動がありました。また、AIはタスクを完了するために画面を見て柔軟に対応できる点も非常に優れていると感じました。
 今回はweb検索として使いましたが繰り返しの入力フォームへの登録なども自動化できるため様々な業務を効率化できるのではないかと思います。あるシステムから別のシステムに入力を転記するという作業はどの業務でもあることで、自動化できればあらゆる分野で業務効率化が望めるのではないかと思いました。
 次回は上記のような入力フォームの自動転記を試してみたいと思います。

最後までお読みいただきありがとうございました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?