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

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

同じプロンプトで二度走らせると差分が出るエージェント出力を、スナップショットの正規化とpytestのゴールデンファイル比較で安定して回帰検証する実装を、個人開発のCIで運用した記録としてまとめます。

antigravity367citesting9agent14pytest

プレミアム記事

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

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

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

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

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

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

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

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

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

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

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

この記事の続きを読む

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

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

この記事を購入する

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

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

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

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

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

関連記事

連携・プラグイン2026-03-27
Antigravity × GitHub Issues からコードを自動生成する AI ワークフロー構築ガイド
Antigravity の AI エージェントと GitHub Issues を連携し、Issue の内容からコードを自動生成するワークフローを構築する方法を解説します。MCP サーバーと AGENTS.md の設定から実践的な運用テクニックまで網羅。
連携・プラグイン2026-06-17
axe-core の検出をエージェントに渡して直す — アクセシビリティ改善を CI に組み込む実装メモ
axe-core で検出したアクセシビリティ違反を Antigravity のエージェントに渡し、検出→トリアージ→修正→再検証のループを CI に組み込む実装メモです。新規違反だけを止める差分ゲートと、エージェントの修正範囲を絞る設計を本番運用の形でまとめました。
連携・プラグイン2026-06-16
クラウドに出した夜間バッチが「昨日と違う結果」になる — 再現性を守る入力契約とスナップショット設計
Managed Agents API でバッチをクラウドのエフェメラルワーカーに出すと、手元では当たり前だった環境の前提が消えます。同じ入力でも結果がぶれる原因を、環境スナップショット・入力契約・シード固定の三層で押さえる設計と実装を共有します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →