はじめに
Google AI の changelog に「Gemini 3.5 Flash deprecation」が追加され、gemini-3.5-flash が非推奨になりました。後継は gemini-3.6-flash です。
gemini-3.5-flash へのリクエストは、すべて gemini-3.6-flash へ自動でルーティングされます。そのため、既存コードがすぐにエラーで止まることはありません。
ただし、実際に応答するモデルが変わります。コードを1行も変えていなくても、出力内容・品質・挙動が変わる可能性があります。「動いているから放置」が一番危ないタイプの変更です。
📌 影響を受ける人
- Gemini API でモデル文字列に
gemini-3.5-flashを直書きしている人- 出力フォーマットや文体に依存した後処理(正規表現、JSON パースなど)を組んでいる人
- プロンプトの評価結果やベンチマークを固定して運用している人
- CLAUDE.md や社内ドキュメントにモデル一覧を記載している人
変更の全体像
変更内容
| 項目 | 内容 |
|---|---|
| 対象モデル | gemini-3.5-flash |
| 状態 | 非推奨(deprecated) |
| 後継モデル | gemini-3.6-flash |
| 挙動 |
gemini-3.5-flash へのリクエストは gemini-3.6-flash へ自動ルーティング |
| 推奨アクション | モデル文字列を gemini-3.6-flash(または gemini-3.8-flash)に変更し、Gemini 3.6 Flash ガイドを確認 |
| 対象 API | Gemini API |
何が「破壊的」なのか
⚠️ Breaking Change
エラーにはならないものの、応答モデルが暗黙に入れ替わるため、出力内容・品質・挙動が変わる可能性があります。API が落ちる変更よりも、気づきにくいのが厄介な点です。
今回の情報で分かっていないこと
changelog の差分には、次の情報が記載されていません。
- 自動ルーティングの開始日
-
gemini-3.5-flashエンドポイントの完全停止日
つまり「いつまで猶予があるか」が不明です。期限が見えない以上、早めに明示的な移行を済ませておくのが安全です。
影響と対応
1. 利用箇所を洗い出す
まずリポジトリ内の参照を検索します。
grep -rn "gemini-3.5-flash" .
環境変数、設定ファイル、IaC、ノートブックも対象に含めてください。
2. 回帰テストを行う
自動ルーティングによって、すでに gemini-3.6-flash の応答を受けている可能性があります。次の観点で確認しましょう。
- JSON など構造化出力のパースが壊れていないか
- 文体・長さ・言語など、プロンプト由来の期待が保たれているか
- レイテンシやトークン消費に変化がないか
- 評価セットのスコアが劣化していないか
3. モデル文字列を明示的に更新する
Google は gemini-3.6-flash(または gemini-3.8-flash)への変更を推奨しています。迷う場合は、まず挙動が実際のルーティング先と一致する gemini-3.6-flash が移行の足がかりとして扱いやすいでしょう。
💡 Tips
モデル名はコードに直書きせず、環境変数や設定ファイルに切り出しておくと、次回の非推奨対応が1か所の修正で済みます。
4. ドキュメントを更新する
CLAUDE.md などに外部 LLM モデル一覧を持っている場合は、次の内容を反映します。
-
gemini-3.5-flashは非推奨と明記 - 推奨モデル文字列は
gemini-3.6-flash(またはgemini-3.8-flash) -
gemini-3.5-flashへのリクエストはgemini-3.6-flashに自動ルーティングされ、挙動が変わる可能性がある
コード例
Before
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.5-flash", # 非推奨
contents="次の文章を3行で要約してください: ...",
)
print(response.text)
After
import os
from google import genai
client = genai.Client()
# モデル名は設定から注入する(次回の移行を楽にする)
MODEL = os.getenv("GEMINI_MODEL", "gemini-3.6-flash")
response = client.models.generate_content(
model=MODEL,
contents="次の文章を3行で要約してください: ...",
)
print(response.text)
簡易な回帰比較の例
import os
from google import genai
client = genai.Client()
prompts = ["...評価用プロンプト1...", "...評価用プロンプト2..."]
for model in ["gemini-3.6-flash", "gemini-3.8-flash"]:
for p in prompts:
r = client.models.generate_content(model=model, contents=p)
print(f"[{model}] {r.text[:200]}")
候補モデル同士の出力を並べて、形式や品質の差を確認できます。
影響度の目安
| 項目 | 評価 |
|---|---|
| 影響スコア | 40(🟡 要チェック) |
| 緊急度 | 即時停止はないが、挙動変化のリスクあり |
| 要対応 | はい(action_required: true) |
まとめ
-
gemini-3.5-flashは非推奨。後継はgemini-3.6-flash - リクエストは自動で
gemini-3.6-flashにルーティングされ、すぐには止まらない - ただし応答モデルが変わるため、出力・品質・挙動が変わる可能性がある
- 自動ルーティングの開始日や完全停止日は、今回の情報からは不明
- モデル文字列を
gemini-3.6-flash(またはgemini-3.8-flash)に更新し、回帰テストと Gemini 3.6 Flash ガイドの確認を行う - モデル名は設定に切り出し、ドキュメントの更新も忘れずに
「止まらない非推奨」こそ、静かに挙動が変わります。今のうちに明示的な移行を済ませておきましょう。