changelog の10月8日の項目を読み返していて、手が止まりました。deep-research-pro-preview-12-2025 が非推奨になり、2026年10月23日に停止する、という一文です。
個人開発では、API を呼ぶ小さなスクリプトが、アプリ本体とは別の場所にいくつも散らばりがちです。モデル名やエージェント名を文字列で直書きしたものほど、半年後には書いた場所を思い出せません。期日まで10日、書き換える作業そのものより、「どこを書き換えるか」を数える作業のほうが先にあるのだと気づきました。
最初にお伝えしたいのは、差し替えの本体は agent の1行だということです。手間がかかるのは、その1行が散らばった場所を取りこぼさないことのほうです。
公式が示している停止と移行先
changelog(2026年10月8日付)の記載を、そのまま整理します。
| 項目 | 内容 |
|---|---|
| 停止するエージェント | deep-research-pro-preview-12-2025(2026年10月23日に停止) |
| 移行先 1 | deep-research-preview-04-2026 — 速さと効率を重視し、クライアントの画面へ流して返す使い方に向く |
| 移行先 2 | deep-research-max-preview-04-2026 — 網羅性を最大にし、自動での情報収集と統合に向く |
| 変更箇所 | interactions.create の agent パラメータ |
Deep Research のドキュメントには、費用の目安として標準版が1回あたり約1〜3ドル、Max 版が約3〜7ドルと書かれています。ただしこれはプレビュー段階の見積もりで、変わりうるとも添えられています。私は自分で両方を回して確かめたわけではないので、数字は公式の記載をそのまま写したものとして読んでください。
旧エージェント名の使用箇所を洗い出す
直書きは、コードだけにあるとは限りません。.env、JSON の設定、README に貼ったサンプル、Apps Script のメモ書きにも残ります。そこで、拡張子を絞って全体を走査し、行番号つきで出す小さなスクリプトを書きました。
#!/usr/bin/env python3
"""旧 Deep Research エージェント名の使用箇所を洗い出す。--apply で置き換える。"""
import argparse, pathlib, sys
OLD = "deep-research-pro-preview-12-2025"
SKIP_DIRS = {".git", "node_modules", ".venv", "__pycache__", ".next"}
EXTS = {".py", ".ts", ".js", ".mjs", ".json", ".yaml", ".yml", ".toml", ".sh", ".env", ".md", ".gs", ".txt"}
def walk(root):
for p in root.rglob("*"):
if any(part in SKIP_DIRS for part in p.parts):
continue
if p.is_file() and (p.suffix in EXTS or p.name.startswith(".env")):
yield p
def main():
ap = argparse.ArgumentParser()
ap.add_argument("root")
ap.add_argument("--apply", metavar="NEW", help="置き換え先のエージェント名")
a = ap.parse_args()
hits = 0
for p in walk(pathlib.Path(a.root)):
try:
text = p.read_text(encoding="utf-8")
except (UnicodeDecodeError, OSError):
continue
if OLD not in text:
continue
for n, line in enumerate(text.splitlines(), 1):
if OLD in line:
hits += 1
print(f"{p}:{n}: {line.strip()}")
if a.apply:
p.write_text(text.replace(OLD, a.apply), encoding="utf-8")
print(f"-- {hits} 箇所", file=sys.stderr)
return 1 if hits and not a.apply else 0
if __name__ == "__main__":
sys.exit(main())使い方は2段階です。まず引数なしで走らせて一覧を目で確かめ、そのあとに --apply で置き換えます。見つかると終了コード 1、なければ 0 を返すので、CI の最後に置いて取りこぼしを止める使い方もできます。
動作は、ダミーのプロジェクトで確かめました。.py・.env・入れ子の cfg.json に旧名を1つずつ置き、node_modules の中にも1つ置いたところ、検出は3箇所で、node_modules は読み飛ばされました。--apply のあとに再走査すると 0 箇所で、.env の値も新しい名前に変わっていました。
一方、Deep Research の API そのものは、この記事を書いた時点で実際には呼んでいません。差し替え後の応答は、必ずご自身の環境で確かめてください。
標準版と Max 版をどう選ぶか
置き換え先は2つあるので、機械的に全部を同じ名前へ寄せるのはおすすめしません。ドキュメントの説明をもとにした、私なりの線引きは次のとおりです。
| 呼び出しの性格 | 寄せる先 | 理由 |
|---|---|---|
| 画面に進捗を流しながら返す | 標準版 | 公式が「クライアント画面へ流す用途」と位置づけている |
| 夜間に走らせて、翌朝レポートを読む | Max 版 | 待ち時間より網羅性を優先できる |
| 用途がまだ決まっていない古い試作 | 標準版 | 1回あたりの目安費用が低い |
「Max にすれば安心」と考えるのは早計です。費用の目安が標準版の2倍以上になる以上、まず標準版へ寄せ、足りなかった呼び出しだけを Max に上げるほうが、請求を読んだときの驚きが小さくなります。
差し替え後に確かめる4点
新しいエージェントでの呼び出しは、ドキュメントのサンプルに沿うと次の形になります。
import time
from google import genai
client = genai.Client()
interaction = client.interactions.create(
agent="deep-research-preview-04-2026", # 差し替えるのはここ
input="調べたい内容をここに書く",
background=True, # 必須。調査は数分かかる
agent_config={
"type": "deep-research",
"thinking_summaries": "auto", # 既定は none。進捗を見たいなら auto
"collaborative_planning": False,
},
)
while True:
interaction = client.interactions.get(interaction.id)
if interaction.status == "completed":
print(interaction.steps[-1].content[0].text)
break
if interaction.status == "failed":
print("失敗:", interaction.error)
break
time.sleep(10)確かめる点は4つです。
background=Trueとstore=Trueの組み合わせ。 ドキュメントには、バックグラウンド実行にはstore=Trueが要ると明記されています。旧コードで保存を切っていた場合は、ここで弾かれる可能性があります。- 構造化出力に頼っていないか。 このエージェントは構造化出力に対応しないと書かれています。JSON スキーマで受け取っていた処理があれば、プロンプトで節立てを指定する形に直す必要があります。
- 自作のツール呼び出しを渡していないか。 カスタムの関数呼び出しは非対応で、リモートの MCP サーバーは使える、という説明です。
- 待ち時間の想定。 最長60分、多くは20分以内とあります。ストリーミングは
stream=Trueとbackground=Trueの両方が必要で、600秒の接続切れにも備える、と書かれています。ポーリングの間隔とタイムアウトを見直しておくと安心です。
期日を越えた場合に起きること
停止後の挙動について、公式の記載は私には確認できませんでした。おそらく旧名での呼び出しはエラーを返すのだと思いますが、それは推測にとどまります。だからこそ、期日の前に1度、新しい名前で通しておくことをおすすめします。
止まる日の前に、自分の手で「通る」ところまで見届けます。 差し替えは1行でも、確認だけは省かないようにしています。
まずは今夜、手元のプロジェクトで引数なしのスキャンを1度走らせて、出てきた行数を数えるところから始めていただければと思います。