ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-06-15上級

Antigravity のエージェントを「完了の自己申告」から卒業させる — 完了契約と外部検証の実装メモ

Antigravity のエージェントが「完了しました」と報告したのに未完了だった事故を、完了判定をコードへ外部化する設計で潰してきました。完了契約・3層の自動検証・無人実行での扱い・CI 統合までを実装で示します。

Antigravity234エージェント設計9完了検証品質保証3無人運用

プレミアム記事

Antigravity に「この決済モジュールを新しい SDK に載せ替えてほしい」と頼み、戻ってきたら「完了しました。ビルドもテストも通っています」と書かれていました。差分を見ると確かに新 SDK の呼び出しに置き換わっていて、ユニットテストも緑です。ところがプロダクション環境に近い構成でリトライ込みの結線テストを回すと、特定のタイムアウト経路だけ旧 SDK の例外型を握り続けていて、リカバリが動いていませんでした。

エージェントが嘘をついたわけではありません。エージェントの「完了」と私の「完了」が、最初から別物だっただけです。ここでは、完了の定義をエージェントの外側に固定する「完了契約」という設計と、それを担保する自動検証の組み方を、個人開発で実際に運用しているコードまで含めて整理します。スケジュール実行や無人エージェントが当たり前になった 2026 年では、この設計の有無が運用コストを直接左右するようになりました。

なぜ「完了しました」は構造的にズレるのか

完了をエージェントに自己判断させると、3 つの層が静かに混ざります。形式的な完了(指示どおりファイルが変わった・関数が増えた)、機能的な完了(実行結果が期待どおり動く)、意図的な完了(依頼の本当の目的が満たされ、他を壊していない)。指示が曖昧なとき、エージェントは最も早く到達できる形式的完了で手を止めます。ビルドが通った、テストが緑になった、プロンプトの箇条書きが埋まった——そこが停止点になります。

厄介なのは、停止点がエージェント側にあること自体です。能力が上がっても、完了の物差しを相手に預けている限り、物差しのズレは構造的に残ります。解決の方向は単純で、完了の宣言権をエージェントから取り上げ、外部の検証器だけが「完了」を出せるようにします。エージェントの仕事は「検証器を緑にすること」へ変わり、検証器を書くのは依頼者である私です。

完了契約(completion contract)を先に固定する

私はタスクごとに、何をもって完了とするかを機械可読な「契約」として先に書きます。重要なのは、タスクを始める前に、同じコミットで契約を入れることです。着手後に書くと、エージェントが出した差分に合わせて契約が甘くなる逆流が必ず起きます。

# tasks/payment-sdk-migration/contract.yaml
task_id: payment-sdk-migration
# 完了の宣言権はこのファイルにしかない
formal:
  - "pnpm lint"
  - "pnpm tsc --noEmit"
  - "! grep -rn 'legacy-pay' src --include='*.ts'"   # 旧SDK名の残留禁止
functional:
  - "pnpm test src/payment"
  - "pnpm test:contract -- --grep 'timeout-recovery'" # 落ちていた経路を必須化
intent:
  questions:
    - id: side_effects
      ask: "決済以外の画面で旧SDKの型に依存していた箇所はどこか。どのファイルで確認したか"
    - id: error_paths
      ask: "タイムアウト・5xx・ネットワーク断の3経路で、リカバリが動くことをどのテストで確認したか"
    - id: untouched
      ask: "触れるべきでなかったのに変更したファイルはあるか。あれば全て列挙"
budget:
  max_files_changed: 18        # これを超えたら意図逸脱として要レビュー
  forbid_paths: ["infra/", "src/auth/"]  # 触らせない境界

契約をタスク冒頭でエージェントに渡すとき、停止条件を一文で釘を刺します。「このタスクは scripts/done_check.py が終了コード 0 を返した時点でのみ完了。途中でビルドや lint が通っても、done_check が通るまで完了と報告しないこと。意図質問は tasks/<id>/intent.md に 1 問ずつ回答を書く」。この一文があるだけで、「完了しました」の意味が固定されます。

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

この記事の続きを読む

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

この記事で得られること
完了判定をエージェントの外へ出す「完了契約(completion contract)」の書き方と、終了コードの意味づけ
形式・機能・意図の3層検証スクリプトと、意図チェックでエージェントに具体を書かせる質問設計
スケジュール実行・無人エージェントで完了検証をどう回すか(再実行抑制・差分監査・失敗時の隔離)
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-05-06
エージェントに「審美眼」を持たせる — Antigravity × Gemini Vision で構築する UI 品質自動評価パイプライン
「このUIは良いか悪いか」という曖昧な判断をコードに落とし込む方法を探ります。Antigravity と Gemini Vision を組み合わせて、スクリーンショット取得からAI評価、改善提案、自動修正、CI/CD統合までを一本のエージェントパイプラインとして実装します。
Agents & Manager2026-05-04
Antigravity の Architect / Builder を『数理的に』設計する — 検索・分類・推論モデルから考えるエージェント設計
Antigravity の Architect / Builder の二段構成は、よくよく見ると検索エンジンや分類モデルの数学的構造とよく似ています。AIエージェント設計を『数理的思考』のレンズで捉え直し、より安定したエージェントを作るための視点を整理します。
Agents & Manager2026-04-27
AgentKit 2.0 でマルチエージェント開発を始める — Antigravity 環境での設計と実装
AgentKit 2.0 はマルチエージェント開発の入り口を一気に下げました。私が Antigravity 上で 3 種類のエージェント連携パターンを実装して見えた、設計判断・落とし穴・本番運用の勘所を体系化します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →