Gemini 4 Argon は、Google のフロンティア モデルです。コーディング、金融、法律、サイバーセキュリティ、科学など、さまざまな分野の複雑な現実世界のタスクで高度な作業を行うことができます。Gemini 4 ファミリーの最初のモデルです。
このドキュメントでは、4 Argon の新機能、適用される API の規則、移行方法、クイックスタートについて説明します。Gemini 4 ファミリーの概要については、 Gemini 4 を使ってみるをご覧ください。
Gemini 4 Argon の新機能
- コンテキスト ウィンドウ: 1,048,576 トークンのコンテキスト ウィンドウは、 入力トークン、思考トークン、出力トークンで共有されます。
- 最大 1,048,576 トークンの長いデコード: 単一リクエストの出力上限(ストリーミング リクエストの場合は 65,536 トークン、ストリーミングを使用しない直接 HTTP リクエストの場合は 32,768
トークン)を超えて、`GenerateContent` で最大 1,048,576 トークンまで生成できます。
GenerateContentGoogle Gen AI SDK は、リクエスト間でcontinuation_tokenを自動的に処理します。また、独自の継続ループでcontinuation_tokenを管理することもできます。 - 思考レベル:
LOW、MEDIUM( のデフォルト)、HIGH( のデフォルト)。gemini-4-argongemini-4-argon-cyber-permissive - 永続的なキャッシュ保存による暗黙的なキャッシュ保存: 暗黙的なキャッシュ保存は、6,144 トークン以上の共有プロンプト プレフィックスに 自動的に適用され、 永続的なキャッシュ保存はデフォルトで有効になっています。明示的なコンテキスト キャッシュ保存はサポートされていません。
- エージェント型動画理解: 一般提供されており、デフォルトでオフになっています。
クイックスタート
始める前に、アプリケーションのデフォルト認証情報(ADC)または API キーを使用して Agent Platform に対する認証を行う必要があります。詳細については、Gemini Enterprise Agent Platform を使ってみるをご覧ください。
次のコードブロックで、PROJECT_ID は実際のプロジェクト ID に置き換えてください。
インストール
最新の Google Gen AI SDK(google-genai >= 2.30.1 for Python,
@google/genai >= 2.29.1 for JavaScript, >= 1.74.0 for Go, >= 1.77.0 for
Java, >= 1.26.0 for .NET, or >= 1.6.0 for Kotlin)にアップグレードします。
pip install --upgrade "google-genai>=2.30.1"
基本リクエスト
Python(GenerateContent)
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-4-argon",
contents="How does AI work?",
)
print(response.text)
Python(Interactions API)
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
turn1 = client.interactions.create(
model="gemini-4-argon",
input="Design a lock-free ring buffer in Rust for multi-producer, single-consumer telemetry ingestion.",
store=True,
)
print(turn1.output_text)
turn2 = client.interactions.create(
model="gemini-4-argon",
input="Add a bounded backpressure policy and unit tests for concurrent writers.",
previous_interaction_id=turn1.id,
)
print(turn2.output_text)
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent \
-d '{
"contents": {
"role": "USER",
"parts": { "text": "Why is the sky blue?" }
}
}'
構造化出力
from pydantic import BaseModel, Field
from google import genai
from google.genai import types
class ArchitectureReview(BaseModel):
component: str = Field(description="Service or module name")
bottlenecks: list[str] = Field(description="Throughput or latency bottlenecks")
recommended_changes: list[str] = Field(description="Concrete refactoring steps")
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-4-argon",
contents="Review a synchronous order-processing pipeline backed by a single primary database at 15,000 writes/sec.",
config=types.GenerateContentConfig(
response_mime_type="application/json",
response_schema=ArchitectureReview,
thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
),
)
print(response.text)
長いデコード
デフォルトでは、1 つの API リクエストで最大 65,536 個の思考トークンと出力トークン(ストリーミングを使用しない直接 HTTP リクエストの場合は 32,768 トークン)が生成されます。GenerateContent(v1beta1)で最大 1,048,576 トークンのコンプリーションを生成するには、max_output_tokens を 65,536 より大きい値(最大 1,048,576)に設定します。finish_reason が CONTINUATION の場合(GenerateContentConfig で automatic_continuation=False を設定して自動継続を無効にすることもできます)、Google Gen AI SDK はリクエスト間で continuation_token を自動的に追跡します。また、カスタムループで continuation_token を渡すこともできます。
Python(SDK - 推奨)
from google import genai
from google.genai import types
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
# Automatic continuation is enabled by default in google-genai >= 2.30.1.
# Chunks across all continuation requests are yielded as a single stream.
for chunk in client.models.generate_content_stream(
model="gemini-4-argon",
contents="Write a complete formal proof of the prime number theorem.",
config=types.GenerateContentConfig(
max_output_tokens=256000,
thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
),
):
print(chunk.text, end="")
# Set automatic_continuation=False to disable automatic continuation
# and stop at a single request.
single_request_response = client.models.generate_content(
model="gemini-4-argon",
contents="Write a complete formal proof of the prime number theorem.",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
automatic_continuation=False,
),
)
print(single_request_response.text)
REST(カスタム継続ループ)
# Request 1: Initial request with maxOutputTokens > 32,768
curl -s -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "Write a complete formal proof of the prime number theorem."}]
}],
"generationConfig": {
"maxOutputTokens": 131072,
"thinkingConfig": {"thinkingLevel": "HIGH"}
}
}'
# Request 2: Resend the original request with top-level continuationToken
# from Request 1 (candidates[0].continuationToken)
curl -s -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "Write a complete formal proof of the prime number theorem."}]
}],
"continuationToken": "CONTINUATION_TOKEN_FROM_REQUEST_1",
"generationConfig": {
"maxOutputTokens": 131072,
"thinkingConfig": {"thinkingLevel": "HIGH"}
}
}'
必須の API ルールと動作の規則
Gemini 4 Argon では、次の規則が適用されます。
- コンテキスト ウィンドウと単一リクエストの出力上限:
- 1,048,576 トークンのコンテキスト ウィンドウは、入力トークン、思考トークン、出力トークンで共有されます。
max_output_tokensを1,048,576より大きい値に設定すると、HTTP400エラーが返されます。 - 意図しない長いコンプリーションを回避するため、単一リクエストの出力上限(思考 + モデル レスポンス)はデフォルトで 65,536 トークン(ストリーミングを使用しない直接 HTTP リクエストの場合は 32,768 トークン)です。
- 1,048,576 トークンのコンテキスト ウィンドウは、入力トークン、思考トークン、出力トークンで共有されます。
長いデコード:
- 長いデコードの仕組み: 長いデコードでは、最大
1,048,576 トークンの生成が複数の
GenerateContent推論に分割されます。リクエストが完了する前にリクエストあたりの出力上限に達すると、API はfinish_reason=CONTINUATIONと、元のプロンプトのハッシュとそれまでの生成状態を含む暗号化されたcontinuation_tokenを返します。continuation_tokenが発行されなくなり、finish_reason=STOPになるまで、元のプロンプトを含む後続のリクエストにcontinuation_tokenを含めます。(Agent Studio では、出力トークン上限を 65,536 から 1,048,576 に設定すると、継続トークンが自動的に処理されます)。 - 長いデコードを使用する場合: ほとんどのリクエストは、リクエストあたりの
上限(65,536 トークン、またはストリーミングを使用しない REST 呼び出しの場合は 32,768 トークン)内で完了します。
長いデコードを使用すると、モデルの推論の余地が広がります。回答が長くなるわけではありません(推論の深さを制御するには
thinking_levelを使用します)。
ワークロード 長いデコードを使用しますか? 理由 難しい数学、科学、研究、正式な証明 はい モデルは、推論の探索と確認に 65,536 トークン以上を使用できます。 最も難しいコーディングとエージェント タスク はい 一部のタスクでは、1 つのレスポンスで 65,536 トークンを超える思考とコードが必要です。ほとんどのコーディングとエージェント タスクは 65,536 トークン未満で完了します。 出力上限で停止する評価ハーネス はい 長いデコードを使用すると、モデルが思考に 65,536 トークンまたは 32,768 トークンのリクエスト全体を使用した場合に、回答が途中で切れるのを防ぐことができます。 チャット、Q&A、要約、分類、抽出 いいえ これらのタスクは 32,768 トークン未満で完了します。 「70 万語の本を書く」など、固定長のリクエスト いいえ モデルは長さの目標に従いません。 多くの短いターンでツールを呼び出すエージェント いいえ 各ターンは短いです。各ターンで大きな出力を行うと、共有の 1,048,576 トークンの入出力ウィンドウがすぐにいっぱいになります。 1,048,576 トークンの入力上限に近いプロンプト いいえ 出力に使用できるのは、1,048,576 トークンから入力トークン数を引いた数のみです。 レイテンシの影響を受けやすいリクエスト いいえ 長いデコードは数分間実行されることがあります。 - 継続オプションの選択: すべてのオプションで、
1,048,576 トークンの上限に達します。
gemini-4-argonとgemini-4-argon-cyber-permissive
ディメンション オプション 1: Google Gen AI SDK(推奨) オプション 2: 独自のストリーミング ループ( streamGenerateContent)オプション 2: 独自の非ストリーミング ループ( generateContent)各セグメントを開始するユーザー SDK(デフォルトでは automatic_continuation=True)。65,536 トークンを超える出力の場合は、max_output_tokensを 65,536 より大きい値(最大 1,048,576)に設定します。各チェックポイントまたはストリームがドロップされた後のコード 32,768 トークンごとのコード リクエストあたりのトークン数 セグメントあたり最大 65,536 ストリームあたり 65,536 リクエストあたり 32,768 リクエストあたりの時間制限 20 分 20 分 20 分 ストレージと ZDR サーバー ストレージなし(ZDR 準拠) サーバー ストレージなし(ZDR 準拠) サーバー ストレージなし(ZDR 準拠) 最適な用途 ほとんどのアプリケーション ストリーミングを行う REST 呼び出し元とカスタム ハーネス シンプルな評価ハーネス - 実装ルールと制限事項:
v1beta1API の要件(既知の問題): 長いデコード (continuation_token)は、GenerateContent(generateContentとstreamGenerateContent)で、v1beta1API でのみサポートされています(v1ではサポートされていません)。Google Gen AI SDK は、api_version='v1'がhttp_optionsで指定されていない限り、デフォルトでv1beta1を使用します。直接 REST 呼び出しの場合は、v1beta1エンドポイント パスを使用します。長いデコードは Interactions API ではサポートされていません。- SDK のバージョンと OpenAI 互換性: 最新の Google Gen AI SDK(Python の場合は
google-genai >= 2.30.1、JavaScript の場合は@google/genai >= 2.29.1、Go の場合は>= 1.74.0、Java の場合は>= 1.77.0、.NET の場合は>= 1.26.0、Kotlin の場合は>= 1.6.0)にアップグレードします。古い SDK バージョンと OpenAI 互換レイヤでは、継続トークンを使用して長いコンプリーションを取得できません。カスタム クライアントの実装については、Google Gen AI SDK リファレンス実装をご覧ください。 - `continuation_token` を使用して元のリクエストを再送信する
continuation_token: カスタムループで、max_output_tokensを 65,536(ストリーミング) または 32,768(単項)から 1,048,576 に設定し、継続 リクエストごとに最新のcontinuation_token(REST のGenerateContentRequestの最上位 フィールド、または Google Gen AI SDK のGenerateContentConfig)とともに、元のcontents、system_instruction、およびtoolsを再送信します。部分的なモデル出力をcontentsに追加したり、モデルに継続を求めるフォローアップ プロンプトを送信したりしないでください。 - 思考のみのリクエストを続行する:
finish_reasonがCONTINUATIONでcontinuation_tokenが 存在する場合はループします。リクエストが思考に 32,768 トークンまたは 65,536 トークンをすべて使用した場合でも(parts: [{"text": ""}])。continuation_tokenが存在するときにfinish_reasonがMAX_TOKENSの場合、生成はリクエストされたmax_output_tokensの上限に 達しました。リクエストでmax_output_tokensを増やします。累積された部分を結合して、STOPの後にのみ、マルチターン履歴の単一のmodelターンにします。 - トークンのカウント、圧縮、95% の暗黙的なキャッシュ保存割引:
- Python Google Gen AI SDK(
generate_contentとgenerate_content_stream)では、最終的なレスポンスまたはチャンクのusage_metadataに、継続リクエスト全体の課金対象トークンの合計が累積されます。継続リクエストごとに、以前の部分的なコンプリーションが入力トークンとして再入力されるため、prompt_token_countは継続リクエスト全体で累積的に増加します。エージェント ハーネスでコンテキスト圧縮をトリガーするためにprompt_token_countを使用しないでください。代わりに、initial_prompt_token_count(GenerateContentResponseまたはusage_metadata)を読み取り、GenerateContentが完了するまで (continuation_tokenが存在しない)待ってから圧縮します。 - カスタム REST ループでは、
usage_metadataは各リクエスト内で累積されます。リクエスト全体で最終的なprompt_token_count、cached_content_token_count、candidates_token_count、thoughts_token_countを合計します。 - 継続リクエストごとに、プロンプトと以前にデコードされたトークンが再入力され、リクエストが 15 ~ 20 分のキャッシュ TTL 内で連続して実行されると、95% の暗黙的なコンテキスト キャッシュ保存割引(最小 6,144 トークン)が自動的に適用されます。
streamGenerateContentとgenerateContentは、各リクエストの終了時(65,536 ストリーミング / 32,768 単項)にcontinuation_tokenとusage_metadataを返し、リクエストの終了時に課金が行われます。
- Python Google Gen AI SDK(
- 長いデコードの仕組み: 長いデコードでは、最大
1,048,576 トークンの生成が複数の
無視されるサンプリング パラメータ(
temperature、top_k、top_p): バックエンドはカスタム値を無視します。推論の深さを制御するにはthinking_levelを使用し、出力形式を制御するにはresponse_schemaを使用します。サポートされていないパラメータ(
frequency_penalty、presence_penalty、candidate_count): これらは HTTP400エラーを返します。リクエストから削除してください。コンテキスト キャッシュ保存: 明示的なコンテキスト キャッシュ保存はサポートされていません。暗黙的なキャッシュ保存(デフォルトで永続的なキャッシュ保存が有効)は、6,144 トークン以上の共有プロンプト プレフィックスに自動的に適用されるため、静的コンテンツをプロンプトの先頭に配置します。
エージェント型動画: アップロードされた動画はデフォルトで
media_processing="static"に設定されます。media_processing="agentic"を設定すると、 エージェント型動画処理が有効になります。トークンのカウントと課金: モデルが処理するすべてのトークンがカウントされ 課金されます。これには、グラウンディングを使用する場合の思考トークン、内部ツール システム命令 関数宣言が含まれます。Google 検索によるグラウンディングも、クエリごとに課金されます。
関数呼び出し:
- ターンの対称性: 各
FunctionResponseは、先行するFunctionCallのid、name、 順序と一致する必要があります。 - 順次実行: 複数ステップのツールループでは、順次ツール実行ターンを優先します。
- ツール前のフォーマット: インライン命令は
\n\nで区切り、 ツール呼び出しの前に構造化されていないテキストを使用しないでください。
- ターンの対称性: 各
チャット シーケンスの検証:
- 履歴ペイロードは
modelロールのターンで終わることはできません。 - 事前入力済みモデルターンはサポートされていません。
- 履歴ペイロードは
3.1 Pro から 4 Argon に移行する
次の動作は gemini-3.1-pro-preview と異なります。
- コンテキスト ウィンドウは、入力と出力の上限が別々ではなく、入力、思考、出力で共有される 1,048,576 トークンのウィンドウです。単一リクエストの
出力は 65,536 トークン(ストリーミングを使用しない直接
HTTP リクエストの場合は 32,768 トークン)に制限され、
長いデコードを使用して最大 1,048,576 トークンまで拡張できます(
GenerateContentGoogle Gen AI SDK で自動的に処理されるか、カスタムループでcontinuation_tokenを使用します)。 thinking_budgetは、思考レベルにマッピングされるのではなく、HTTP400エラーを返します。MINIMALもエラーを返します。- 明示的なコンテキスト キャッシュ保存はサポートされていません。
- グラウンディングを使用する場合、内部ツール システム命令や関数宣言など、モデルが処理するすべてのトークンが課金されます。
並べて比較するには、 Gemini 3.1 Pro から移行するをご覧ください。
gemini-3.1-pro-preview から移行するには、次の操作を行います。
- モデル ID を
gemini-4-argon(または Fairwind で承認された サイバーセキュリティ ワークロードの場合はgemini-4-argon-cyber-permissive)に更新します。 - 最新の Google Gen AI SDK にアップグレードし、共有
コンテキスト ウィンドウを考慮する:
google-genai >= 2.30.1(Python)または同等の最新の Google Gen AI SDK にアップグレードします。入力トークン、思考トークン、出力トークンは、1,048,576 トークンのコンテキスト ウィンドウを共有します。GenerateContentで 65,536 トークンを超える出力(最大 1,048,576 トークン)の場合は、max_output_tokensを 65,536 より大きい値に設定して、Google Gen AI SDK がリクエスト間で自動的に継続するようにします(または、独自の REST ループでcontinuation_tokenを処理します)。 - 推論予算パラメータを置き換える:
thinking_budgetとMINIMALを、次のいずれかの値に設定されたthinking_levelに置き換えます:HIGH:gemini-4-argon-cyber-permissiveのデフォルト。 マルチファイル ソフトウェア エンジニアリング、正式な証明、アーキテクチャ設計、脆弱性の発見。MEDIUM:gemini-4-argonのデフォルト。一般的なコーディング、ツールの使用、ドキュメントの Q&A、動画の理解。LOW: 分類、要約、メタデータの抽出。
- 明示的なキャッシュ保存を削除 し、静的プロンプト コンテンツ(6,144 トークン以上)を先頭に配置して、暗黙的なキャッシュ保存を自動的に行います。
- 効果がないパラメータやサポートされていないパラメータを削除する:
- 無視される
temperature、top_p、top_kを削除します。 candidate_count、frequency_penalty、presence_penaltyを削除します。- 会話履歴から、事前入力済みモデルターンを削除します。
- 無視される
デベロッパー向けの概要チェックリスト
既知の問題
GenerateContentで長いデコードを行うにはv1beta1が必要です。GenerateContentAPI(generateContentとstreamGenerateContent)での長いデコード(continuation_token)は、v1beta1API でのみサポートされています(v1ではサポートされていません)。 Google Gen AI SDK は、http_optionsでapi_version='v1'が設定されていない限り、デフォルトでv1beta1を使用します。直接 REST 呼び出しの場合は、v1beta1エンドポイント パスを使用します。