GEMINI LABEN
FLASH36 — 7月21日公開のGemini 3.6 Flashは出力トークンが約17%少なく、3.5 Flashより低価格です。コード編集の余計な書き換えや実行ループも減っていますCYBER — Gemini 3.5 Flash Cyberは脆弱性の発見・検証・修正パッチ作成に絞った軽量モデルですCOMPUTER — Computer UseがGemini APIとGemini Enterpriseの組み込みクライアントサイドツールとして利用できるようになりましたSPARK — Gemini Sparkの日本語提供が7月16日に始まりました。Google AI Ultraプランのユーザーから順次展開されていますPARALLEL — Sparkが複数の参照ソースを並行処理できるようになり、Docs・Sheets・Slidesでの画像追加や編集を代行できる範囲も広がりましたSTUDENT — 日本を含む4か国で18歳以上の学生向け無料アップグレードが提供され、Google AI ProとNotebookLM、2TBのストレージが使えますFLASH36 — 7月21日公開のGemini 3.6 Flashは出力トークンが約17%少なく、3.5 Flashより低価格です。コード編集の余計な書き換えや実行ループも減っていますCYBER — Gemini 3.5 Flash Cyberは脆弱性の発見・検証・修正パッチ作成に絞った軽量モデルですCOMPUTER — Computer UseがGemini APIとGemini Enterpriseの組み込みクライアントサイドツールとして利用できるようになりましたSPARK — Gemini Sparkの日本語提供が7月16日に始まりました。Google AI Ultraプランのユーザーから順次展開されていますPARALLEL — Sparkが複数の参照ソースを並行処理できるようになり、Docs・Sheets・Slidesでの画像追加や編集を代行できる範囲も広がりましたSTUDENT — 日本を含む4か国で18歳以上の学生向け無料アップグレードが提供され、Google AI ProとNotebookLM、2TBのストレージが使えます
記事一覧/API / SDK
API / SDK/2026-07-23上級

会話状態をサーバーに預けるべきか — previous_interaction_id と手元での履歴刈り込みの分岐設計

Interactions API の previous_interaction_id で会話状態をサーバーに預けると、毎回履歴を送らずに済みます。ところが途中で入った巨大なツール出力を後から刈り込めず、以降のターンが重量を引きずる落とし穴があります。サーバー側状態と手元での刈り込みを状況で使い分ける分岐設計を、動くPythonの薄いラッパーとともに整理します。

gemini-api280interactions-api4architecture11cost-optimization22conversation-stateautomation35

プレミアム記事

個人開発でチャット形式の問い合わせ補助を自動運用に組み込んで数週間が経った頃、月次のコスト内訳を眺めていて手が止まりました。全体は想定内なのに、一つの会話 ID だけが突出して重い。中身をたどると、ある一回のターンで差し込んだ製品カタログの抜粋が約 40KB あり、そのあと交わした十数往復のすべてが、その 40KB を律儀に引きずっていたのです。

previous_interaction_id に切り替えたのは「毎回履歴を送らなくて済むから安くなる」と考えたからでした。実際、送信ペイロードは小さくなります。けれど請求は減りませんでした。むしろ、手元で履歴を組み立てていた頃なら一行で捨てられたはずの重い一塊が、サーバーに預けたことで捨てられなくなっていた。

この記事は、その分岐点の設計についての記録です。会話状態をサーバーに預けるべきか、手元に置いて刈り込めるようにしておくべきか。Interactions API の previous_interaction_id が省いてくれるものと、代わりに預けてしまうものを切り分け、状況で使い分けるための薄いラッパーを、動くコードとともに残しておきます。

previous_interaction_id が省くもの、預けるもの

Interactions API では、直前の応答が返す interaction の ID を次のリクエストの previous_interaction_id に渡すと、それまでの会話文脈をサーバー側が保持したまま続きを処理してくれます。手元で messages の配列を積み上げて毎回丸ごと送り直す、あの反復から解放される仕組みです。

省けるものは明快です。往復のたびに肥大していく履歴配列の送信、その組み立てとトリミングのロジック、そして「どこまで送ったか」を追う状態管理。single-turn の理解から状態を持つ会話まで、同じ入り口の下で扱えるようになります。

一方で、静かに預けてしまうものがあります。それは「文脈の編集権」です。手元に履歴を持っていれば、三ターン前のツール出力が不要になった瞬間に、その要素だけを配列から抜いて、あるいは短い要約に差し替えて次を送れます。ところが会話状態がサーバー側の連鎖として保持されていると、いったん連鎖に入った重い一塊を、あとから外科的に抜く手立てがありません。連鎖を継ぐ限り、それは文脈として生き続けます。

省けるのは「送信の手間」、預けてしまうのは「刈り込む自由」。この非対称が、冒頭のコスト膨張の正体でした。

直感に反した費用の増え方

サーバー側に状態を預けると通信が減る。だから安くなる。この推論のどこがずれていたのかを、トークンの動きで具体的に追ってみます。

課金されるのは通信量ではなく、各ターンでモデルが読むトークンの総量です。会話状態をサーバーが保持していても、モデルは応答生成のたびに保持された文脈を入力トークンとして読み直します。つまり「送らない」ことと「読まれない」ことは別です。ここを取り違えていました。

数字で置くと分かりやすくなります。あるターンで約 40KB、日本語混じりでおよそ 18,000 トークン相当のカタログ抜粋を差し込んだとします。その後 12 往復続けたなら、サーバー側連鎖ではこの 18,000 トークンが基本的に毎ターンの入力に乗り続けます。ごく粗い見積もりでも 18,000 × 12 で 21 万トークン超が、最初の一回で用が済んだはずの一塊のために積み上がる計算です。

設計重いツール出力の扱い以降12往復での引きずり
サーバー側連鎖(previous_interaction_id)連鎖から外せない約18,000トークン × 12 が入力に残存
手元履歴+刈り込み該当ターンだけ要約に差し替え可能要約後 約400トークン × 12 に圧縮

手元で履歴を持っていれば、カタログ抜粋を「該当製品は型番 X・在庫あり」程度の一行要約に差し替え、以降のターンからは 400 トークン前後で済ませられます。要約後のおよそ400トークンに対し、引きずり続ければおよそ18,000トークン。同じ会話の同じ結論に至るのに、入力がおよそ45倍に膨らむ計算です。プレビュー段階の軽い会話では気づけず、実運用で長い会話が混ざり始めてから初めて表面化する種類のずれでした。

直感に反していたのは、「軽くするために預けた選択が、軽くするための手段を同時に手放していた」という点です。本番運用で長い会話が増えるほど効いてくる落とし穴で、通信量ではなく読まれるトークン量を基準に設計で回避するほかありません。

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

この記事の続きを読む

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

この記事で得られること
previous_interaction_id にすると「安くなるはず」が逆に高くつく、肥大化ターンの引きずり問題を実際のトークン計算で可視化
happy path はサーバー側状態、肥大化を検知したら手元で要約に差し替えて連鎖を切り直すハイブリッドの薄いラッパー(動くPython付き)
会話状態を預けたときに崩れる per-user のトークン帰属を、開発者ログと自前カウンタの二重帳簿で取り戻す運用手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API / SDK2026-06-30
散らばった呼び出し口を一つに畳む — Interactions API を自動運用の正面玄関にする移行設計
Interactions API の一般提供で、Gemini の呼び出しが一つの入り口に寄せられるようになりました。generateContent・Batch・自前エージェントループに散らばった呼び出し口を、壊さずに正面玄関へ畳んでいく移行設計を、薄いアダプタ層の実装とともに整理します。
API / SDK2026-07-02
Gemma 4 ローカル推論と Gemini API の使い分けで月額¥32,000を¥9,000台にした — ハイブリッドルーターの本番設計
月額¥32,000のGemini APIコストを¥9,000台まで下げたハイブリッド推論構成の記録です。ルーティング設計・Python実装・本番の落とし穴に加え、2026年7月のGemma 4 API提供開始を踏まえた構成見直しの指針もまとめました。
API / SDK2026-06-21
Gemini API の Managed Agents に自前のエージェントループを移すべきか — 移す処理と残す処理を分ける3つの質問
Gemini API の Managed Agents が公開プレビューになり、自前のエージェントループとの使い分けが現実の検討事項になりました。実行環境・状態の所有・失敗時の回収という3つの質問で、移す処理と残す処理を分ける考え方を整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →