
Googleからブラウザ操作に特化した「Gemini 2.5 Computer Use」のプレビューが発表されました。エージェントループによる自律的なタスク実行能力や先行するClaude computer useとの違いが注目されています。
本記事では、Gemini 2.5 Computer Use による自動化を検討しているエンジニアやプロダクトマネージャーに向けて、Gemini 2.5 Computer Useとは何か、使い方から実装コードの解説、複雑な料金の試算手順やセキュリティ対策などを徹底解説します。
Gemini 2.5 Computer Useとは|できること・できないこと

Gemini 2.5 Computer UseとはWebブラウザの操作に特化したツールです。2025年10月に公開され、Googleが提供するマルチモーダルモデル「Gemini 2.5 Pro」の視覚理解と推論機能を活用します。

従来のAIはテキスト/コードなどの生成・解析といった思考のみを行っていたのに対し、Gemini 2.5 Computer Useは人間のように画面を視覚的に認識し、クリック・入力等の具体的なアクションを実行します。一方で、現状デスクトップOS全体の操作は対象外です。
仕組み|スクリーンショット→アクション提案→実行→再スクショのエージェントループ
Gemini 2.5 Computer Useは以下のエージェントループの仕組みによって、人間のようにブラウザを自律的に操作します。
コンテキスト(文脈)として、以下の情報が送信されます
- ユーザーからの指示(例:主要なAIモデルの料金を調べて)
- アクション履歴(例:検索したワード、クリックしたURL)
- ブラウザ操作ツールが取得した「スクリーンショット」
Gemini 2.5 Computer Useでは、AIモデルがリスクが高いアクションを提案した場合、そのアクションを実行する前に「人間による承認」を求めることで安全性を担保します
フォームへのテキスト入力やボタンのクリック等、人間と同じような操作をブラウザ操作ツールが実行します
アクション実行後にブラウザ操作ツールが新しいスクリーンショットを取得し、1の処理に戻ります
ユーザーからの指示を達成するまで、この1~4のサイクルを繰り返す仕組みがエージェントループです。

対応範囲|Webブラウザ操作に最適化(デスクトップOS制御は対象外)
Gemini 2.5 Computer Useはブラウザ操作に特化して設計されたモデルです。
実際にブラウザを操作するのはPlaywrightなどのブラウザ操作ツールとなります。言い換えると、Gemini 2.5 Computer Useが使えるツールは現状ブラウザ操作ツールに特化しており、ローカルファイル操作やアプリケーション起動などのデスクトップOS全体の制御は対象外です。
AIによる操作範囲をブラウザ環境内に限定する設計により、誤操作リスクや権限の過剰取得を防ぐセキュアな運用が可能になっています。
安全設計|高リスク操作をrequire_confirmationによる人間承認フローで制御
Gemini 2.5 Computer Useには、セキュアな運用を実現するための内部安全システムも組み込まれています。内部安全システムは AIモデルが提案するアクションの内容をチェックし、APIレスポンスのsafety_decisionというフィールド(項目)にその結果を含めます。
safety_decisionの値、つまり内部安全システムの判定結果は以下の2種類です。
- 安全な場合:
regular/allowed/ フィールド自体が空 - リスクがある場合:
require_confirmation
safety_decisionの値がrequire_confirmationの場合、アクションを実行するためにはユーザーの承認が必要となります。ユーザーの承認をスキップすることは利用規約に基づいて許可されていません。

つまり、AIモデルが「商品の購入」や「データの削除」といった 高リスクな操作を提案した場合、Gemini 2.5 Computer Useは エージェントループを一時停止して人間に承認を求めます。
このように、require_confirmation によってAIの意思決定に人間が関与する「Human-in-the-loop」を実現することで、AIの暴走や意図しない誤操作を防ぐ設計になっています。
ユースケース|リサーチ・フォーム入力・データ抽出・レポーティング等
Gemini 2.5 Computer Useの特長は、Webブラウザを使った作業を自律的に処理できることです。以下のような、従来の自動化ツールが苦手としていた動的なWebタスクも遂行することが可能です。
| カテゴリ | 具体的なタスク例 |
|---|---|
| リサーチ | 競合サービスの価格・プラン・機能一覧を複数サイトから取得し、表形式に整理 ニュースサイトやブログを検索し、特定キーワード(例:AIモデル・SaaS業界)の最新動向を要約 |
| フォーム入力 | 在庫管理システムに商品情報をまとめて登録 社内の人事システムに、従業員情報をスプレッドシートから順番に登録 |
| データ抽出 | 商品データベースの商品価格だけ、ニュース一覧のタイトルだけ、といった部分抽出 BIダッシュボードの表データを読み取り、CSV化して保存 |
| レポーティング | 広告管理画面(Google Ads等)から数値を集計してレポート化 調査結果を表や箇条書きに整理し、PDF化するまでを自動実行 |
AIモデルの思考能力を活用することで、適切な情報源の選定や、フィルタリング・条件分岐を伴う複雑なUI操作を自動化することができます。
Gemini 2.5 Computer Useの使い方|セットアップから実行まで

Gemini 2.5 Computer Use の使い方の特徴は、ブラウザ操作ツールと連携させたループ処理となります。APIでモデルを呼び出し、Playwrightなどのブラウザ操作ツールと組み合わせることで「観察→計画→行動→評価」のループを構築できます。
ここでは、Gemini 2.5 Computer Useを利用するためのAPIキー取得から、Python環境でのPlaywrightのセットアップ、そしてエージェントループのコード実装について解説します。また、環境構築不要で手軽に試せるBrowserbaseについても紹介します。
準備|Gemini 2.5 APIキーの取得とPlaywrightのセットアップ
Gemini 2.5 Computer Useを使い始めるために、 Google AI StudioまたはVertex AIでAPIキーを取得 します。ここではGoogle AI Studioを使った手順をご紹介します。

画面左下の「Get API Key」をクリックしてください。

画面右上の「APIキーを作成」をクリックすると、ポップアップが表示されます。

任意の「キー名」を入力し、プロジェクトを選択してから、「キーを作成」ボタンをクリックしてください。
プロジェクトについて
請求先アカウントをリンクしているプロジェクトを選択してください。請求先アカウントをリンクしていない場合、「よくあるエラー①|Free Tierクォータ超過の際は請求先アカウントを確認」の事象が発生します。
作成したAPIキーが表示されますので、コピーボタンをクリックしてコピーします。このAPIキーは後ほど使用しますので、メモしておいてください。

次に、Playwrightのセットアップを行います。
Gemini 2.5 Computer Useを使うためには、PlaywrightやSeleniumなどのブラウザ操作ツールが必要です。今回は公式ドキュメントでも紹介されているPlaywrightを利用します。 なお、ご紹介する手順はPython 3.14の環境で確認したものとなります。
python -m pip install playwrightコマンドで、Playwrightのインストールを実行します。「Successfully installed … 」というメッセージが表示されていればインストール完了です。

PlaywrightでWebブラウザ操作をするために、python -m playwright install chromiumコマンドでChromiumもインストールします。「Chromium Headless Shell 141.0.7390.37 (playwright build v1194) downloaded to…」のように、ダウンロード先のパスが表示されていれば完了です。

準備は以上となります。この環境で、エージェントループを実装したプログラムを実行することで、Gemini 2.5 Computer Useを使った自律的な処理が可能となります。
実装内容|エージェントループの基本(観察・計画・行動・評価)
エージェントループを実装したプログラムについて、実装内容を疑似コードで簡単にご紹介します。実際のソースコードについては「コード解説|Playwrightでブラウザを操作してGemini 2.5 Computer Useによる自動化を実現」をご参照ください。
# ブラウザ操作ツールのセットアップと、ユーザーからの指示の定義
browser = start_browser() # ブラウザを起動する
prompt = [ "ユーザーの命令:このサイトで〇〇をして"] #コンテキストとして、ユーザーからの指示を追加
# ループ:タスクが完了するまで繰り返す
while not task_done:
# 1. 観察: 画面スクリーンショットの取得
current_screenshot = page.take_screenshot()
# 2. 思考・提案:AIモデルにコンテキストを送信し、次のアクションの提案を受け取る
gemini_response = ask_gemini(
screenshot=current_screenshot,
history=history
)
prompt.append(gemini_response) #AIモデルからの提案をコンテキストに追加
# 3. 実行:AIモデルの提案するアクションを実行
if gemini_response.type == "done":
# AIモデルから次のアクションの提案がない場合はループを終了する
task_done = True
break
elif gemini_response.type == "action":
# AIモデルから次のアクションの提案がある場合、アクションを実行
action = gemini_response.action # 例: {"kind": "click", "x": 500, "y": 300}
# 4. 評価:アクションの実行結果を確認する
after_screenshot = page.take_screenshot() # 実行後のスクリーンショットを取得
# スクリーンショットなど、実行後の状態をAIモデルに送信(2. 思考・提案に戻る)
history.append({
"action_executed": action,
"result_screenshot": after_screenshot
})
browser.close() # 終了処理
実践|Playwright × Geminiで実現するエージェントループ
今回は「Google検索を使って、主要なAIモデル(GPT-4, Gemini, Claude 3など)のAPI利用料金を調べて、最後に表にまとめてください」というプロンプト(ユーザーからの指示)を与えてGemini 2.5 Computer Useを利用してみます。エージェントループを実装したプログラムを実行すると、以下のようにブラウザ操作が開始されます。
ブラウザが起動し、自動で検索ワードが入力されます

検索ワードが入力された後、検索が行われ検索結果が表示されます

自動で画面が移動されます。画面より、Google検索のAIモードを実行したことが分かります。

プログラムを実行したターミナルを確認すると、検索結果をもとに主要なAIモデルのAPI利用料金の表を出力し、プログラムが終了しました。

Gemini 2.5 Computer Use(AIモデル)は、「AIモデルの利用料金を調べて表にまとめる」というタスクに対して、GoogleブラウザのAI機能を使ったという結果になりました。
なお「各AIモデルの公式サイトで利用料金を調べて」というプロンプトを追加することで、それぞれの公式サイトにアクセスすることも確認できました。
- モデル名 + pricing で検索
-
プロンプトを追加する前は「主要AIモデル」で検索していましたが、それぞれのモデルごとに検索していることが分かります。

- 公式サイトで料金を確認
-
検索結果からモデルの公式サイトにアクセスし、料金を確認していることが分かります。

以上の結果から、プロンプトを抽象的にすると効率的な方法をGemini 2.5 Computer Useが考えて実行しますが、プロンプトを具体化することでGemini 2.5 Computer Useの判断をコントロールできることが分かります。

コード解説|Playwrightによるブラウザ操作とGemini 2.5 Computer Useによる自動化
エージェントループの実装について、公式ドキュメントのエージェント ループを構築するのソースコードを抜粋しながらポイントをご紹介します。
動作環境については、以下が必要となります。
- Python 3.10 以上推奨
- Gen AI SDK for Python
- Playwright API
- プレビュー期間中、Gen AI SDKではPython以外のプログラミング言語はサポートされていません
- Gen AI SDK for Pythonを実行するために必要となるgoogle-genaiはPython3.9以上で動作させる必要があります
また、Gemini 2.5 Computer Useを利用するために、サンプルコードには記載されていませんが genai.Client() にAPIキーをセットする必要があります。APIキーをコード内に記述することも可能ですが、セキュリティ観点で望ましくないため、以下のように環境変数で受け渡す実装が推奨されます。
api_key = os.environ.get("GEMINI_API_KEY")
WindowsのPowerShellの場合、環境変数は$env:GEMINI_API_KEY="APIキー"のコマンドで設定できます。
それではサンプルコードについて、Gemini 2.5 Computer Useの特徴であるエージェントループのステップごとに分けて解説します。
観察の段階ではコンテキストとして、ユーザーからの指示とアクション履歴(ループ2回以降の場合)、現在のスクリーンショットをAIモデルに渡します。以下のコードでは、ユーザーからの指示とスクリーンショットは contentsという名前のリストに格納されています。
# Initialize history
initial_screenshot = page.screenshot(type="png") #Playwrightを使ってスクリーンショットを撮影
USER_PROMPT = "Go to ai.google.dev/gemini-api/docs and search for pricing." #ユーザーからの指示
print(f"Goal: {USER_PROMPT}")
contents = [
Content(role="user", parts=[
Part(text=USER_PROMPT), #ユーザーからの指示を格納
Part.from_bytes(data=initial_screenshot, mime_type='image/png') #スクリーンショットを格納
])
]
コンテキストをAIモデルに渡す処理と、AIモデルによる思考・アクションの提案はまとめて実装されるため、次のステップで紹介します。
用意したコンテキストをAIモデルに送信するとAIモデルはその内容を解析し、クリックや入力などの具体的なアクションを提案します。このAIモデルとのやりとりは、以下のようにgenerate_content()メソッドによって実装します。Geminiではgenerate_content()メソッドを使ってAIモデルに対して入力データを送信し、AIモデルの出力結果を受け取ります。
# Agent Loop
turn_limit = 5
for i in range(turn_limit):
response = client.models.generate_content(
model='gemini-2.5-computer-use-preview-10-2025', #Gemini 2.5 Computer Useのモデルを指定
contents=contents, # 1. 観察 で用意したコンテキストをセット
config=config,
)
candidate = response.candidates[0] # AIモデルからの提案
contents.append(candidate.content) # AIモデルからの提案をコンテキストに追加
generate_content()メソッドを使用する際、model変数によってリクエスト送信先のAIモデルを指定します。Gemini 2.5 Computer Useを利用する場合、model変数にはmodelgemini-2.5-computer-use-preview-10-2025を指定する必要があります。
AIモデルからの出力(アクションの提案)を受け取ったら、そのアクションをブラウザ操作ツールで実行します。
次のアクションが必要と判断した場合、AIモデルは出力にfunctionCallsを含めます。そのため、以下のコードではAIモデルから受け取ったresponseにfunctionCallsが含まれているかをチェックしてから次の処理を判定しています。
has_function_calls = any(part.function_call for part in candidate.content.parts)
# AIモデルからの出力にfunctionCallsが含まれない場合:ループを終了
if not has_function_calls:
text_response = " ".join([part.text for part in candidate.content.parts if part.text])
print("Agent finished:", text_response)
break
print("Executing actions...")
# AIモデルからの出力にfunctionCallsが含まれる場合:指定されたUIアクションを実行
results = execute_function_calls(candidate, page, SCREEN_WIDTH, SCREEN_HEIGHT)
functionCallsが含まれている場合、指定されたUIアクションを引数としてexecute_function_calls()に渡し、UIアクションを実行する処理になっています。このexecute_function_calls()については利用者が実装する必要があります。
公式ドキュメント のサンプルコードでは、以下のとおり
「ウェブブラウザを開く(open_web_browser)」、「特定の座標をクリックする(click_at)」、「特定の座標にテキストを入力する(type_text_at)」の3種類のUIアクションが実装されています。
def execute_function_calls(candidate, page, screen_width, screen_height):
results = []
function_calls = []
for part in candidate.content.parts:
if part.function_call:
function_calls.append(part.function_call)
for function_call in function_calls:
action_result = {}
fname = function_call.name
args = function_call.args
print(f" -> Executing: {fname}")
try:
if fname == "open_web_browser":
# 「ウェブブラウザを開く」処理(操作なし)
pass # Already open
elif fname == "click_at":
# 「特定の座標をクリックする」処理をPlaywrightのmouse.click()で実装
actual_x = denormalize_x(args["x"], screen_width)
actual_y = denormalize_y(args["y"], screen_height)
page.mouse.click(actual_x, actual_y)
elif fname == "type_text_at":
# 「特定の座標にテキストを入力する」処理をPlaywrightによる処理の組み合わせで実装
actual_x = denormalize_x(args["x"], screen_width)
actual_y = denormalize_y(args["y"], screen_height)
text = args["text"]
press_enter = args.get("press_enter", False)
page.mouse.click(actual_x, actual_y)
# Simple clear (Command+A, Backspace for Mac)
page.keyboard.press("Meta+A")
page.keyboard.press("Backspace")
page.keyboard.type(text)
if press_enter:
page.keyboard.press("Enter")
Gemini 2.5 Computer Useの役割は、コンテキストから次のアクションを提案することです。提案された内容をどのブラウザ操作ツールで実現するかは利用者が自由に選択できます。そのため、AIモデルから提案されたアクションと、実際にそのアクションをブラウザ操作ツールでどう具体化するかは利用者が設計する必要があります。
サンプルコードで実装されているUIアクションは3種類のみですが、Gemini 2.5 Computer UseではそのほかのUI操作もサポートしています。
アクションを実行したら、再度ブラウザ操作ツールが新しいスクリーンショットを取得し、エージェントループの最初の処理に戻ります。サンプルコードでは、以下のとおり実装されています。
function_responses = get_function_responses(page, results) #スクリーンショットやURL情報などをセット
# スクリーンショットやURL情報などをコンテキストに追加
contents.append(
Content(role="user", parts=[Part(function_response=fr) for fr in function_responses])
)
get_function_responses()の内容は公式ドキュメントの 4. 新しい環境の状態をキャプチャするにサンプルが示されています。このコードでは以下の通り、アクション実行後の状況を観察するためにスクリーンショットを取得するなどの処理が実装されています。
def get_function_responses(page, results):
screenshot_bytes = page.screenshot(type="png") #スクリーンショット取得
current_url = page.url #現在のURL
function_responses = []
for name, result in results:
response_data = {"url": current_url}
response_data.update(result)
function_responses.append(
types.FunctionResponse(
name=name,
response=response_data,
# AIモデルが受け取れる形でスクリーンショットやURLの情報を格納
parts=[types.FunctionResponsePart(
inline_data=types.FunctionResponseBlob(
mime_type="image/png",
data=screenshot_bytes))
]
)
)
return function_responses
get_function_responses()によって取得されたスクリーンショットや現在のURLは、コンテキスト(contentsリスト)に追加されます。その後、エージェントループの最初の処理に戻り、AIモデルへのデータ送信…という形でループ処理が続きます。
操作一覧|10種類以上のUI操作(クリック・入力・スクロール等)と除外アクション
Gemini 2.5 Computer Useでは、検索エンジンによる検索(search)や指定した座標のクリック(click_at)、ページのスクロール(scroll_document)など10種類以上のUI操作に対応しています。これらのUI操作を実行することで、人が行う一連のブラウザ操作を再現できます。詳細は公式ドキュメントのサポートされている UI アクションをご確認ください。
これらのUI操作のなかで実行させたくない操作がある場合は excluded_predefined_functions を使用して除外することができます。たとえば、意図しないファイルのアップロードなどを防止するために、ドラッグ&ドロップ(drag_and_drop)を実行させたくない場合は以下のようにconfigを設定します。
#除外したいアクションを指定
excluded_functions = ["drag_and_drop"]
generate_content_config = genai.types.GenerateContentConfig(
tools=[
types.Tool(
computer_use=types.ComputerUse(
environment=types.Environment.ENVIRONMENT_BROWSER,
#除外関数を使用する
excluded_predefined_functions=excluded_functions
)
),
],
)
このconfigをgenerate_content()の引数として渡すことで、AIモデルからの出力に対して除外関数が適用されます。
今すぐ試す|Browserbaseを使ってGemini 2.5 Computer Useを利用
Gemini 2.5 Computer Useを短時間で試したい場合、環境構築不要のデモ環境「Browserbase」の利用をおすすめします。Googleアカウントがあれば、ブラウザ上ですぐにデモを実行できるため、導入前の機能検証(PoC)に最適です。
Run ボタンをクリックしてください。

これだけで、Gemini 2.5 Computer Useが実行できます。
「Google検索を使って、主要なAIモデル(GPT-4, Gemini, Claude 3など)のAPI利用料金を調べて、最後に表にまとめてください。」というプロンプトを入力した場合、以下のように動作しました。
自動で検索ワードを入力し検索が実行されます。

検索結果に表示されたページにアクセスし、料金表を確認していることが分かります。

プロンプトで表にまとめるように指示をしていたため、検索結果をもとに表を作成してデモが終了しました。

Gemini 2.5 Computer UseとClaude computer useの違いを比較|精度と速度・導入性・料金

「Gemini 2.5 Computer Use」と先行して登場したAnthropic社の「Claude computer use」はどちらも画面操作が可能ですが、得意領域は明確に異なります。Gemini 2.5 Computer UseはWebブラウザ操作に特化している一方、Claude computer useはOSレベルの操作(ファイル管理・アプリ操作)にも対応しています。
ここではGemini 2.5 Computer UseとClaude computer useの違いを、精度・速度・料金・導入容易性などの観点から整理します。

比較表と結論|Web操作ならGemini、OS制御ならClaude
精度と速度はGemini 2.5 Computer Useが優位ですが、対応範囲はGemini 2.5 Computer UseがWebブラウザ操作のみをサポートしているのに対し、Claude computer useはOSデスクトップの操作もカバーしています。
結論として、Web操作だけなら性能のよいGemini 2.5 Computer Use、OS制御も必要な場合はClaude computer useを選択するのがよいでしょう。
| 項目 | Gemini 2.5 Computer Use | Claude computer use (Sonnet4.5) | Claude computer use (Sonnet4) | |
|---|---|---|---|---|
| 対応範囲 | Webブラウザを操作可能 | Webブラウザに加えてOS全体を操作可能 | ||
| 精度・速度 | Online-Mind2Web (Web操作の実運用に最も近いベンチマーク) | 65.7%、約225秒 | 55.0%、約280秒 | 61.0%、約300秒 |
| WebVoyager (複雑なWeb探索・操作タスクのベンチマーク) | 79.9% | 71.4% | 69.4% | |
| AndroidWorld (Androidアプリ操作タスクのベンチマーク) | 69.7% | 56.0% | 62.1% | |
| OSWorld (OS上の操作を行うタスクのベンチマーク) | – | 61.4% | 42.2% | |
| 料金 (プロンプトが 200, 000 トークン以下の場合) | 入力:$1.25/Mトークン 出力:$10/Mトークン | 入力:$3/Mトークン 出力:$15/Mトークン | ||
| 導入性 | Googleプラットフォームとの親和性が高い 本番運用の場合、Google CloudやVertex AI 等のキャッチアップが必要 | Amazon Bedrock経由で利用する場合、AWSとの親和性が高い Claude APIのみの提供もあり、シンプルな導入も可能 | ||
| 監査・権限管理 | Google Cloudと連携した場合、 Cloud Audit LogsとIAMの機能が利用可能 | Amazon Bedrockと連携した場合、 AWS CloudTrailとIAMの機能が利用可能 | ||

ベンチマークとスペックを比較|対応範囲・推論速度・監査・権限
Online-Mind2WebやWebVoyagerといったWeb操作に関するベンチマークを確認すると、Claude SonnetシリーズよりもGemini 2.5 Computer Useの方がよいパフォーマンスを残しています。AndroidWorldも同様にClaude Sonnetシリーズよりも良いパフォーマンスとなっており、Gemini 2.5 Computer Useがモバイル対応していること、モバイル操作においても高い性能を出せることが分かります。
ただしOSWorldのパフォーマンスを見てみると、Gemini 2.5 Computer Useでは現在、OS上の操作には対応していないことが分かります。一方でClaude Sonnetは既に対応済みで、Claude Sonnet 4では42.2%だった数値がClaude Sonnet 4.5では61.4%に改善されており、Claude SonnetシリーズのOS制御に関するパフォーマンスは向上しています。このように、Gemini 2.5 Computer UseとClaude computer useの違いとして、OS制御が可能かどうかという点があります。

ベンチマークのうち、Online-Mind2Webでは品質だけでなくレイテンシー(≒推論速度)についても数値が公開されています。通常、品質とレイテンシーはトレードオフの関係にあるため、操作を正確にして品質を高めようとするとレイテンシーは大きくなり、レイテンシーを小さくしようとすると操作の正確性が損なわれ品質は下がります。しかし、Gemini 2.5 Computer Useは他のモデルと比較して品質とレイテンシーの両方が優れており、非常に効率のよいモデルであることが分かります。

本番運用のためには機能性だけでなく、権限管理や監査対応についても関心がもたれます。Gemini 2.5 Computer UseもClaude computer useも、クラウドサービス(Google Cloud/AWS)と連携する場合はクラウドサービスの機能を使った権限管理、監査ログの取得・保管が可能です。クラウドサービスと連携しない場合や、クラウドサービスの機能でコントロールできない範囲については、利用者がプログラム実装などにより対策する必要があり、この点は両モデル共通です。
導入性|Googleエコシステム統合 vs マルチプラットフォーム対応
Gemini 2.5 Computer UseはGoogle Cloudを始めとした各種Googleサービスとの親和性が高いという特長があります。一方で、本番運用においてGoogle CloudやVertex AIなどのサービスと連携してGemini 2.5 Computer Useを利用する場合には、それらのサービスを扱うスキルが必要になります。
Claude computer useは自社によるAPI提供を行っているため、導入の際の学習コストはClaudeに関する範囲になります。加えてAWSサービスであるAmazon Bedrockを経由して利用することで、他のAWSサービスと連携した使い方もできます。
Gemini 2.5 Computer UseはGoogleプラットフォームのスキルがある場合や、他のGoogleサービスと連携させたいというケースに向いています。Claude computer useはAWSサービスと連携させたい場合だけでなく、学習コストを抑えてシンプルにClaude computer useの利用を始めたいケースにも向いています。
コスト比較|入力・出力・画像の課金構造と料金の概算手順
コストについては比較表のとおり、Gemini 2.5 Computer Useの方が入力・出力ともにトークン単価が安価に設定されています。
特にComputer Useではスクリーンショットを取得してAIモデルに入力するため、入力トークンの違いが大きく影響します。入力価格は、Gemini 2.5 Computer Useの「$1.25/Mトークン」に対し、Claude computer useは「$3/Mトークン」と2倍以上の違いがあるため、トータルの利用料はGemini 2.5 Computer Useの方が安くなることが見込まれます。
料金の概算方法については表のとおり、Claude computer useは実行するアクションごとにもトークンが消費され、課金されるという違いがあります。Gemini 2.5 Computer Useは入力・出力トークンのみで試算できるため、Claude computer useと比較してコスト構造がシンプルです。
| 課金の要素 | Gemini 2.5 Computer Use | Claude computer use | |
|---|---|---|---|
| 入力 | テキスト (プロンプト、アクション履歴) | 文字数に応じてトークンを消費 | |
| 画像 (スクリーンショット) | 画像のサイズに応じてトークンを消費 | ||
| 出力 | テキスト (AIモデルの推論結果) | データのサイズに応じてトークンを消費 | |
| ツールの利用 (アクションの実行) | – | 1アクションごとに固定のトークンを消費 | |
Gemini 2.5 Computer Useの料金については、詳細を「トークンと料金体系|スクショ解像度・アクション履歴・プロンプトの長さがコストに与える影響」にて解説しています。
Gemini 2.5 Computer Useの料金|トークン課金の仕組みと節約テクニック

画像認識を伴うGemini 2.5 Computer Useの利用において、注意すべきなのがトークンベースの課金です。1ステップごとに送信されるスクリーンショットは、テキスト情報に比べてトークン消費量が多いため、想定外のコストが発生する可能性があります。
ここではGemini 2.5 Computer Useの課金体系を解説しながら、「Context Caching(コンテキストキャッシュ)」の活用・画像サイズの調整によるコスト削減、予算超過を防ぐためのQuota・アラートの設定について詳しくお伝えします。
トークンと料金体系|スクショ解像度・アクション履歴・プロンプトの長さがコストに与える影響
Gemini 2.5 Computer Useの料金は全てトークンに対して発生します。このトークンの計算方法は、テキストと画像(スクリーンショット)によって異なります。
テキストの場合、約4文字の入力または出力で1トークンを消費します。つまり、ユーザー指示やAIモデルからの提案内容が長くなるとコストもその分増加します。
テキストのトークン目安
1トークン=約4文字という計算は、英語が前提のため日本語の場合は変動する可能性があります
画像の場合、以下のとおり画像のサイズによって料金が決まります。
- 384px以下の画像:1枚あたり258トークンを消費
- 384pxより大きい画像:画像サイズに応じてタイル(小さな正方形)に分割され、タイルごとに258トークンを消費
画像内のタイル数の計算方法
384pxより大きい画像では、タイルの一辺は「画像の短辺 ÷ 1.5」で計算され、縦・横のタイル数を切り上げて掛け合わせることで総タイル数が算出されます。
上記を踏まえて、一般的なPC画面のスクリーンショット(1920×1080)で消費するトークンを計算すると、以下のようになります。
- 1タイルの一辺長 ≒ 画像の短辺 (1080) ÷1.5=720
- 画像に含まれるタイル数=(画像の縦÷1タイルの一辺長)×(画像の横÷1タイルの一辺長)
= 2.7×1.5 ≒ 3×2 = 6タイル- 2.7→3、1.5→2に切り上げて計算
- 6×258 トークン= 1548 トークンを消費
つまり、一般的なPC画面のスクリーンショット(1920×1080)の場合は約1,550トークン分の料金が発生します。
テキスト(ユーザー指示やAIモデルからの提案内容)と画像を比較すると、画像が料金に与える影響が大きいことが分かります。
コスト試算|プロンプトと画像解像度に基づく概算シミュレーション
トークンあたりの料金は以下の料金表のとおりです。Gemini 2.5 Computer UseはGemini 2.5 Proの料金体系に基づく従量課金となります。
| 料金条件 | 入力 (Input) | 出力 (Output) | キャッシュ入力 (Context Caching) | |
|---|---|---|---|---|
| プロンプト ≤ 200,000 トークン | 料金単価 (USD) | $1.25 /100万トークン | $10.00 /100万トークン | $0.125 /100万トークン |
| 料金単価 (日本円概算) | 約188円 /100万トークン | 約1,500円 /100万トークン | 約19円 /100万トークン | |
| プロンプト > 200,000 トークン | 料金単価 (USD) | $2.50 /100万トークン | $15.0 /100万トークン | $0.25 /100万トークン |
| 料金単価 (日本円概算) | 約375円 /100万トークン | 約2,250円 /100万トークン | 約38円 /100万トークン | |
| 備考 | ― | プロンプト、アクション履歴、画像を含む | モデルからのアクションの提案等 | 2回目以降の履歴部分に自動適用 (通常の入力の10%) |
※ 日本円は $1 = 150円 で計算
この料金表より一般的なPC画面のスクリーンショット(1920x1080px, 1548 トークン)は、1枚当たり約0.3円の料金となることが分かります。

コスト削減|Context Caching活用と画像サイズ調整
Gemini 2.5 Computer Use の利用では、画像(スクリーンショット)の送信料金が全体の利用料金に大きく影響します。そのため、アクション履歴の送信回数を削減するContext Cachingの活用と、送信する画像サイズを小さくする2つのアプローチがコスト削減に有効です。
Context Cachingを使用すると、AIモデルに入力するコンテキストを再利用できます。Gemini 2.5 Computer Useの場合、アクション履歴として画像などの情報を毎回送信しますが、2回目以降に送信する情報を「キャッシュ入力」とすることで、料金を1/10に抑えられます。Gemini 2.5 Computer UseではContext Cachingは自動で「キャッシュ入力」の料金が適用されるため、コスト観点でも安心して利用できます。
またスクリーンショットのサイズ調整や不要な領域のトリミングを行うことで、1枚あたりのトークン消費を抑える工夫も有効です。Playwrightでブラウザを操作する場合、viewport の設定によりサイズ調整が可能です。
# Playwrightブラウザの起動
playwright = sync_playwright().start()
# headless=False にすると実際の動きを目視できます
browser = playwright.chromium.launch(headless=False)
# 指定したサイズでコンテキストとページを作成
context = browser.new_context(
# ★ここでビューポート(解像度)を指定★
viewport={"width": <画面横のサイズ>, "height": <画面縦のサイズ>}
)
page = context.new_page()
### タスク開始 ###
ただし、レイアウト崩れや座標ズレによってエージェントループの試行回数が増加し、料金増加に繋がる可能性があります。そのため、PoCでの適切なサイズ調整範囲の判断や、座標の補正処理の実装が重要です。
予算管理|API使用量の上限設定(Quota)と予算アラート
Gemini 2.5 Computer Useを本番運用で継続的に利用する場合、予算の超過に対するリスク対策も必要です。特にGemini 2.5 Computer Useはステップごとにスクリーンショットを送信するため、ループ暴走や例外処理不足が原因で短時間でも大量のトークンを消費する可能性があります。
このリスクに対しては、APIの使用量について上限(Quota)を設定するアプローチが有効です。Gemini 2.5 Computer Useでは、最初のQuotaは低い値が割り当てられているため、使用量が増えてQuotaを超過させる必要がでてきた場合にQuota緩和をリクエストしてください。Quota設定はGoogle AI Studioではなく、Google Cloud Consoleからの設定となるため注意が必要です。
Quota設定と併せて、意図しないトークン消費を検知するために予算アラートの設定も重要です。事前に指定した料金のしきい値を超えた場合に通知されるため、予算アラートを設定することでQuotaに達する前にトークンの浪費を発見することができます。予算アラートもGoogle Cloud Consoleからの設定となります。
https://console.cloud.google.com/ にアクセスする。APIキー作成時に選択したプロジェクトが選択されていることを確認して、「課金」をクリックする

「予算とアラート」を選択し「予算を作成」

「名前」には任意の名前を入力します。期間は「月別」、「毎四半期」、任意の期間などが選択可能です。

サービスは、Gemini APIのみを選択することをおすすめします。選択しない場合はデフォルトで「すべてのサービス」が選択され、Google Cloudで利用している他の料金を合算した値でモニタリングされます。

予算タイプ「指定額」とし、目標金額に任意の値を入力したら、「終了」をクリックしてください。

目標金額に入力した値が予算となり、デフォルトでは利用料金がこの予算の50%、90%、100%に達したタイミングで通知されます。「終了」をクリックせずに「次へ」をクリックすると、通知タイミングを変更することも可能です。
Gemini 2.5 Computer Use の安全性|リスク管理とセキュリティ設計

AIにブラウザ操作を任せる場合、「意図しない購入処理」や「機密情報の誤送信」といったセキュリティリスクが懸念事項となります。
Gemini 2.5 Computer Use は、セキュリティリスクを技術的に制御するための機能を提供しています。その他、Gemini 2.5 Computer Useの備える内部安全システムや実行環境レベルでのセキュリティ対策といった、多層レイヤでのセキュリティ対策についてここで紹介します。
リスクのある操作の対策|内部安全システムとsafety_decisionを使った実装
「安全設計|高リスク操作をrequire_confirmationによる人間承認フローで制御」で解説したように、Gemini 2.5 Computer Use では、AIモデルの提案が内部安全システムにより審査され、safety_decisionの値として返されます。
商品の購入やデータの削除・送信といった高リスク操作では、safety_decision の値が require_confirmation となり、必ず人間の承認を経て実行される設計になっています。この仕組みによって、Gemini 2.5 Computer Useでは誤操作による損害をシステム的に防止します。
不適切な入力・出力への対策|プロンプトによる制御とフィルタの設定
内部安全システムに加えて、Gemini 2.5 Computer Useが提案するアクション(出力)をシステムプロンプトでコントロールすることはセキュリティ対策として有効です。禁止する行為やユーザー承認を必要とする行為をシステムプロンプトとして与えておくことで、Gemini 2.5 Computer Useの操作を自社固有のセキュリティポリシーに準拠させる効果が期待できます。公式ドキュメントで提示されている安全性に関する指示の例を参考にすることができます。
セキュリティの観点では、ユーザーからの入力やAIモデルからの出力が不適切になっていないか評価することも重要です。プロンプトの入力・出力の安全性を評価する専用モデル「ShieldGemma」を利用することで、不適切な入力・出力へのセキュリティ対策を実現できます。
ただし、ShieldGemmaの利用料金が別途必要な点はご注意ください。デフォルトで利用できるGemini 2.5 Computer Useの内部安全システムやプロンプトによる制御だけでは不十分な場合に、利用を検討するとよいでしょう。
実行環境のセキュリティ対策|サンドボックスの利用と適切な権限・通信制御
AIモデル側のセキュリティ対策だけでなく、Gemini 2.5 Computer Useの実行環境やブラウザ操作ツールでもセキュリティ対策を実施することが重要です。
Gemini 2.5 Computer Useの実行環境には、社内システムや機密情報を扱うシステムから隔離した環境を用意することが推奨されます。環境を隔離することで、実行プログラムが侵害された場合でも被害範囲を極小化できます。特にタスクごとに環境がリセットされるコンテナの利用が有効です。
ブラウザ操作ツールにおけるセキュリティ対策としては、ブラウザ操作の制限や通信先制御などが実施できます。Playwrightの場合、permissionsオプションで許可する操作を指定することで、アクセス先のWebサイトから要求される機能(カメラ、マイク、位置情報などの利用)について許可またはブロックできます。permissionsオプションで指定できる操作については、Playwrightの公式ドキュメントをご確認ください。
# 指定したサイズでコンテキストとページを作成
context = browser.new_context(
# ビューポート(解像度)を指定
viewport={"width": <画面横のサイズ>, "height": <画面縦のサイズ>}
# ★ここで permissions オプションを指定
permissions=["clipboard-read"], # 例: クリップボード読み取りのみ許可
)
またPlaywrightではrouteメソッドを利用して、特定の宛先に向かう通信をブロックすることも可能です。
# 許可するドメインのリスト
ALLOWED_DOMAINS = ["www.google.com"]
def handle_route(route):
request_url = route.request.url
# URLが許可リストに含まれるかの判定
is_allowed = any(domain in request_url for domain in ALLOWED_DOMAINS)
if is_allowed:
route.continue_() # 許可:通信を続行
else:
print(f"Blocked: {request_url}")
route.abort() # 拒否:通信を遮断
# 全てのリクエストに対してハンドラを適用
page.route("**/*", handle_route)
#ページへアクセス
page.goto("https://www.google.com") # 成功
page.goto("https://www.example.com") # ブロックされる
このようにブラウザ操作ツールが実行できる操作やアクセス可能な通信先などを制御することで、仮にGemini 2.5 Computer Useが誤って不要な権限を使ったり、意図せず外部サイトへの攻撃に利用されてしまった場合でも被害が拡大するリスクを抑制できます。

Gemini 2.5 Computer Use導入・運用ガイド|FAQとトラブルシューティング

Gemini 2.5 Computer Useによる自動化をPoC(概念実証)から本番運用へ移行させるためには、技術的な動作確認だけでなく、企業としてのコンプライアンスやガバナンス要件をクリアする必要があります。
ここでは、本番運用時に問われる「法的リスク」や「ログの取得」、セキュリティポリシーとの整合性といったガバナンス・運用管理に関する疑問にお応えします。 併せて、開発初期に直面するであろう技術的なトラブルとその具体的な対処法もまとめました。
認証画面がある場合も自動化できる?|Human-in-the-loop実装によりセキュアな自動化が可能

多くのWebサービスではログイン時の認証や多要素認証が存在しますが、認証情報を自動化ツールに保管する運用はセキュリティ観点で望ましくないため、自動化が難しいケースがあります。特に多要素認証の場合、自動化ツールから情報を取得できない要素(生体、別デバイス等)を操作する必要があるため困難でした。
こういった課題についても、Gemini 2.5 Computer Useの利用によって「Human-in-the-loop」を実装し、認証情報の入力は人間が操作・承認することでセキュアな自動化が可能です。これにより、認証情報をコードに保管するリスクも回避できます。
実行ログは取得可能?|Cloud Audit Logsかコードによる実装で取得
Gemini 2.5 Computer Useを本番運用する場合、トラブルシューティングや監査のためにログの取得・保管は非常に重要です。
Vertex AIを使ってGemini 2.5 Computer Useを利用している場合、API実行の履歴はCloud Audit Logsに記録されます。ただし、どのボタンをクリックしたか等の「操作の中身」までは記録されない点に注意してください。
Google AI Studioを使っている場合や、ブラウザ操作ツールの操作ログも記録したい場合はプログラム内でログ出力を実装する必要があります。Playwrightではcontext.tracing()を使ってトレースを有効化することで、操作ログとしてアクセスしたURLやそのURLに対するリクエスト・レスポンスなどが記録できます。
context = browser.new_context()
context.tracing.start(screenshots=True,snapshots=True,sources=True) #トレースの有効化
###省略###
context.tracing.stop(path="trace.zip") #トレースの終了。path で保存先のファイルのパスを指定
法的なリスクはある?|対象サイトの利用規約やrobots.txtを確認
DoS攻撃対策などを理由に、サイトによっては機械的なアクセスを禁止/制限しているケースがあります。 こういったサイトにGemini 2.5 Computer Useを使ってアクセスすると、不審なアクセスとみなされて通信がブロックされたり、法務上のトラブルに発展するリスクがあるため、必ずサイトの利用規約を確認してください。
また、多くのサイトはルートディレクトリに配置した robots.txt によって、クローラーからのアクセスを許可/拒否するページを指定しています。法的な強制力はありませんが、参考情報として利用規約と合わせて確認するとよいでしょう。
Pythonの場合、urllib.robotparserというrobots.txt用のパーサーがあるため、robots.txtを自動解析してサイトへのアクセス制御を実装することが可能です。
よくあるエラー①|Free Tierクォータ超過の際は請求先アカウントを確認
Gemini 2.5 Computer Useを使用していると、以下のように Quota exceeded エラーが発生する場合があります。
429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to:
https://ai.google.dev/gemini-api/docs/rate-limits.\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0
このエラーは、APIキー作成時に選択したプロジェクトで請求先アカウントを選択していない(=無料枠として利用している)場合に発生します。 2025年12月現在、Gemini 2.5 Computer Useは無料枠では利用できません。
このエラーが発生した場合、APIキーの画面では請求先アカウントが正しくリンクされているか確認してください。画像のように「無料枠」となっている場合は、「お支払情報を設定」から請求先アカウントを設定する必要があります。

よくあるエラー②|セレクタ取得失敗は待機処理で対策
Gemini 2.5 Computer Useを実行すると、以下のようにタイムアウトが発生したり、期待する結果を得ていない状態でエージェントループが終了することがあります。
TimeoutError: Timeout 60000ms exceeded.
アクセスしたWebページの読み込みが完了する前に、ブラウザ操作を実行しようとした場合、この事象が発生することがあります。
Webページの生成が追い付いていないと、Gemini 2.5 Computer Useが判断に利用したスクリーンショットの状態からWebページの状態が変わってしまうため、Playwrightがアクションを実行しても期待した結果が得られず、タイムアウトの発生やエージェントループの中断が起こります。
Playwright のアクション実行前に適切な待機処理を実装することで対策できます。
def execute_function_calls(candidate, page, screen_width, screen_height):
### 省略 ###
try:
if fname == "click_at":
# 「特定の座標をクリックする」処理をPlaywrightのmouse.click()で実装
actual_x = denormalize_x(args["x"], screen_width)
actual_y = denormalize_y(args["y"], screen_height)
page.mouse.click(actual_x, actual_y)
# 待機処理
time.sleep(1.0)
### 省略 ###
よくあるエラー③|レイアウト不一致エラーの場合は画像座標を正規化
Gemini 2.5 Computer Useを使用していると、以下のように特定の座標に対する操作を繰り返したあと、エラーが発生するケースがあります。
--- Iteration 4 --- Executing actions...
[Action] AI is requesting: type_text_at with args: {'text': 'AI model API pricing GPT-4 Gemini Claude 3', 'x': 471, 'y': 425}
--- Iteration 5 --- Executing actions...
[Action] AI is requesting: click_at with args: {'x': 471, 'y': 425}
(中略)
--- Iteration 7 --- API Error: 500 INTERNAL. {'error': {'code': 500, 'message': 'Internal error encountered.', 'st--- Iteration 7 --- API Error: 500 INTERNAL. {'error': {'code': 500, 'message': 'Internal error encountered.', 'stAPI Error: 500 INTERNAL. {'error': {'code': 500, 'message': 'Internal error encountered.', 'status': 'INTERNAL'}}
0〜999で正規化された座標を、実際の画面サイズにスケーリングしないまま画面操作を行っている場合に、このエラーが発生することがあります。
実行したプログラム内で以下のように座標の正規化解除(denormalize)処理が適切に行われているか確認してください。
def denormalize_x(x: int, screen_width: int) -> int:
return int(x / 999 * screen_width)
def denormalize_y(y: int, screen_height: int) -> int:
return int(y / 999 * screen_height)
まとめ
Gemini 2.5 Computer Useの仕組みから実装のポイント、類似ツールである Claude computer use との比較、そして実運用で考慮が必要なコスト管理やセキュリティ対策について解説してきました。
Playwrightのような従来のブラウザ操作ツールやRPA(Robotic Process Automation)による自動化には「UI変更に追従するための保守コスト」「複雑なWebフォームへの適用」など複数の課題がありました。Gemini 2.5 Computer Useを使用し、AIの「視覚認識」と「推論能力」を活用することによって、これら従来の課題の解決が期待できます。
まずはBrowserbaseを使った動作検証やGoogle AI Studioを利用してプロトタイピングの作成から着手し、Gemini 2.5 Computer Useによる業務自動化・効率化への第一歩を踏み出してみてください。



