Gemini 4 Argon は、コーディング、金融、法律、サイバーセキュリティ、科学などの分野にわたる複雑な現実世界のタスクにおいて、ディープ ワークに優れたパフォーマンスを発揮する Google のフロンティア モデルです。これは、Gemini 4 ファミリーの最初のモデルです。
このドキュメントでは、4 Argon の新機能、適用される API 規約、移行方法、クイック スタートについて説明します。Gemini 4 ファミリーの概要については、Gemini 4 を使ってみるをご覧ください。
Gemini 4 Argon の新機能
- 統合された入力トークンと出力トークンの上限: 4 Argon には、入力トークンと出力トークンの両方を含む 1,048,576 トークンの統合上限があります(出力には、思考、関数呼び出し、最終レスポンスが含まれます)。
- 最大 1,048,576 トークンの長いデコード:
GenerateContentで、生成を単一リクエストの出力上限(65,536 トークン、または非ストリーミングの直接 HTTP リクエストの場合は 32,768 トークン)を超えて最大 1,048,576 トークン(入力トークンを除く)まで拡張します。Google Gen AI SDK は、リクエスト間でcontinuation_tokenを自動的に処理します。また、独自の継続ループでcontinuation_tokenを管理することもできます。 - 思考レベル:
LOW、MEDIUM(gemini-4-argonのデフォルト)、HIGH(gemini-4-argon-cyber-permissiveのデフォルト)。 - 永続キャッシュ保存による暗黙的なキャッシュ保存: 暗黙的なキャッシュ保存は、6,144 個以上のトークンの共有プロンプト プレフィックスに自動的に適用されます。永続キャッシュ保存はデフォルトで有効になっています。明示的なコンテキスト キャッシュ保存はサポートされていません。
- エージェント型動画理解: 一般提供。デフォルトではオフになっています。
クイックスタート
始める前に、アプリケーションのデフォルト認証情報(ADC)または API キーを使用して Agent Platform に対する認証を行う必要があります。詳細については、Gemini Enterprise Agent Platform を使ってみるをご覧ください。
次のコードブロックで、PROJECT_ID をプロジェクト ID に置き換えます。
Agent Studio で試す
Agent Studio UI でプロンプトをテストし、gemini-4-argon を構成するには:
- Cloud de Confiance by S3NS プロジェクトで Agent Studio を開き、Gemini グループで
gemini-4-argonを選択します。 - [モデル設定] で、次のように構成します。
- 思考レベル:
Low、Medium(デフォルト)、Highのいずれかを選択します。 - リージョン:
Global、us、euのいずれかを選択します。 - 出力トークンの上限:
32,768~1,048,576(デフォルトは1,048,576)の範囲で設定します。Agent Studio は、単一リクエストの制限を超えるレスポンスの継続トークンを自動的に処理します。
- 思考レベル:
インストール
最新の 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)にアップグレードします。
pip install --upgrade "google-genai>=2.30.1"
基本的なリクエスト
Python(GenerateContent)
from google import genai
from google.genai import types
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-4-argon",
contents="Design a lock-free ring buffer in Rust for multi-producer, single-consumer telemetry ingestion.",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
thinking_level="MEDIUM", # Default: "MEDIUM" (Valid: "LOW", "MEDIUM", "HIGH")
),
),
)
print(response.text)
Python(Interactions API)
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
# Turn 1: Initial request (stored server-side by default)
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)
# Turn 2: Continue the conversation using previous_interaction_id
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 application-default 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": "Provide an architectural review of this Go interface."
}
]
}
],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "MEDIUM"
}
}
}'
構造化出力
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 より大きい値に設定し、非ストリーミング リクエストの場合は 32,768 より大きい値に設定します(最大 1,048,576)。Google Gen AI SDK は、finish_reason が CONTINUATION の場合、リクエスト間で continuation_token を自動的に追跡します(自動継続を無効にするには、GenerateContentConfig で automatic_continuation=False を設定します)。また、カスタムループで 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.
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(
thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
automatic_continuation=False,
),
):
print(chunk.text, end="")
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 では、次の規則が適用されます。
思考レベル: 4 Argon は 3 つの
thinking_level値をサポートしています(thinking_budgetとMINIMALは HTTP400検証エラーを返します)。思考レベル 推奨されるワークロード HIGH(gemini-4-argon-cyber-permissiveのデフォルト)マルチファイル ソフトウェア エンジニアリング、形式証明、アーキテクチャ設計、脆弱性の検出。 MEDIUM(gemini-4-argonのデフォルト)一般的なコーディング、ツールの使用、ドキュメントの Q&A、動画の理解。 LOW分類、要約、メタデータの抽出。 入力トークンと出力トークンの統合上限と単一リクエストの出力上限:
1,048,576はモデルのトークン全体の上限であり、入力トークンと出力トークンの両方を含みます(出力には思考、関数呼び出し、最終レスポンスが含まれます)。max_output_tokensは、生成の出力トークンの上限を制御します(1,048,576から入力トークンを引いた値まで)。max_output_tokensを1,048,576より大きい値に設定すると、HTTP400エラーが返されます。- 意図しない長い補完を回避するため、デフォルトの単一リクエスト出力制限(思考 + モデル レスポンス)は 65,536 トークン(非ストリーミングの直接 HTTP リクエストの場合は 32,768 トークン)です。
長いデコード:
- ロングデコードの仕組み: ロングデコードでは、最大 1,048,576 トークンの生成を複数の
GenerateContent推論に分割します。たとえば、タスクに 256,000 個の出力トークン(思考、関数呼び出し、最終レスポンスを含む)が必要な場合、最初のストリーミング リクエストは最大 65,536 個の出力トークンを生成し、元のプロンプトのハッシュとそれまでの生成状態を含む暗号化されたcontinuation_tokenを含むfinish_reason=CONTINUATIONを出力します。元のプロンプトを含む後続のリクエストにcontinuation_tokenを含めると、continuation_tokenが出力されなくなり、finish_reason=STOPになるまで、中断したところから生成が続行されます。(Agent Studio で、出力トークンの上限を 65,536 より大きく 1,048,576 以下に設定すると、継続トークンが自動的に処理されます)。 - 長いデコードを使用するタイミング: ほとんどのリクエストは、リクエストごとの上限(65,536 トークン、非ストリーミング REST 呼び出しの場合は 32,768 トークン)内で完了します。長いデコードは、1 つのレスポンスでそれ以上の出力が必要な場合にのみ使用します。長いデコードにより、モデルに推論の余地が広がります。回答が長くなるわけではありません(推論の深さを制御するには
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 から入力トークン数を引いた数のみです。 レイテンシの影響を受けやすいリクエスト いいえ 長いデコードは数分間実行されることがあります。 - 継続オプションの選択: 2 つのオプションのいずれかを選択します。ほとんどのデベロッパーはオプション 1 を使用しています。すべてのオプションで、
gemini-4-argonとgemini-4-argon-cyber-permissiveの 1,048,576 トークンの上限に達します。
ディメンション オプション 1: Google Gen AI SDK(推奨) オプション 2: 独自のストリーミング ループ( streamGenerateContent)オプション 2: 独自の非ストリーミング ループ( generateContent)各セグメントの開始者 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。max_output_tokensを設定します。各チェックポイントまたはドロップされたストリームの後のコード コード(32,768 トークンごと) リクエストあたりのトークン数 セグメントあたり最大 65,536 ストリームあたり 65,536 個。32,768 個のトークンごとに 5,000 個のトークンごとにチェックポイント 1 リクエストあたり 32,768 リクエストあたりの時間制限 20 分 20 分 20 分 ストレージ サーバー ストレージなし(ZDR 準拠) サーバー ストレージなし(ZDR 準拠) サーバー ストレージなし(ZDR 準拠) 最適な用途 ほとんどのアプリケーション ストリーミングを行う REST 呼び出し元とカスタム ハーネス シンプルな評価ハーネス - 実装ルールと制限事項:
v1beta1API の要件(既知の問題):GenerateContent(generateContentとstreamGenerateContent)での長いデコード(continuation_token)は、v1beta1API(v1ではない)でのみサポートされています。Google Gen AI SDK は、http_optionsでapi_version='v1'が指定されていない限り、デフォルトで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 互換性レイヤでは、継続トークンを使用して長い補完を取得できません。カスタム クライアント実装については、Python と JavaScript/TypeScript の Google Gen AI SDK リファレンス実装をご覧ください。 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に追加したり、モデルに続行を求めるフォローアップ プロンプトを送信したりしないでください。- 思考のみのリクエストを続行する: リクエストが 32,768 または 65,536 トークンすべてを思考(
parts: [{"text": ""}])に使用した場合でも、finish_reasonがCONTINUATIONでcontinuation_tokenが存在する場合はループします。continuation_tokenが存在するときにfinish_reasonがMAX_TOKENSの場合、生成はリクエストされたmax_output_tokensの上限に達しています。リクエストでmax_output_tokensを引き上げてください。STOPの後にのみ、蓄積された部分をマルチターンの履歴の 1 つの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は、各リクエストの終了時にusage_metadataを返します(65,536 ストリーミング / 32,768 単項)。請求はリクエストの終了時に発生します。
- 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で区切り、ツール呼び出しの前に非構造化テキストを配置しないようにします。ツール呼び出しの前に中間状態をログに記録するには、専用の関数宣言を使用します。{ "name": "update", "description": "Update working notes before tool execution", "parameters": { "type": "OBJECT", "properties": { "previous_step": {"type": "STRING"}, "plan": {"type": "STRING"}, "next_step": {"type": "STRING"} }, "required": ["previous_step", "plan", "next_step"] } }
- 回転対称性: 各
チャット シーケンスの検証:
- 履歴ペイロードの末尾を
modelロールのターンにすることはできません。 - 事前入力済みモデルターンはサポートされていません。
- 履歴ペイロードの末尾を
3.1 Pro から 4 Argon に移行する
次の動作は gemini-3.1-pro-preview とは異なります。
- 4 Argon には、入力と出力に個別の制限はなく、入力と出力(出力には思考、関数呼び出し、最終的なレスポンスが含まれます)全体で 1,048,576 トークンの統合制限があります。単一リクエストの出力は 65,536 トークン(ストリーミング以外の直接 HTTP リクエストの場合は 32,768 トークン)に制限されます。
GenerateContentで長いデコードを使用すると、最大 1,048,576 トークンまで拡張できます(Google Gen AI SDK で自動的に処理されるか、カスタムループでcontinuation_tokenを使用します)。 thinking_budgetは、思考レベルにマッピングされる代わりに、HTTP400エラーを返します。MINIMALもエラーを返します。- 明示的なコンテキスト キャッシュ保存はサポートされていません。
- モデルが処理するすべてのトークンが課金対象となります。これには、グラウンディングを使用する場合の内部ツール システムの指示や関数宣言も含まれます。
並べて比較するには、Gemini 3.1 Pro から移行するをご覧ください。
client = genai.Client(
enterprise=True,
project="PROJECT_ID",
location="global", # Supports "global", "us", and "eu"
)
response = client.models.generate_content(
- model="gemini-3.1-pro-preview",
+ model="gemini-4-argon",
contents=prompt,
config=types.GenerateContentConfig(
- temperature=0.0,
- cached_content="projects/.../cachedContents/...", # Explicit caching unsupported
thinking_config=types.ThinkingConfig(
- thinking_budget=16384, # Returns HTTP 400 instead of mapping silently
- thinking_level="MINIMAL", # MINIMAL unsupported on Gemini 4 Argon
+ thinking_level="MEDIUM", # Valid: "LOW", "MEDIUM" (default), "HIGH"
),
),
)
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/genai >= 2.29.1(JavaScript)、または同等の最新の 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を、LOW、MEDIUM(gemini-4-argonのデフォルト)、またはHIGH(gemini-4-argon-cyber-permissiveのデフォルト)に設定されたthinking_levelに置き換えます。 - 明示的なキャッシュ保存を削除し、静的プロンプト コンテンツ(6,144 トークン以上)を自動的な暗黙的キャッシュ保存のためにフロントロードします。
- 効果がない、またはサポートされていないパラメータを削除する:
temperature、top_p、top_kを削除しました。これらは無視されます。candidate_count、frequency_penalty、presence_penaltyを削除しました。- 会話履歴から事前入力済みモデルターンを削除します。
デベロッパー向けの概要チェックリスト
既知の問題
GenerateContentでの長いデコードにはv1beta1が必要:GenerateContentAPI(generateContentとstreamGenerateContent)での長いデコード(continuation_token)は、v1beta1API(v1ではない)でのみサポートされています。http_optionsでapi_version='v1'が設定されていない限り、Google Gen AI SDK はデフォルトでv1beta1を使用します。直接 REST 呼び出しを行う場合は、v1beta1エンドポイント パスを使用します。