◉ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
⬡ 連携・プラグイン/2026-06-15上級

Antigravity エージェントの揺れる出力を CI で回帰検証する

同じプロンプトでも出力が揺れるエージェントを、CI のスナップショットテストで回帰検証する方法です。揺れる部分だけを潰す正規化レイヤー、pytest でのゴールデンファイル比較、構造化出力の意味一致判定、フレーク対策までを実装しながら解説します。

antigravity464ci5testing15agent20pytest

✦ プレミアム記事

スケジュール実行に移したエージェントが、ある朝だけ妙な生成物を吐いていました。プロンプトは前日と同じ。けれど出力は微妙に違う。手元で二度走らせると、二度とも差分が出ます。CI のスナップショットテストは当然のように赤くなり、しかしその赤は「壊れた」のか「揺れただけ」なのか判別がつきませんでした。

個人開発で複数のサイトをエージェントに任せていると、この「揺れる赤」が一番やっかいです。本当の退行を隠してしまうからです。ここでは、Antigravity のエージェント出力を CI で安定して回帰検証するために私自身が組んだ仕組みを、順を追ってお伝えします。

同じプロンプトで二度走らせると差分が出る、という最初の戸惑い

最初に試したのは、生成物をそのままファイルに保存して git diff で比べる素朴な方法でした。これは半日で破綻します。

エージェントの出力には、内容としては等価でも文字列としては毎回変わる箇所が必ず混じります。生成日時、実行 ID、一時ファイルのパス、リストの並び順、JSON のキー順。これらを素のまま比較すると、意味のある退行と意味のない揺れが同じ「差分」として並んでしまいます。

つまり問題は「比較すること」ではなく、「比較する前に揺れを取り除くこと」でした。

なぜエージェント出力はスナップショットと相性が悪いのか

スナップショットテスト自体は、UI コンポーネントや API レスポンスで実績のある手法です。期待値を一度記録し、次回以降はそれと照合します。

相性が悪く見えるのは、エージェント出力に三種類の非決定性が同居しているからです。一つ目は環境由来の揺れ(時刻・ID・パス)。二つ目は順序の揺れ(集合を配列で返すときの並び)。三つ目はモデル由来の言い換え(同じ意図を別の言葉で表す)。

最初の二つは機械的に潰せます。三つ目だけは別の照合戦略が要ります。この切り分けができていないと、「スナップショットは無理」という誤った結論に飛んでしまいます。実際には、潰せるものを潰してから、潰せない部分にだけ意味ベースの判定を当てればよいのです。

✦

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

この記事の続きを読む

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

この記事で得られること
✦非決定的なエージェント出力を pytest のスナップショットで回帰検証する具体的な手順
✦タイムスタンプや UUID など揺れる値を潰す正規化レイヤーの実装パターン
✦CI のフレーク率を 3 回再試行と差分しきい値で抑える運用ノウハウ
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 連携・プラグイン2026-09-05
GOOGLE_GEMINI_BASE_URL を差し替えても、鍵の持ち主は変わりません
Antigravity CLI の宛先を自前のゲートウェイへ向けたとき、手元の API キーがどこまで運ばれるかを受け側で記録しました。クロスホストのリダイレクトで Authorization は落ちるのに API キーヘッダーは残る、という挙動差の実測と、鍵を端末から外すゲートウェイの組み方を書き残します。
⬡ 連携・プラグイン2026-05-24
Antigravity サブエージェントの「動いているのに何もしていない」を捕まえる Observability 3層設計
Antigravity サブエージェントを 6 アプリ並行で動かしていると、月に 10 件以上「実行ログは緑なのに成果ゼロ」のサイレント失敗が起きます。Heartbeat / Output Trace / Decision Log を 3 層で重ねて 60 秒以内に検知する実装を、コードと運用数値ごと共有します。
⬡ 連携・プラグイン2026-05-04
Antigravity × Unreal Engine 5 — ゲーム内AIエージェント統合の実装パターンと落とし穴
Antigravity を Unreal Engine 5 のゲーム内エージェントに統合する実装パターンを、3つのアーキテクチャ・NPC実装・プロシージャル生成・パフォーマンス最適化まで、現場で踏んだ落とし穴とあわせて深掘りします。