Agentic Vision(エージェンティック・ビジョン)は、Geminiが画像を一度見て答えるのではなく、Pythonコードを書いて画像を切り抜いたり、印を描き込んだり、数値を計算したりしながら答えを確かめる使い方です。Googleは2026年1月27日に「Gemini 3 Flash」の新機能として発表しましたが、中身はGemini APIの「コード実行(code execution)」ツールを画像入力と組み合わせたものです。この記事では、仕組みと効く処理・効かない処理、2026年11月時点で公式ドキュメントの記述が割れている対応モデル、Gemini Robotics ER 2向けの公式例、APIでの有効化コード、料金と制約までを一次情報で整理します。
まとめ:Agentic Visionの要点
- 必要に応じてPythonを実行し、その結果(切り抜いた画像や計算値)を文脈に戻してから答える。Googleはこのループを「Think・Act・Observe」と呼ぶ
- Googleの発表では、コード実行を有効にしたGemini 3 Flashは大半のビジョンベンチマークで一貫して5〜10%改善した
- 細部のズームはモデルが自分で判断する。回転・計数・計算は「コードで数えて」のように明示的に頼む必要がある
- 有効化はツールに
code_executionを足すだけで、Thinkingも有効にしておく。追加料金はなく、生成コードと実行結果がトークンとして課金される - 対応モデルは記述が割れている。Gemini APIのドキュメントは「Gemini 3 Flashで公式サポート」と書きつつサンプルは
gemini-3.8-flash、Agent Platform(旧Vertex AI)側は2026年11月10日の更新後も「Gemini 3 Flashのみ」と明記している - Gemini APIのドキュメントで「Agentic vision」という名前のページは、ロボット向けの
gemini-robotics-er-2-previewの使用例集になっている。計器や液面の読み取りなど、現場の画像に近い例が載っている - 実行は1回最大30秒、ライブラリは固定で追加できない。毎回同じ手順で判定したい検査ラインには向かない
Agentic Visionの仕組み:Think・Act・Observeのループ
Googleの発表は、これまでのモデルの画像理解を「画像を一度見て答える静的な処理」として描いています。この方式でマイクロチップの型番や遠くの標識のような細部を見落とすと、モデルは推測で埋めるしかありません。Agentic Visionはここを、画像を調べ直せる手順に変えます。テキストと画像をまとめて扱うマルチモーダルAIの仕組みの上に、コード実行という「手」を持たせた形です。
Googleの公式ブログが示すループは次の3段階です。
- Think:質問と元の画像を分析し、何段階で調べるかの計画を立てる
- Act:Pythonコードを生成・実行し、画像を切り抜く・回転する・注釈を描くといった操作や、計算・バウンディングボックスの集計を行う
- Observe:加工後の画像をコンテキストウィンドウに追加し、それを見直してから最終回答を作る
考えて、道具を使い、結果を見てまた考える流れは、LLMエージェントのReActパターンと同じ構造です。違いは、観察の対象が画像そのものである点にあります。切り抜いた部分画像がもう一度入力に戻るので、最初の一瞥で潰れていた細部を、拡大した状態で読み直せます。
Gemini 3 Flashでの発表とビジョン評価の改善幅
発表は2026年1月27日、Google DeepMindのプロダクトマネージャーRohan Doshi氏によるもので、対象はプレビュー版のGemini 3 Flash(gemini-3-flash-preview)でした。改善幅としては「コード実行を有効にすると、大半のビジョンベンチマークで一貫して5〜10%の品質向上」と書かれています。ベンチマーク別のスコアは文章では示されず比較の図に載っているだけで、自社の画像で効くかどうかは自分で比べる必要があります。
ズーム・注釈・ビジュアル数学:自動で動く処理と指示が要る処理
Gemini APIの公式ドキュメントは用途を3つに分けています。ただし、3つとも同じように勝手に動くわけではありません。ここを知らずに試すと「普通の画像入力と変わらない」という結論になりがちです。
モデルが自分で判断する処理:細部のズーム
文字や目盛りが小さすぎると判断すると、モデルは自分で該当部分を切り抜くコードを書き、高い解像度で見直します。ドキュメントの例は「離れた位置にあるゲージを読む」ケースです。公式ブログでは、建築図面の審査サービスPlanCheckSolver.comが、高解像度の図面を部分ごとに切り抜いて検査させることで精度を5%上げた事例が紹介されています。屋根の端や建物の区画を新しい画像として切り出し、建築基準への適合を確かめる使い方です。
プロンプトで頼む必要がある処理:回転・計数・計算
ズーム以外は、現状ではモデルが自発的にコードを使うとは限りません。ドキュメントは「歯車の数を数えるコードを書いて」「この画像を回転させて正しい向きにして」のように、コードを使うよう明示的に頼むことを求めています。
- 注釈:Geminiアプリで手の指の本数を数えさせた例では、指ごとにバウンディングボックスと番号を描き込んでから数えている。描いた画像は根拠として人が確認できる
- ビジュアル数学:表やレシートの数値を読み取り、合計や正規化をPythonで計算する。AI Studioのデモでは、表から読んだ値を従来の最高値=1.0に正規化し、Matplotlibで棒グラフにしている
公式ブログは、注釈を描き込んだ画像を「visual scratchpad(視覚的な下書き)」と呼んでいます。計算をPythonに任せる理由も明記されていて、通常のLLMは複数段の視覚的な計算でハルシネーションを起こしやすく、Gemini 3 Flashは計算を決定論的なPython環境に逃がすことでこれを避ける、という説明です。この説明に沿うなら、評価に使う質問は「数える」「足す」「比べる」のようにコードに落とせるものから選ぶのが筋です。
2026年1月27日の発表では、回転やビジュアル数学もズームと同じく暗黙的に動くよう改良を進めるとし、Web検索や逆画像検索との連携の検討、Flash以外のモデルサイズへ展開する方針も示していました。2026年11月時点のドキュメントも同じ注記を残しているので、回転・計数・計算はコードの使用を明示的に指示し、応答に生成コードと実行結果が含まれているかを確認する運用にしてください。
対応モデルの現状:公式ドキュメントで記述が割れている点
Gemini 3.5 Flash以降のモデルを選ぶときは、「コード実行に対応しているか」と「画像を使ったコード実行に対応しているか」を分けて確認する必要があります。2026年11月11日時点でも、提供経路ごとの公式資料や、同じページ内の本文とサンプルで記述が異なり、資料だけでは対応範囲を一つに確定できません。
| 資料(最終更新) | 画像×コード実行の対象 | サンプルのモデル |
|---|---|---|
| Gemini API code execution(2026-11-11取得) | Gemini 3 Flashで公式サポート | gemini-3.8-flash |
| Agent Platform(2026-11-10) | Gemini 3 Flashのみ | MODEL_ID(変数) |
| Gemini API Agentic vision(2026-11-11取得) | Gemini Robotics ERモデル | gemini-robotics-er-2-preview |
| 公式ブログ(2026-01-27) | Gemini 3 Flash | gemini-3-flash-preview |
Gemini APIのページは、本文が「Gemini 3 Flashで公式にサポート」なのに、Python・JavaScript・Java・Go・RESTのサンプルはすべて gemini-3.8-flash です。一方、Gemini Enterprise Agent Platform(旧Vertex AI)のページは「この機能は、Gemini 3 Flash を使用している場合にのみご利用いただけます」と書いています。同ページは2026年11月10日の更新でコード実行の対応モデルにGemini 4 Carbon・Gemini 4 Argon・Gemini Robotics ER 2(プレビュー)を加えましたが、画像との組み合わせの節は「Gemini 3 Flashのみ」のままです。同日GAのGemini 4 Carbon(gemini-4-carbon)も、モデルページではコード実行と画像入力の両方に対応と表示されるものの、画像を使ったコード実行への対応は書かれていません。
実務上の判断は次のとおりです。
- Agent Platform(Vertex AI)で使う:ドキュメントが「3 Flashのみ」と書いている以上、画像とコード実行の組み合わせが文書上明示されている構成として
gemini-3-flash-previewを評価する - Gemini API(AI Studio)で新規に組む:公式サンプルが使う
gemini-3.8-flashで始めてよい。ただし「公式サポート」の文言は3 Flashにしか付いていないので、自社の画像で3 Flashと結果を比べてから切り替える - 既に3 Flashで動いている:
gemini-3-flash-previewはまだプレビューで、停止日は未発表、推奨の移行先はgemini-3.6-flashとされている。停止日が告知されるまでは無理に移す必要はない
3.8 Flashそのものの差分や料金の全体像は、Gemini 3.8 Flashの3.7からの差分と移行コードにまとめています。
Gemini Robotics ER 2の「Agentic vision」:計器・液面・基板を読む公式例
Gemini APIのドキュメントで「Agentic vision」という名前が付いたページは、2026年11月時点ではFlash向けではなく、ロボット向けの身体性推論モデルGemini Robotics ER(Embodied Reasoning)向けです。このページは「Gemini Robotics ERモデルは、回答の前にPythonコードを書いて実行し、画像を操作してロジックを適用できる」と説明し、使用例を5つ載せています。
- ズームとクロップを使った物体検出:画像を切り抜いて見直し、バウンディングボックスをJSONで返す
- アナログ計器の読み取り:ゲージの現在値と最大値を読み、最大値に達するまでの時間を計算してJSONで返す
- 液面の計測:容器に入った液体の液面の高さを測る
- 基板の刻印の読み取り:回路基板上の部品ラベルや刻印を読み、位置の座標と合わせてJSONで返す
- 画像の注釈:検出結果を画像に描き込み、注釈付きの画像として返す
サンプルのモデルはすべて gemini-robotics-er-2-preview で、2026年7月30日に公開されたプレビュー版です(停止日は未発表)。どの例も interactions.create に tools=[{"type": "code_execution"}] を渡す形で、画像はFiles APIでアップロードしたURIを使います。出力をJSONに固定したいときは system_instruction で形式と精度を指示するよう案内されています。
Flash向けのページに無い情報として、thinking_levelの使い分けが書かれています。物体検出のような空間的なタスクは低いthinking_levelでも十分に動き、計数や重量の推定のような複雑なタスクは高いthinking_levelが効く、という指針です。Flashで評価するときも、既定の設定で結果を取ったあと、検出の質問は low に下げて精度が落ちないか、数える・計算する質問は high で改善するかを比べると、設定の決め方が速くなります。料金は入力が100万トークンあたり$1.00、出力が$5.00(2026年12月31日まで。2027年1月1日からは$2.00と$10.00)で、3.8 Flashより高めです。ロボット制御を伴わない画像の検査だけなら、まずFlash系で評価してください。Gemini Robotics 2のモデル構成と提供状況はGemini Robotics 2の全身制御と提供範囲の解説にまとめています。
Gemini APIでの有効化:Interactions APIとgenerateContentのコード
有効化に必要なのは、ツールの一覧にコード実行を加えることと、Thinkingを有効にしておくことの2点です。Thinkingのほうは、Gemini 3.8 Flashでも3 Flashでも完全にはオフにできない(3.8 Flashはthinking_levelがlow・medium・highの3段階で、minimalを指定するとエラーになる)ため、既定のままで条件を満たします。既定のthinking_levelはモデルで違い、Thinkingのドキュメントの表では gemini-3-flash-preview がhigh、gemini-3.8-flash がmediumです。3 Flashと3.8 Flashを既定のまま比べると思考の深さが揃わないので、比較では両方にthinking_levelを明示してください。コード実行をツールとして渡しても、使うかどうかはモデルが判断します。
Interactions APIでの画像入力と応答画像の保存
2026年11月時点のGemini APIのドキュメント(ai.google.devから aistudio.google.com/docs へ移転)は、Interactions API版のページのサンプルを interactions.create に統一しています。応答は「ステップ」の列で返り、生成したコード、実行結果、モデルが作った画像を種類ごとに取り出せます。次のコードは公式サンプルをもとに、応答に含まれる画像(切り抜きや注釈を描いた画像)を保存するようにした例です。実行前に pip install google-genai requests pillow を済ませ、環境変数 GEMINI_API_KEY を設定してください。
import base64
import io
import requests
from PIL import Image
from google import genai
client = genai.Client() # 環境変数 GEMINI_API_KEY を読む
resp = requests.get("https://goo.gle/instrument-img", timeout=30)
resp.raise_for_status()
image_bytes = resp.content
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=[
{"type": "image",
"data": base64.b64encode(image_bytes).decode("utf-8"),
"mime_type": "image/jpeg"},
{"type": "text",
"text": "Zoom into the expression pedals and tell me how many pedals are there?"},
],
tools=[{"type": "code_execution"}],
)
n = 0
for step in interaction.steps:
if step.type == "code_execution_call":
print("--- 生成コード ---\n", step.arguments.code)
elif step.type == "code_execution_result":
print("--- 実行結果 ---\n", step.result)
elif step.type == "model_output":
for block in step.content:
if block.type == "text":
print(block.text)
elif block.type == "image":
n += 1
img = Image.open(io.BytesIO(base64.b64decode(block.data)))
img.save(f"step_{n}.png") # 返る形式に関係なくPNGで保存
応答に画像が含まれて保存された場合は、step_N.png を開いて、返された切り抜きや注釈を確認できます。ただし、すべての中間画像が返ることを保証するものではありません。最終回答の根拠を監査ログとして残したい業務では、この画像を回答と一緒に保存しておく価値があります。会話を続ける場合は、2回目の呼び出しに previous_interaction_id を渡します。
generateContent(発表時のコードとAgent Platform)
既存の実装が models.generate_content を使っている場合は、configのtoolsにコード実行を加えます。公式ブログ、Agent Platform、Gemini APIのgenerateContent版のページはこちらの書き方です。次の例は、Gemini APIのgenerateContent版のサンプルにならい、取得した画像のバイト列を types.Part.from_bytes で渡しています。
from google import genai
from google.genai import types
import requests
client = genai.Client()
resp = requests.get("https://goo.gle/instrument-img", timeout=30)
resp.raise_for_status()
image = types.Part.from_bytes(data=resp.content, mime_type="image/jpeg")
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents=[image, "Zoom into the expression pedals and tell me how many pedals are there?"],
config=types.GenerateContentConfig(
tools=[types.Tool(code_execution=types.ToolCodeExecution())]
),
)
for part in response.candidates[0].content.parts:
if part.executable_code:
print(part.executable_code.code)
if part.code_execution_result:
print(part.code_execution_result.output)
if part.text:
print(part.text)
Agent Platformで動かすときは、GOOGLE_CLOUD_PROJECT・GOOGLE_CLOUD_LOCATION(ドキュメントの例は global)・GOOGLE_GENAI_USE_ENTERPRISE=True を環境変数に設定し、Google Cloudの認証を済ませてからクライアントを作ります。Agent Platformの公式例もバイト列を types.Part.from_bytes で渡しており、上の画像の渡し方はそのまま使えます。
コードを書かずに試す:AI StudioのPlayground
公式ブログは、Google AI StudioのPlaygroundでToolsの「Code Execution」をオンにして試す方法と、AI Studio上のデモアプリを案内しています。プロンプトの言い回しでコードが使われるかどうかを画面上で先に確かめておくと、API実装の手戻りが減ります。
コード実行の料金と入出力トークンの課金区分
コード実行を有効にしても、ツール自体の追加料金は発生しません(公式料金表)。課金はモデルごとの入力・出力トークン単価で行われます。注意すべきは、ループを回すほどトークンが増える点です。
- 公式料金表は、生成コードと実行結果を作成されたときは出力トークン、モデルが反復推論の中で再び読み込むときは入力トークンとして課金すると書いている。ループが1周増えるごとに、同じコードと結果が出力と入力の両方に数えられる
- コード実行のページ側は、Billingの節で中間トークン(元のプロンプト・生成コード・実行結果)を入力として、I/O料金の節で生成コードと実行結果を出力として説明しており、片方だけ読むと区分を取り違える。料金表の説明はこの2つを作成時と再利用時に分けたものと読める
- 生成コードには、テキストだけでなく画像のようなマルチモーダル出力も含まれうる
- APIの応答には中間トークン数が含まれるので、想定より入力が増えた理由を後から確認できる
| モデル | 入力(100万トークン) | 出力(100万トークン) |
|---|---|---|
| gemini-3.8-flash(2026-12-31まで) | $0.75 | $3.75 |
| gemini-3.8-flash(2027-01-01から) | $1.50 | $7.50 |
| gemini-3-flash-preview | $0.50 | $3.00 |
Gemini APIの無料枠(Free Tier)では、3.8 Flashも3 Flash Previewも入力・出力とも「Free of charge」です。ただし料金表の「Used to improve our products」は無料枠がYes、有料枠がNoで、無料枠で送った画像とプロンプトは製品改善に使われます。社外秘の図面や検査画像を試すなら、課金を有効にしたプロジェクトで行ってください。条件の詳細はGemini APIに学習させない設定、単価と無料枠の上限はGemini APIの料金と無料枠で扱っています。
出力単価にはThinkingのトークンも含まれます。画像1枚の入力は、Gemini 3系の既定(media_resolution未指定)でおよそ1,120トークンです。細部を読ませる用途では公式も画像に high(1,120トークン)を推奨しており、ultra_high(2,240トークン)は画像ごとの個別指定でしか使えません。3.8 Flashの単価で見ると、画像1枚の入力は約0.08セントにとどまります。費用を左右するのは画像そのものより、ループの回数と、Thinkingを含む出力のほうです。見積もりは、実際の画像で数十件流して中間トークン数を測ってから立ててください。
制約:実行30秒・再試行5回・ライブラリ固定
コード実行の環境はGoogle側のサンドボックスで、自由には作り替えられません。設計前に押さえるべき制約は次のとおりです。
- 実行時間:コード環境の最大実行時間は30秒。大きな画像を何度も変換する処理はここで止まる
- 再試行:コードがエラーになると、モデルがコードを書き直すことがある。上限は5回
- 言語:実行できるのはPythonだけ。他の言語のコードは生成はできても実行されない
- ライブラリ:Gemini APIのページはopencv-python、pillow、numpy、scipy、scikit-learn、matplotlib、pandasなど30以上を挙げ、独自のライブラリはインストールできないとしている。グラフ描画はmatplotlibだけが対応。Agent Platformのページが挙げるのはCv2・NumPy・Matplotlibなど15個で、pillowやscipyは載っていない。両方で動かすコードは、一覧の重なる範囲で書かせる
- 入出力:出力ファイルは常にインラインデータ(画像)として返る。Agent Platformではファイル URI を入出力に使えず、インラインのバイトデータで渡す
- 副作用:コード実行を有効にすると、物語を書くような他の出力の品質が落ちる場合があるとドキュメントが明記している
他のツールとの併用も可能です。コード実行はGoogle検索によるグラウンディングと組み合わせられ、Gemini 3系では組み込みツールと関数呼び出しを同じリクエストで使えます。
採用を見送るべき場面
Agentic Visionは「その場でモデルがコードを書く」仕組みです。この性質が、向く仕事と向かない仕事をはっきり分けます。
検査ラインでの判定再現性と固定ロジックの必要性
製造ラインの外観検査のように、同じ画像には同じ判定を返し、しきい値を監査できることが求められる業務には向きません。生成されるコードはリクエストごとに変わりうるうえ、30秒の上限と固定ライブラリの中でしか動きません。判定ロジックを固定したいなら、OpenCVなどで自前のパイプラインを組み、Geminiは例外画像の一次仕分けに回すほうが運用しやすくなります。この2段構成は生成AI開発・AI受託開発でも検証段階から組める形です。検査タスク別の手法選びは画像検査のアルゴリズム選定と精度評価で解説しています。
自社環境での実行要件とFunction Callingの選択
社内の画像処理ライブラリを使いたい、社外に出せないデータベースを参照したい、といった要件はコード実行では満たせません。サンドボックスは外部へのインストールを許さないからです。この場合は、モデルに関数の呼び出しだけを決めさせ、実行は自社の環境で行う関数呼び出し(Function Calling)を選びます。違いはAIのツール使用(Tool Use)の仕組みと実装判断が詳しいです。
画像読解と文章作成の併用時の品質評価
公式ドキュメントは、コード実行を有効にすると物語を書くような別の種類の出力で品質が落ちる場合があると説明しています。画像を読んで紹介文やキャッチコピーまで1回で書かせる処理では、コード実行の有無で文章の品質を比べてください。比較テストで文章が劣化した場合は、画像の読み取りと数値の確認をコード実行ありの呼び出しで、文章化をコード実行なしの別の呼び出しで行う2段構成に分けます。
よくある質問
Agentic Visionを使うと追加料金はかかりますか?
コード実行ツールそのものに料金はかかりません。生成コード・実行結果・切り抜いた画像・要約のトークンがモデルの単価で課金されるため、ループの回数が多いほど通常の画像入力より費用は増えます。公式料金表では、生成コードと実行結果は作成時に出力トークン、反復推論で再利用されるときに入力トークンとして課金されます。
Gemini 3.5 Flashや3.8 FlashでもAgentic Visionは使えますか?
画像とコード実行の組み合わせを公式に「サポート」と書いているのはGemini 3 Flashだけです。Gemini APIのサンプルは gemini-3.8-flash を使っていますが、3.5 Flash、3.8 Flash、Gemini 4 Carbonに対応を明記した記述はありません。新規に組むなら3 Flashと3.8 Flashを自社の画像で比べてから決めてください。
Geminiアプリでも使えますか?
発表時の公式ブログでは、Geminiアプリのモデル選択で「思考モード(Thinking)」を選ぶと使えるようになり、段階的に提供を始めると案内されていました。アプリにはコード実行をオン・オフする設定の案内はなく、ズームや注釈を使うかどうかはモデルが判断します。生成コードまで確かめたい場合は、AI StudioのPlaygroundかAPIを使ってください。
普通のOCRと何が違いますか?
OCRは画像から文字を抽出する処理で、Cloud Vision APIの DOCUMENT_TEXT_DETECTION は文字列にページ・ブロック・段落・単語の構造情報を付けてJSONで返します。Agentic Visionは、読みにくい部分を自分で切り抜いて読み直し、読んだ数値をPythonで合計・照合して、根拠の画像まで返します。大量の帳票を決まった形式で文字起こしするだけなら、専用OCRも同じ帳票で比較してください。
建築図面のチェックに使えますか?
公式ブログで紹介されたPlanCheckSolver.comは、高解像度の図面を部分ごとに切り抜いて検査させ、精度を5%上げたとしています。細い線や小さな寸法文字の拡大は自動で動くズームの得意分野ですが、最終的な適合判断は、モデルが描いた切り抜き画像を人が確認する前提で組み込んでください。