ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
連携・プラグイン/2026-05-24上級

Antigravity サブエージェントの「動いているのに何もしていない」を捕まえる Observability 3層設計

Antigravity サブエージェントを 6 アプリ並行で動かしていると、月に 10 件以上「実行ログは緑なのに成果ゼロ」のサイレント失敗が起きます。Heartbeat / Output Trace / Decision Log を 3 層で重ねて 60 秒以内に検知する実装を、コードと運用数値ごと共有します。

antigravity435observability17subagent3bigquery4cloud-scheduleroperations6

プレミアム記事

夜中の 2 時に Cloud Scheduler の通知だけ「success」が並んでいて、朝起きてストアを開いたら昨日と何も変わっていありません。Antigravity のサブエージェントを 6 アプリ並行で回し始めた最初の月、こういう日が 11 回ありました。エラーは出ていません。ログにも例外はありません。ただ、エージェントが「動いてはいたけれど、結局何もしていなかった」のです。

2014 年から累計 5,000 万ダウンロードの個人アプリ事業を運営してきましたが、Antigravity の Background Agent / サブエージェントの導入で増えたサイレント失敗は、これまでの「落ちる障害」とは性質が違いました。落ちないので気付けないのです。打音検査をしていた宮大工の祖父が「見える割れより、たたいて返ってくる音が変な柱の方が怖い」と言っていたのを、エージェント運用 4 ヶ月目くらいで真剣に思い出しました。

この記事は、そのあとに組み直した Observability の 3 層設計(Heartbeat / Output Trace / Decision Log)と、月 $7 以内に収めた GCP 構成、6 アプリ並行で 4 ヶ月運用して見えた数値をまとめた実装メモです。Antigravity 公式のログ画面が見せてくれない「動いているのに何もしていない」状態を、本番に残さないための設計として書きました。

サイレント失敗の 3 類型 — stale context / no-op loop / silent retry

最初に「サイレント失敗」と呼んでいるものの正体を分解しておきます。Antigravity の Background Agent / サブエージェントを長期で運用すると、ほぼ確実に下記 3 つに出会います。

stale context — 古いコンテキストを正としてしまう失敗

エージェントは指示通りに動いていますが、参照しているリポジトリのスナップショットや AdMob レポートのキャッシュが数時間〜数日前のものになっており、「変更点ゼロ」と判断して何もしません。実害がない無風日も含むので、単純な「成果物ゼロ=失敗」とは判定できないのが厄介です。

no-op loop — タスクは進むが副作用が一度も発生しない

ツール呼び出しは行われていて、grepread_file のような副作用のない関数だけが回ります。最終的に「結論:問題なし」を返してエージェント自身は正常に終了します。本来やってほしい write_filegh pr create などの書き込み系が一度も呼ばれていません。

silent retry — 内部リトライで例外を握りつぶす

Antigravity サブエージェント側のリトライポリシーが、外部 API の 5xx を黙って再試行します。3 回まで再試行し、最終的に「最初の試行と同じ古い結果」を返して終わるパターンが一定数あります。ログは「success」ですが、実際には API の最新値を反映していません。

この 3 つは出方が違うので、検知ロジックも別々に組まないと取りこぼします。1 つの汎用アラートで全部押さえようとして、最初の 1 ヶ月は誤検知 22% で運用が破綻しました。

3 層 Observability の全体像と「重ねる順番」

サイレント失敗を検知するには、エージェントの外側に「3 種類の真実」を別チャネルで持っておく必要があります。私が現在 6 アプリで採用している構成はこの順番です。

  1. 第 1 層 Heartbeat — 「エージェントが起動して、終了したか」を外部から測る
  2. 第 2 層 Output Trace — 「成果物が実際に変わったか」をハッシュで照合する
  3. 第 3 層 Decision Log — 「なぜそう判断したか」をツール呼び出しレベルで残す

順番が重要です。先に Decision Log から作ると、ログが膨大になって読めなくなり、運用が続きません。Heartbeat → Output Trace の 2 層だけで全体の 78% は捕まえられるので、まず軽い構成を完成させてから、残り 22% を Decision Log で塞ぐのが推奨です。

下記のフロー図はテキスト表現ですが、Cloud Scheduler → サブエージェント → 各層 → BigQuery → アラートと一方向に流れる単純な構成です。

Cloud Scheduler (cron)
    ↓ HTTP POST (start_token)
Antigravity Subagent (任意の処理)
    ├─ [Layer 1] Heartbeat probe → BigQuery (latency, exit_code)
    ├─ [Layer 2] Output hash diff → BigQuery (changed?, bytes)
    └─ [Layer 3] Decision log JSON → BigQuery (tool calls, reasoning)
                            ↓
              定時クエリ (毎 5 分 Cloud Scheduler)
                            ↓
         Slack #ops(軽度)/ PagerDuty(重度)

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

この記事の続きを読む

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

この記事で得られること
「実行ログは緑なのに成果ゼロ」のサイレント失敗を 60 秒以内に検知する Heartbeat + 結果ハッシュ照合の最小実装
6 アプリ並行運用で固まったサイレント失敗 3 類型(stale context / no-op loop / silent retry)と判別ルール
Cloud Scheduler + BigQuery Streaming Insert + Slack/PagerDuty を月 $7 以内で運用する構成と保持期間設計
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

連携・プラグイン2026-07-13
無人ランのログを SQLite に流し込み、失敗を横断で数える
Antigravity CLI を無人スケジュールで回すと、ランごとに JSON Lines のログが溜まっていきます。ファイルを grep で追うのをやめ、小さな SQLite に取り込んで「どのステップがいつ落ちるか」を1本のクエリで数える方法を、取り込みスクリプトと診断 SQL、実際の集計結果ごと共有します。
連携・プラグイン2026-07-08
成功し続ける自動化が、いつの間にか価値を失うとき — 成果の痩せを検出して畳む設計
スケジュール実行の緑のログは、しばしば最も油断ならない嘘をつきます。成功しているのに価値を失った自動化を、成果台帳と評価器で炙り出し、畳む・直す・残すを判断する設計を実コードとともに整理します。
連携・プラグイン2026-05-19
Antigravity から wrangler tail を呼ばせて Cloudflare Workers の障害切り分けを3週間任せた所感
6サイトを Cloudflare Workers で運用していて、エラー対応が朝の時間を侵食していました。Antigravity に wrangler tail を呼ばせ、ログ判読と一次切り分けを3週間任せた記録です。任せた範囲、任せなかった範囲、想定外だった挙動を率直にまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →