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

Background Agent に夜間作業を任せて、朝に後悔しないために — 無人実行のガードレール設計

Antigravity の Background Agent に夜間リファクタを任せると、朝には便利さと同じだけの不安が届きます。被害範囲・完了条件・静かな劣化の検出という3点から、無人実行を安心して回すためのガードレール設計を運用視点でまとめました。

antigravity385background-agent8ai-agent15automation39code-review5

プレミアム記事

最初に夜間自動化で痛い目を見たのは、エージェントが「親切」だったときでした。あるユーティリティ関数の重複を見つけて一本化してくれたのですが、片方は呼び出し側がエラーを握りつぶす前提で書かれていて、もう片方は例外を投げる設計でした。テストはすべて緑のまま通り、差分も読みやすく、コミットメッセージも丁寧。朝の私はそれを信用してマージし、その日の午後に本番のジョブが静かに止まりました。

無人実行の怖さは、エラーで止まることではありません。もっともらしく成功して見えることです。人間がレビューに入る前提なら、この種の取り違えは会話の中で気づけます。けれども夜間の Background Agent は、誰も見ていない時間に、誰にも止められないまま自信を持って間違えます。ここでは Antigravity の Background Agent を 30 晩ほど無人で回してきたなかで、被害を抑えるために効いた設計を運用視点で整理します。派手な自動化の話ではなく、「朝に後悔しないための地味な仕掛け」の記録です。

作業範囲より先に、被害範囲を決める

夜間タスクの設計では、つい「何をやらせるか」から考え始めてしまいます。順序が逆でした。先に決めるべきは 失敗したときにどこまで壊れうるか、つまり被害範囲(blast radius)です。

個人開発で複数のリポジトリを一人で抱えていると、夜のうちに手が回らない手入れをエージェントに託したくなります。私が落ち着いた原則は単純で、エージェントには三重の囲いをかけます。

  1. main には絶対に触れさせず、必ず使い捨ての作業ブランチで動かす。
  2. 書き換えてよいファイルを許可リストで明示し、それ以外への書き込みは禁止する。
  3. 1 回の実行で許す差分量に上限を設ける。

この三つは、エージェントの賢さとは無関係に効きます。本番運用に乗せる前提なら、賢く直してくれることよりも、取り違えを早く回避できることのほうを私自身は重視しています。

タスク定義そのものに、この囲いを言語化して埋め込みます。

# .antigravity/tasks/nightly-maintenance.md
 
## ゴール
許可リストのファイルについて、振る舞いを変えずに可読性と型安全性を改善する。
 
## 触れてよい場所(これ以外への書き込みは禁止)
- src/lib/**/*.ts
- src/utils/**/*.ts
 
## 絶対にやらないこと
- 公開 API のシグネチャ変更(引数・戻り値・例外の種類)
- main / develop への直接コミット
- 依存関係の追加・更新(package.json は読み取りのみ)
- 1 ファイルあたり 120 行を超える差分
 
## 完了の定義
- 既存テストが緑のまま
- 変更したファイルごとに、何を・なぜ変えたかを 1 行で要約
- 上記を満たせない場合は「変更なし」で終了し、理由を残す

ここで大事なのは「絶対にやらないこと」と「完了の定義」を、達成すべきタスクと同じ重みで書くことです。エージェントは目標に向かって最適化するので、制約を曖昧にすると、制約のほうを犠牲にして目標を達成しにきます。公開 API を勝手に変えられて困った経験から、シグネチャ変更の禁止は明示的に一行を割いて書くようにしました。

起動側でも囲いをかける(プロンプトを信用しすぎない)

タスク定義に制約を書いても、それはあくまで「お願い」です。無人で回す以上、機械的に強制できる囲いを起動スクリプト側にも持たせます。Antigravity CLI でセッションを起こし、作業ブランチを切ってから渡す形にしています。

#!/usr/bin/env bash
# scripts/nightly-agent.sh — cron から 1 タスク 1 起動で呼ぶ
set -euo pipefail
 
TASK_FILE="$1"                       # 例: .antigravity/tasks/nightly-maintenance.md
DATE="$(date +%Y%m%d)"
BRANCH="agent/nightly-${DATE}-$(basename "$TASK_FILE" .md)"
 
# 使い捨て作業ブランチ。main は常にクリーンな出発点
git fetch origin main --quiet
git switch -c "$BRANCH" origin/main
 
# セッション起動。完了したら結果を JSON で受け取る
SESSION_ID="$(antigravity sessions create \
  --task "$TASK_FILE" \
  --sandbox isolated \
  --timeout 45m \
  --max-output-tokens 64000 \
  --format json | jq -r '.session_id')"
 
echo "started ${SESSION_ID} on ${BRANCH}"
 
# ポーリングは CLI に任せ、完了/タイムアウトで抜ける
antigravity sessions wait "$SESSION_ID" --timeout 50m || {
  echo "session did not finish cleanly: ${SESSION_ID}"
  # 中途半端な変更は破棄してブランチごと捨てる
  git switch main && git branch -D "$BRANCH"
  exit 0
}

ポイントは二つあります。タイムアウトを必ず設けること。そして、きれいに終わらなかったセッションの成果物は疑わずに捨てることです。中途半端に処理されたコードを朝に拾い上げて検分する時間のほうが、再実行のコストより高くつきます。最初の頃は「途中まででも惜しい」と拾っていましたが、結局ほとんど使い物にならず、判断の負荷だけが残りました。

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

この記事の続きを読む

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

この記事で得られること
夜間の無人リファクタを「ブランチ隔離・ファイル許可リスト・差分上限」で被害範囲から設計する具体パターン
「テストが緑」を完了条件にしない — 意味的差分とカバレッジ差分で静かな劣化を検出する検査層の置き方
朝に複数の生成ブランチを数分で捌くトリアージ手順と、再実行しても二重適用しない冪等なタスク定義
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-05-22
壁紙アプリの夜間アセット更新を Antigravity Background Agent に任せた3週間の所感
累計5,000万DLの壁紙アプリの夜間アセット更新を、Antigravity の Background Agent に3週間任せた実運用記録。任せられる作業の線引き、毎朝の確認フロー、ロールバック設計まで、日々の手応えを淡々と書き残します。
Agents & Manager2026-04-13
Gemma 4 × Antigravity で作るコーディングエージェントシステム — コードレビュー・テスト生成・リファクタリング支援を一括処理する実装ガイド
Gemma 4とAntigravity AgentKit 2.0を使い、コードレビュー・テスト自動生成・リファクタリング提案を担う3エージェント協調システムをゼロから構築する実践ガイド。プロダクション品質のコードと落とし穴対策を網羅。
Agents & Manager2026-03-28
SKILL.md駆動のコードレビューエージェントを設計する方法
AIの実装支援が進むほどレビュー負荷が増大する時代。SKILL.mdを核としたコードレビューエージェントの設計パターンを解説します。9段階のレビューステップ、品質ガイド、カスタム命令の構成方法を紹介。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →