◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/開発ツール
⟐ 開発ツール/2026-07-16上級

生成ログを丸ごと残すのをやめました — 3層の保持設計とプロンプト指紋で追跡性だけを残す

Gemini API のリクエストとレスポンスを丸ごと保存する運用をやめ、3層の保持設計とプロンプト指紋に切り替えた記録です。本文を消しても原因を辿れる最小限のログとは何か、成功ログを3%に絞った理由、切り替え後3週間の実感まで書いています。

Gemini API248ログ設計データ保持運用14Firestore

✦ プレミアム記事

深夜の自動処理が同じカテゴリばかり返してくるようになり、原因を探そうとログを開きました。

3ヶ月前のレコードまで遡れました。リクエスト本文も、レスポンス本文も、そっくり残っていました。便利です。便利すぎました。

そこにはアプリの利用者が打ち込んだ文章が、そのままの形で並んでいました。障害調査のために残したはずのものが、いつのまにか「消す理由を誰も検討していないデータ」になっていた。画面を見ながら、少し手が止まりました。

ストレージの請求額の話ではありません。私が個人で回している処理に、他人の言葉を無期限に置いておく理由があるのか、という話です。

私自身、消す設計を一度も書いていませんでした。書かなければ残る。ログとは、そういうものでした。

全部残す設計は、何を抱えていたのか

当時のログは素朴でした。Gemini API を呼ぶラッパーの中で、リクエストとレスポンスを丸ごと JSON にして Firestore へ書く。それだけです。

3ヶ月動かした結果が次の通りでした。壁紙分類・記事メタデータ生成・レビュー返信の下書きを合わせた、個人開発規模の数字です。

項目実測
レコード数約 41,000 件(3ヶ月)
1件あたり平均サイズ約 11 KB(本文込み)
合計約 450 MB
実際に人が開いたレコード62 件

41,000 件を保存して、開いたのは 62 件。0.15% です。

しかも開いた 62 件のうち、本文を読む必要が本当にあったのは 20 件ほどでした。残りは「どのモデルで」「いつ」「どれくらいのトークンで」「どう終了したか」を見れば足りていました。

つまり本文は、調査の主役ではなかった。主役は文脈のほうでした。

原因を辿るのに、最小限どこまで要るのか

先に「捨てた場合に何が困るか」を書き出しました。実際に過去に起きた調査だけを対象にしています。

  1. 出力の傾向が変わった → いつから変わったか、その前後でモデルまたはプロンプトが変わったか
  2. コストが跳ねた → どの処理が、どのトークン内訳で膨らんだか
  3. 特定の入力で必ず失敗する → その入力の形(長さ・言語・添付の有無)と finishReason
  4. 出力が途中で切れる → maxOutputTokens と実際の出力トークン

4つとも、本文そのものを必要としていませんでした。必要なのは「そのとき何を投げたかを一意に識別できること」でした。

同じ入力を投げていたのか、違う入力だったのか。それさえ分かれば、あとは条件を再現して手元で試せます。

ここから設計が決まりました。本文を消す代わりに、本文の同一性だけを残す。

✦

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

この記事の続きを読む

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

この記事で得られること
✦本文を残さずに原因を辿るための「プロンプト指紋」の作り方と、指紋に何を含めて何を含めないかの線引き
✦Tier 0/1/2 の保持階層と Firestore TTL ポリシーの実装。保存量を約 92% 減らしても調査可能率を保った実測
✦失敗100%・成功3%の層別サンプリングと、指紋だけでモデル入れ替えを特定できた実例
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⟐ 開発ツール2026-08-28
1日2回のはずの分類バッチが1回しか動かない — 成果物から実行回数を復元する
定期実行のうち片方の枠だけが不発火し、失敗ログが一件も出ないまま処理量が半分になっていた運用の記録です。成果物と未処理残高から実行回数を復元し、起きなかった回を名指しする手順を動くコードでまとめます。
⟐ 開発ツール2026-08-25
AI Studio でログを止めると、Interactions API の会話履歴も止まります
Gemini API のログが AI Studio に一件も出ないとき、原因の多くは API ごとに逆になっている store の既定値です。設定トグルが会話履歴まで止めてしまう副作用と、呼び出し側で store を明示して事故を防ぐ書き方をまとめます。
⟐ 開発ツール2026-09-10
浮世絵カタログの表記ゆれ照合を、正規化と候補列挙の二層で組む手順
同じ絵師名が三通りに散らばったカタログを揃えるとき、Gemini に同一判定をさせると世代違いが混ざります。正規化を先に置き、モデルには候補の列挙だけを頼む二層構成を、動くコードと費用の見積もりつきでお伝えします。