すべての記事
generate_images から generate_content へ書き換えるとき、引数は素直に移りません
8月17日の Imagen 停止に向けて generate_images を generate_content へ書き換えるとき、17個の引数のうちそのまま移せるのは5個でした。SDK を実際に読んで確かめた対応表と、呼び出し側を止めないための互換レイヤー、API キーなしで形だけ検証する方法をまとめます。
打ち切りは失敗の合図ではありませんでした — ブロッキング挙動を伴う関数呼び出しの設計
呼び出しが返るまで待つブロッキング型のツールをエージェントに持ち込むと、並列化と打ち切りの常識が反転します。サンドボックスの最小ハーネスで実測した数値をもとに、再試行を観測へ振り替える設計と unknown を握りつぶさない扱い方をまとめました。
ストリーミング応答の日本語が静かに欠ける — バイト境界とイベント境界を実測で切り分ける
ストリーミング表示で日本語だけが静かに欠ける現象を、疑似 SSE サーバで実測して切り分けました。UTF-8 のバイト境界とイベント境界という二つの層の壊れ方、英語テストでは検出できない理由、CI に置く意地悪なサーバまで、再現手順つきで整理しています。
停止済みモデルの再試行は、成功レイテンシには出ませんでした
画像生成モデルの停止日が近づいています。停止済みモデルを呼んだときリトライ層が何をするのかを、モックサーバーで再現して計測しました。壊れ方は所要時間と待ち行列に出て、成功レイテンシには出ませんでした。
Memory profiles の更新ポリシーを測って選ぶ — 確定値を守るガードが精度を16ポイント下げた記録
Memory Bank の Memory profiles が GA になり、構造化された記憶を後段へ渡せるようになりました。更新ポリシーを3種類つくって同条件で比較したところ、直感的に正しく見えた防御が精度を下げていました。計測コード一式と、フィールド別TTLへ切り替えるまでの記録です。
environment hooks に置いた門番の実測 — 判定は46マイクロ秒、起動は23ミリ秒
Managed Agents の environment hooks に破壊的コマンドのガードを置くまでの記録です。正規表現の denylist が20件中9件を素通りさせた実測から、argv 分解による検出率100パーセントまでの3段階と、判定より500倍重い起動コストの内訳をまとめました。
temperature 非推奨で先に困ったのは、決定性ではなく多様性の側でした
temperature・top_p・top_k の非推奨化で影響が出たのは決定性ではなく多様性を作る側でした。呼び出し箇所の数え方、多様性を入力層へ移す設計、実効多様度の測り方を実測値とともに残します。
二段構成の採算を決めていたのは昇格率ではなく、昇格した集合の出力長でした
Flash-Lite を前段に置き、迷った分だけ 3.6 Flash に昇格させる二段構成の採算計算を解き直した記録です。昇格率だけで見積もると外れる理由——昇格した集合の出力長が平均より長い——を式に組み込み、損益分岐点がどう動くかを実測で確かめました。
出力トークンが17%減ると聞いて、総額はいくら下がるのかを分解した
出力単価16.67%減と出力トークン17%減が重なったとき、総額はいくら下がるのか。Gemini 3.6 Flash への切り替えを単価・数量・交差項に厳密分解し、エージェントループでは削減率がむしろ下がった実行結果と、請求との突き合わせ方をまとめました。
消えないプロンプト資産をたたむ — 静的参照だけでは見えない稼働経路を炙り出す退役台帳
一本化したはずの旧プロンプトがまだ毎日呼ばれている——そんな見えない稼働経路を炙り出す退役台帳の設計です。静的参照、フラグ既定値、観測窓、モデル停止日、キャッシュ実効率の5つを突き合わせる判定基準と、実運用で得た設計の勘所を実行結果とともにまとめました。
AI Studio の開発者ログを本番の正本にしない — Interactions API を二層で観測する設計
AI Studio に追加された Interactions API の開発者ログを、速報レンズと正本ログに役割分担する設計です。自前の構造化ログと突合コード、100,000 件で測った格納先の容量比較、機能別のコスト按分まで、個人開発の運用視点でまとめました。
会話状態をサーバーに預けるべきか — previous_interaction_id と手元での履歴刈り込みの分岐設計
Interactions API の previous_interaction_id で会話状態をサーバーに預けると、毎回履歴を送らずに済みます。ところが途中で入った巨大なツール出力を後から刈り込めず、以降のターンが重量を引きずる落とし穴があります。サーバー側状態と手元での刈り込みを状況で使い分ける分岐設計を、動くPythonの薄いラッパーとともに整理します。