Gemini 4 ArgonをOpenCodeで使う:設定方法と現在の制限
OpenCodeのネイティブGoogleプロバイダーでGemini 4 Argonを設定。検証バージョン、署名付き履歴の扱い、継続生成と中断時に残る制限を解説します。
Markdown で読むGemini 4 Argonは、OpenCodeのネイティブGoogleプロバイダーで設定できます。確認したいのは、最初の回答を受け取った後の動作です。クライアントは署名付きパートを保持し、ツールの結果を正しく返し、継続生成の応答を認識できるでしょうか。OpenCode v1.19.0をオフラインで調べたところ、テキストとツールメッセージは処理できましたが、長い出力の継続生成とストリーム中断時の処理には不足がありました。
このガイドでは初期設定と、今回の検証で確認できた範囲を示します。SeedRouterに接続する完全なコーディングエージェントの連携を、実際のAPI呼び出しで検証したものではありません。各ターンで自分の操作により1回だけリクエストを送る、より小さなクライアントが必要な場合は、Pythonの会話チュートリアルをご覧ください。
OpenCodeでGemini 4 Argonを設定する
opencode --versionでインストール済みのバージョンを確認してください。以下の結果は、2026年10月14日に検証した公開済みビルドv1.19.0に対するものです。新しいビルドは別途検証が必要です。開発ブランチに機能があっても、インストール済みのリリースが対応している証拠にはなりません。[1]
最初の確認には空のプロジェクトディレクトリを作成し、そこへOpenCodeの設定ファイルをダウンロードしてください。接続設定の部分は次のとおりです。
{
"provider": {
"google": {
"npm": "@ai-sdk/google",
"options": {
"apiKey": "{env:SEEDROUTER_API_KEY}",
"baseURL": "https://api.seedrouter.ai/v1beta"
},
"models": {
"gemini-4-argon": {
"name": "Gemini 4 Argon",
"reasoning": true,
"tool_call": true,
"limit": { "context": 1048576, "output": 4096 },
"options": {
"thinkingConfig": { "thinkingLevel": "low", "includeThoughts": true }
}
}
}
}
}
}OpenCodeは、設定ファイル内で環境変数の値を展開する機能に対応しています。[2] シェルでSEEDROUTER_API_KEYを設定し、プロジェクトにはコミットしないでください。ダウンロードしたファイルはgoogle/gemini-4-argonを選択し、共有と自動更新を無効にして、readツールだけを許可します。既存のリポジトリで使う前に、これらの権限を確認してください。reasoningとtool_callのフラグが表すのはクライアントの動作です。特定のアカウントやサービスがすべての操作に対応することを証明するものではありません。
出力値の4096は、この設定で最初の確認用に意図的に選んだ予算であり、Argonの公式上限ではありません。思考もこの予算を消費します。コンテキスト、出力、継続生成のルールはAPIリファレンスをご覧ください。
短いリクエストを1件送る
設定と現在の料金を確認してから、次を実行します。
OPENCODE_CONFIG="$PWD/gemini-4-argon-opencode.json" \
OPENCODE_DISABLE_MODELS_FETCH=1 \
OPENCODE_DISABLE_AUTOCOMPACT=1 \
opencode run --model google/gemini-4-argon \
"Explain a mutex in one sentence. Do not use tools."自分のキーで実行すると、実際のモデルリクエストになります。OpenCodeは失敗時に再試行したり、エージェントの実行中に追加のリクエストを送ったりする可能性があります。このコマンドで支出を1回の呼び出し分に制限できるとは限りません。回答が途中で終わったり、リクエストが繰り返されたりしたら、プロセスを停止してください。厳密に手動制御する場合は、Pythonの例を使ってください。
ネイティブのリクエストパスの末尾はgemini-4-argon:streamGenerateContent?alt=sseになるはずです。検証したビルドでは、Googleプロバイダーは認証情報をx-goog-api-keyで送信しました。これは一般的なAPIチュートリアルのBearerヘッダーを使うcURL例とは異なります。汎用のOpenAIプロバイダーを選んでも、同じネイティブリクエストにはなりません。
オフライン検証で確認できたこと
検証には公開版CLI、ローカルの模擬API、ダミーの認証情報を使いました。8つのシナリオで、ループバック先へ17回のリクエストを送信しました。モデルによる回答の生成は行っておらず、報告されたトークン値も人工的に設定したものです。これらの観察結果が示すのはクライアントの動作であり、モデルの品質や実際の課金ではありません。
| シナリオ | v1.19.0で観察された動作 |
|---|---|
| ネイティブのテキストストリーム | 別々のテキストイベントを結合して、期待どおりの回答を構成 |
| 会話の2ターン目 | 検証に使った思考署名とテキスト署名をモデルのパート内に保持 |
| 読み取りツールの呼び出しと結果の返却 | 一時的なテスト用ファイルを読み、その内容をfunctionResponseで返却 |
MAX_TOKENS | 長さの上限による停止を報告し、そのテストでは追加リクエストなし |
| HTTP 400 | そのテストでは再試行せず、エラーで終了 |
| HTTP 429 | 次の模擬応答が成功する条件で、1回再試行 |
この検証ではthinkingConfigが送信されたことを確認しています。実際のサービスがその設定に従ったことまでは証明できません。同様に、合成した署名を履歴経由で渡せても、実際の署名が後続リクエストで受け入れられる証拠にはなりません。
長い出力で追加の確認が必要な理由
ArgonのCONTINUATION応答では、元のリクエストと最新のトップレベルのcontinuationTokenが必要です。その生成を再開するときは、部分的な出力を通常の会話履歴に追加してはいけません。[3]
今回のテストでは、OpenCode v1.19.0はCONTINUATIONを未認識の値として扱いました。次のリクエストにはトークンが含まれず、部分的な回答が履歴に追加されました。終端イベントがないまま部分的な出力でストリームが終了した場合も、クライアントは通常のリクエストを追加で送信しました。模擬サービスは6回の呼び出し後にこのシナリオを停止しました。6回がクライアントの再試行上限と確認されたわけではありません。
したがって、この設定はArgonの長い出力の継続生成に対する検証済みの解決策ではありません。短い回答に成功しても、これらのケースが解決したことにはなりません。長時間のコーディングセッションで利用する前に、使用予定のクライアントと同じバージョンで関連する確認を繰り返してください。
OpenCodeの設定についての質問
実際のツール利用と課金も検証していますか?
いいえ。SeedRouterの基本的なテキストストリーミングには、別途ローカル環境でのエンドツーエンド検証に合格した結果があります。ただし、このOpenCodeの検証では模擬応答を使いました。実際のツール選択、署名、メディア、アカウント権限、課金については、個別の確認が必要です。
OpenAI互換の設定を代わりに使えますか?
それは別のプロトコルであり、互換性の範囲も異なります。このガイドで確認しているのは、Geminiネイティブのコンテンツと署名です。Googleの長い出力に関するドキュメントでは、この機能の対象からOpenAI互換エンドポイントを除外しています。[3]
コンテキストの自動圧縮を無効にすると、再試行も止まりますか?
いいえ。圧縮とリクエストの再試行は別の動作です。例にある環境変数のオプションで、リクエスト数や費用に厳密な上限を設けられるわけではありません。
次に検証する項目を決める
OpenCodeでGemini 4 Argonを使う際は、短いテキストのやり取りから始め、作業に必要なツールと履歴の動作を個別に検証してください。継続生成とストリームの中断は、それぞれ別の受け入れテストとして扱います。クライアントの設定とあわせてモデルページとネイティブAPIリファレンスを参照できるようにしておくと、プロトコルの詳細と現在の料金を確認しやすくなります。
出典
[1] OpenCode v1.19.0リリースとプロバイダーの実装。
[2] OpenCodeの設定:環境変数。



