GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/API / SDK
API / SDK/2026-05-30上級

Gemini 3 の thought signatures を保持してマルチターン function calling を壊さない本番設計

Gemini 3 の思考モデルで function calling を組むと、2 ターン目以降に推論が浅くなる現象に当たります。原因は thought signature の欠落です。署名を保持する本番実装と検証手順をまとめました。

Gemini API191function calling3thinking7エージェント14本番運用47

プレミアム記事

個人開発で AdMob の収益異常を検知するエージェントを Gemini で組んでいたとき、奇妙な挙動に気づきました。1 ターン目は的確に「eCPM を取得して」とツールを呼ぶのに、2 ターン目以降になると急に判断が雑になり、本来 2 つ呼ぶべきツールを 1 つしか呼ばなかったり、明らかに前のターンで分かっているはずの前提を忘れたりするのです。

最初はプロンプトの問題かと思い、システム指示を何度も書き直しました。けれども効果は限定的でした。本当の原因は、Gemini 3 系の思考モデルが返してくる thought signature を、私が会話履歴に積み直すときに捨てていたことにありました。これは公式ドキュメントを丁寧に読まないと気づきにくい、けれども本番運用でのエージェント品質を大きく左右する落とし穴です。署名の正体、それを失わない contents の組み立て方、そして実測で効果を確かめる手順までを、私が実際に踏んだ順番で共有していきます。

thought signature とは何を運んでいるのか

Gemini 3 系の思考モデル(thinking を有効にしたモデル)は、応答を返すときに内部の推論プロセスを暗号化した署名を thoughtSignature というフィールドに載せて返してきます。これは人間が読める思考テキストとは別物で、私たちが復号して中身を読むことはできません。役割は、次のリクエストでモデル自身が「さっき自分はどう考えていたか」を復元するための鍵を渡すことにあります。

ポイントは、署名が function call の part に紐づいて返ってくる という点です。モデルがツールを呼ぶと決めたとき、その functionCall part には、なぜそのツールを選んだのかという思考の文脈が署名として付随します。私たちがツールを実行して結果をモデルに戻すとき、この署名付きの part を会話履歴にそのまま含めて返さないと、モデルは「なぜ自分がそのツールを呼んだのか」という文脈を失った状態で次の推論を始めてしまいます。

これが、私が体験した「2 ターン目から判断が雑になる」現象の正体でした。署名を捨てると、モデルは毎ターン記憶喪失のように一から考え直すことになり、しかも前提の一部だけが欠けた不完全な状態で再スタートするため、かえって質が落ちるのです。

なぜ SDK 利用者でも踏みやすいのか

「公式 SDK を使えば自動で処理してくれるのでは」と思うかもしれません。実際、Python や Node の SDK で chat セッションを使い、モデルが返した response.candidates[0].content をそのまま履歴に積んでいく素直な書き方をしていれば、署名は保持されます。問題は、多くの本番コードがそこまで素直ではないことです。

私のエージェントがハマったのは、function call の引数だけを抜き出して独自の中間表現に変換し、ツール実行後に「function call の名前と引数」だけを再構築して履歴に戻す設計にしていたからでした。ログを見やすくしたい、リトライ時に差し替えたい、といった実装上の都合で part を分解すると、その瞬間に署名が脱落します。署名は引数でも関数名でもなく、part に付随するメタ情報なので、自前で { functionCall: { name, args } } を組み直すと必ず失われるのです。

つまり「SDK だから安全」ではなく、「モデルが返した content オブジェクトを加工せずに履歴へ積んでいるか」が分かれ目になります。ここを意識していないと、SDK 利用者でも静かに署名を捨ててしまいます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
thought signature が欠けると 2 ターン目以降の tool 選択精度が落ちる仕組みを、リクエスト JSON の差分で具体的に把握できます
REST を直接叩く実装で署名を取りこぼさない contents 再構築コードと、SDK 任せにしたときの落とし穴を区別できます
AdMob 異常検知エージェントで署名保持の前後を比較した実測ログをもとに、無駄な再 thinking を減らすチューニング手順を持ち帰れます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-07-04
Managed Agents を並列で回すと同じリポジトリを奪い合う ― 隔離サンドボックスに効く外部リースとフェンシング
Managed Agents は実行ごとに隔離サンドボックスが立つため、複数実行が同じリポジトリやレコードに同時に触れてもローカルロックが効きません。外部リースとフェンシングトークンで単一実行を保証する実装をまとめました。
API / SDK2026-06-28
Gemini × Qdrant のハイブリッド検索が再現率を静かに落としていたとき — RRF の重みと疎ベクトルのズレを計測する運用メモ
Gemini の埋め込みと Qdrant のハイブリッド検索を本番で回すと、ダッシュボードは緑のまま再現率だけが静かに落ちます。RRF の重み・疎ベクトルのズレ・ペイロードインデックスの欠落を計測で捕まえ、品質バジェットで守る運用メモです。
API / SDK2026-06-26
Gemini API の月額上限に当てた瞬間、有料ユーザーまで止まる — Project Spend Caps の影響範囲をプロジェクト分割で閉じ込める
Project Spend Caps はプロジェクト全体を一度に止めます。無料ユーザーの暴走が有料ユーザーを巻き込まないよう、上限の影響範囲をティア別プロジェクトで分離し、約10分の遅延を埋めるソフト予算ゲートを実装する設計メモです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →