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

agy の非同期ジョブで夜間タスクを束ねる — fan-out・poll・join の運用設計

Go 製になった Antigravity CLI(agy)は、ジョブをデタッチして非同期に走らせられます。複数の長時間タスクを一度に投げ、ジョブIDを束ね、完了をポーリングで待ち合わせる fan-out・poll・join の運用設計を、実際の夜間バッチの構成とともに共有します。

antigravity361CLIagy3非同期ジョブ管理オーケストレーション7運用設計11

プレミアム記事

夜間バッチを直列で回していた頃、一番遅い1本が全体を律速していました。記事生成、リンク監査、AdMob のメディエーション比較レポート、スクリーンショットの多言語差し替え。どれも独立した作業なのに、前のジョブが終わるまで次が始まらないので、合計すると朝までかかることがありました。

6/18 に Gemini CLI が止まり、Go 製の Antigravity CLI(agy)へ移したのを機に、この直列の構造そのものを見直しました。agy はジョブをデタッチして非同期に走らせられます。つまり「投げて、IDを覚えて、あとで待ち合わせる」という組み立てができます。

ここでは、その fan-out(一斉投入)・poll(状態確認)・join(待ち合わせ)を、個人開発の運用に耐える形でどう設計したかを共有します。派手な並列フレームワークは使いません。agy が返すジョブIDと、それを束ねる小さなシェルだけです。

直列待ちが律速する構造を、まず数字で見る

最初に、何を直していたのかを数字にしました。夜間ジョブは12本。直列で回すと、各ジョブの実時間の単純合計がそのまま総所要時間になります。

私の環境では、12本の合計が平均で約214分でした。ところが各ジョブのCPU・ネットワークの占有率は低く、待ち時間が大半を占めていました。LLM の応答待ち、API のレート制限の合間、git の push 完了待ち。どれも「手は空いているのに次へ進めない」時間です。

非同期に並行で投げれば、総所要時間は「最も遅い1本+わずかなオーバーヘッド」に近づきます。実測では214分が約79分になりました。短縮率はおよそ63%です。重要なのは、各ジョブを速くしたのではなく、待ち時間を重ねただけだという点です。

agy の非同期ジョブが返すもの

agy run には、ジョブをフォアグラウンドで実行する通常モードと、デタッチして即座に制御を返す --detach があります。デタッチすると、標準出力にジョブIDが1行返ります。

# フォアグラウンド(従来): 完了までブロックする
agy run --task "generate article: antigravity cli async jobs" --model gemini-3.5-flash
 
# デタッチ: 即座にジョブIDを返し、バックグラウンドで継続する
JOB_ID=$(agy run --detach --json \
  --task "generate article: antigravity cli async jobs" \
  --model gemini-3.5-flash | jq -r '.job_id')
echo "submitted: $JOB_ID"

--json を付けると、人間向けの装飾ではなく機械可読な1オブジェクトが返ります。スクリプトで扱うときは必ず --json を付けてください。装飾付きの出力を grep で拾う実装は、CLI の表示が少し変わっただけで壊れます。

ジョブの状態は agy jobs で取れます。

# 単一ジョブの状態
agy jobs get "$JOB_ID" --json
# => {"job_id":"j_8f3a","state":"running","exit_code":null,"started_at":"..."}
 
# 全ジョブの一覧
agy jobs list --json

statequeued / running / succeeded / failed / cancelled のいずれかを返します。exit_code は終了後にのみ数値が入ります。この2つを軸に待ち合わせを組み立てます。

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

この記事の続きを読む

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

この記事で得られること
agy run --detach が返すジョブIDを配列に束ね、agy jobs で状態を取得する fan-out → poll → join のシェル実装一式を取得できます
ポーリング間隔を指数的に伸ばし、タイムアウトと部分失敗を分けて扱う待ち合わせループの設計と、本番で踏んだ落とし穴を学べます
12本の夜間ジョブを直列から非同期並行に切り替えて総所要時間を約63%短縮した、待ち合わせ運用の判断基準が分かります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-06-12
依存ライブラリの更新を Antigravity エージェントに任せる運用設計 — リスク階層・検証・巻き戻し
溜まり続ける依存更新の通知を、Antigravity のエージェントにどこまで任せられるか。semver を実績で補正するリスク4階層、worktree によるロット隔離、検証と巻き戻しの定型化まで、複数アプリ運用で固めた設計を実物のスクリプトつきで共有します。
Agents & Manager2026-06-02
本番に触れる前にエージェントの操作を空振りさせる — 副作用ゼロのドライラン層をどう設計するか
シャドウ実行やカナリアでも防げない事故があります。エージェントが外部APIに初めて触れる、その一回目を安全にするための「副作用ゼロのドライラン層」を、Antigravity の並列エージェントに後付けで差し込む設計と実装を、6サイト自律運営の実数値とともに共有します。
Agents & Manager2026-06-01
並行エージェントのトークンコストを予算で抑える — 暴走を止めるバジェットガードの設計
複数のエージェントを並行で走らせると、トークン費は気づかないうちに膨らみます。トークンを減らす最適化ではなく、予算で消費を遮断するガバナンス層を Antigravity の並列エージェントに組み込む設計と実装を、6サイト自律運営の実数値とともに共有します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →