GEMINI LABEN
API — Event-driven WebhooksでBatch APIや長時間処理の完了を通知受信。ポーリングが不要になりますSEARCH — File Searchがgemini-embedding-2に対応し、画像もネイティブに埋め込み・検索できますSECURITY — 6/19以降、未制限APIキーからのリクエストが遮断されました。キー制限の点検をMODEL — Gemini 3.5 Flashが一般提供。gemini-flash-latestの本体になりましたAGENT — Managed AgentsがGemini APIで公開プレビュー。隔離サンドボックスで自律エージェントを実行できますDEPRECATED — 画像プレビュー2モデルが6/25で停止。preview依存の処理は確認しておきましょうAPI — Event-driven WebhooksでBatch APIや長時間処理の完了を通知受信。ポーリングが不要になりますSEARCH — File Searchがgemini-embedding-2に対応し、画像もネイティブに埋め込み・検索できますSECURITY — 6/19以降、未制限APIキーからのリクエストが遮断されました。キー制限の点検をMODEL — Gemini 3.5 Flashが一般提供。gemini-flash-latestの本体になりましたAGENT — Managed AgentsがGemini APIで公開プレビュー。隔離サンドボックスで自律エージェントを実行できますDEPRECATED — 画像プレビュー2モデルが6/25で停止。preview依存の処理は確認しておきましょう
記事一覧/API / SDK
API / SDK/2026-06-28上級

Managed Agents が静かに止まった朝、ログに手がかりが何も残っていなかった — 走行を外側から追える観測層の設計

Gemini Managed Agents はサンドボックスが Google 側にあるため、止まったときに自分のログ基盤へ手がかりが残りません。ストリームイベントを刻んで台帳化し、無音の停止を検知し、後から読める事後ログに畳む観測層を、そのまま動く TypeScript で設計します。

Gemini API152Managed Agents2観測性信頼性設計2Cloudflare Workers6TypeScript7

プレミアム記事

夜間に自律実行している処理が、ある朝だけ成果物を残していませんでした。スケジュールの実行記録には「開始」はあるのに「完了」がない。気づいたのは次の定期チェックが走った 20 分以上あとで、そのときにはもう、何が起きていたのかを示す手がかりがどこにも残っていませんでした。

理由を突き止めようとして、はたと困りました。処理の本体は Gemini の Managed Agents、つまり Google 側の隔離サンドボックスの中で動いています。私の手元には、エージェントを起動した一行と、結果を受け取るはずだった受け口しかありません。普段使っているログ基盤は、自分のプロセスの中で起きたことしか記録できないので、サンドボックスの中で静かに止まった瞬間については、何も語ってくれませんでした。

この記事は、その「静かに止まる」という失敗に対して、サンドボックスの外側に観測層を作って走行を後から追えるようにするまでの設計をまとめたものです。個人開発で夜間バッチを無人で回している立場から、実際に組んで効いた形だけを書きます。

静かに止まる、という失敗のかたち

エラーで落ちる失敗は、まだ扱いやすい部類です。例外が飛び、スタックトレースが残り、アラートが鳴ります。やっかいなのは、例外も出さずに進捗だけが止まる失敗です。

Managed Agents は計画・ツール呼び出し・コード実行をサンドボックス内で回します。その途中で、外部 API が無言でタイムアウトしたり、エージェントが同じ手を延々とやり直すループに入ったり、ツールの戻りを待ったまま先に進まなくなったりします。こうしたとき、オペレーションは「失敗」にも「成功」にも遷移せず、ただ進捗が来なくなります。受け口の側からは「まだ終わっていない」としか見えません。

私の環境では、この無音の停止が朝まで気づかれないのが一番の痛点でした。落ちてくれれば再試行できますが、止まったまま戻らないものは、誰かが「おかしい」と思うまで放置されます。観測層に最初に求めた要件は、派手な可視化ではなく「無音の停止を、無音のままにしない」ことでした。

なぜ普段のログ基盤では追えないのか

LLM 向けの観測ツール(分散トレースやエラー収集の類)は、どれも前提として「あなたのプロセスの中で計測する」設計です。リクエストを送る直前と受け取った直後にフックを差し込み、その区間を記録します。これは自前のエージェントループには完璧に効きます。

ところが Managed Agents では、ループの本体がサンドボックスの中にあります。私の側のコードは、起動して、ストリームを受け、最後のメタデータを受け取るだけです。つまり計測できる接点が、外から見えるイベントの流れ終わったあとのメタデータの二つしかありません。サンドボックスの中の一手一手に、自分のトレーサーを差し込むことはできません。

この制約を受け入れると、設計の方向が決まります。中を覗くのを諦め、外から見えるイベントを取りこぼさず刻み、その積み重ねから走行を再構成する。観測の主語を「プロセス」から「イベントの台帳」に移すわけです。

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

この記事の続きを読む

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

この記事で得られること
サンドボックスの中に入れない前提で、ストリームイベントと最終メタデータだけから走行を再構成する『走行台帳』のKVスキーマと、工程ごとに追記する実装
『無音の停止』を最後の進捗時刻からのアイドル経過で検知するしきい値の決め方と、私の夜間運用で検知までの時間が約21分から約80秒に縮んだ実測
失敗を7種類に正規化して事後ログへ畳むコードと、想定内の失敗と本当に追うべき失敗を切り分ける分類表
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API / SDK2026-06-24
Webhooks に移しても、デプロイの瞬間にイベントは落ちる — Gemini 長時間オペレーションを照合で二重化した運用メモ
ポーリングから Webhooks へ移した後でも、デプロイや一時的な 5xx の瞬間にイベントは取りこぼされます。Gemini の長時間オペレーションを操作台帳と低頻度の照合ポーラーで二重化し、終端イベントの欠落を拾い直す設計を実装メモとして残します。
API / SDK2026-06-16
Gemini Managed Agents を自動化に組み込む ― 会話状態と環境状態を分けて扱う実装メモ
Managed Agents は1回の API 呼び出しで Linux サンドボックスを立て、エージェントを走らせて結果を返します。自前ループから移すとき最初につまずく「会話状態と環境状態は別物」という設計を、実際に動かしながら整理しました。
API / SDK2026-06-11
Gemini 3.2 API 実装ガイド — 正しいモデルID・3.1 からの移行と本番チェックポイント
Gemini 3.2 を API から呼び出すための正しいモデルID、Gemini 3.1 からの移行時の変更点、Python・TypeScript の実装例、本番環境への移行チェックリストをまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →