ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-05-18上級

Crashlyticsの毎朝トリアージを5つのAntigravityサブエージェントに分担させた話

個人で6本のアプリを運営している中で毎朝のクラッシュトリアージが負担になり、Antigravityのサブエージェント5つに責務を分割しました。Fetcher/Classifier/Repro/Patch/PRの各段で人間レビューの境界線をどこに置いたかを、二週間の実運用データと合わせて記録します。

antigravity435agents90crashlytics5firebase11ios35android27multi-agent21indie-dev6

プレミアム記事

Crashlyticsのコンソールを朝に開いて、Top 10のクラッシュを一件ずつ追いかける作業は、個人で6本のアプリを同時に運営していた頃の私にとって、もっとも消耗する仕事でした。運営本数が増えるほどクラッシュレポートは積み上がり、「朝のうちに読みきれない」という状態が常態になっていきました。Antigravityに一括で渡せば終わると思っていた時期もありますが、実運用に持ち込むと、一つのエージェントに全任せにする設計では破綻するという感触を得ました。

そこで5つのサブエージェントに責務を分割し、それぞれが「ここから先は人間が見る」「ここまでは自動で進める」という境界線を持つ構成に再設計しました。二週間運用したところ、朝の平均トリアージ時間は89分から14分に短縮され、誤検知率も18%から6%に下がりました。本稿はその設計図と運用ログ、そして個人開発者が同じ構成を組むときに気をつけるべき点をまとめた記録です。

なぜ一つのエージェントに全任せできなかったか

最初に試したのはCrashlyticsのスタックトレースをそのままAntigravityの単一エージェントに渡し、「原因を特定して修正パッチを出して」とだけ依頼する構成でした。短期的にはこれで動きます。ただし二週間も回すと以下の3つの破綻が表面化しました。

第一に、コンテキストが膨らみすぎてエージェントが情報の優先順位を誤ります。クラッシュの内容、対象アプリのコードベース、過去の類似クラッシュ、リリースノート、依存ライブラリのバージョン差分まで毎回読み込ませると、入力量だけで2万トークンを超え、肝心のスタックトレースの末尾を雑に扱うようになりました。これは個人開発で扱う4本以上のアプリを一つのワークフローに通したときに特に顕著でした。

第二に、人間がレビューに入る場所を決められません。「Antigravityの提案するパッチをそのままmainにマージしますか?」という問いに即答できる個人開発者はほぼいないはずです。私自身、運営しているアプリのうちAdMobの収益が大きい数本については、リグレッションを一度でも出すと月の売上が二桁パーセント単位で揺れるため、ノーレビューでのマージは選択肢に入りませんでした。

第三に、失敗時の切り戻しがエージェント単位で取れません。原因特定が間違っていたのか、再現スクリプトが甘かったのか、パッチの当て方がまずかったのかを、ログから後追いできない構造になっていました。

この3つを同時に解決するために、エージェントを5つに分割し、それぞれが構造化された入出力スキーマだけを介してやり取りする構成に変えました。

5つのサブエージェントに責務を分割する設計図

設計はシンプルです。各エージェントは前段の出力JSONを受け取り、自分の専門領域だけを実行し、次段が読める形のJSONを出力します。境界をJSONで固めることで、どの段で失敗したかが必ず特定できるようになります。

  1. Fetcher Agent — Crashlyticsからクラッシュ群を取得し、正規化してJSONに整形する
  2. Classifier Agent — クラッシュを「リグレッション/既知未対応/外部要因/環境固有」の4種に分類し、優先度スコアを付与する
  3. Repro Agent — 上位優先度のクラッシュについて再現スクリプトを試作し、シミュレータで実行する
  4. Patch Agent — 再現できたクラッシュに対して修正パッチとテストを生成する
  5. PR Agent — Draft PRを作成し、必要なreviewerをアサインしてリンクをSlackに通知する

それぞれのエージェントには「自分の出力にどの情報を含めるか」「次段にどの情報を渡してはいけないか」を明示しました。例えばFetcher Agentは生のスタックトレースを次段に渡してよいですが、内部のユーザーIDやメールアドレスといったPIIは正規化のタイミングで落とすルールにしています。

下記がパイプライン全体の骨格を表現したAntigravityのagents.mdの抜粋です。

# Crashlytics Triage Pipeline
 
## Agents
 
### fetcher
- role: Crashlyticsから過去24時間の致命的クラッシュを取得し、正規化済みJSONを出力
- inputs: { app_ids: string[] }
- outputs: schema://crash-batch-v1.json
- tools: gcp-bigquery, firebase-crashlytics-rest
- constraints:
  - PII(user_email, custom_keys.user_id)を出力から除外
  - 1リクエストあたり最大50件まで
 
### classifier
- role: クラッシュ群を4カテゴリに分類しスコアリング
- inputs: schema://crash-batch-v1.json
- outputs: schema://crash-triaged-v1.json
- tools: codebase-search, git-log-since
- constraints:
  - リグレッションと判定する場合は対応するcommit hashを必ず添える
 
### repro
- role: 上位5件の再現スクリプトを試作してシミュレータで実行
- inputs: schema://crash-triaged-v1.json
- outputs: schema://crash-reproduced-v1.json
- tools: xcodebuild-test, gradle-test, simctl
- constraints:
  - 5分以内に再現できない場合はskip理由を記述

エージェント定義をMarkdownのagents.mdに集約しておくと、Antigravity側がpipeline全体を一つの宣言として読み込めます。スキーマファイルを別途用意しておけば、出力のバリデーションも自動で挟めます。

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

この記事の続きを読む

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

この記事で得られること
5つのサブエージェントの責務と入出力スキーマを宣言的に固定する設計
人間レビュー必須/自動承認の境界線を判定するスコアリングロジック
二週間運用後の数値(トリアージ時間89分→14分、誤検知率18%→6%)
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-05-27
6 アプリ並行の iOS 更新を Antigravity の Main / Sub エージェントで束ねた実体験
Beautiful HD Wallpapers / Ukiyo-e Wallpapers / Relaxing Healing / Law of Attraction を含む 6 アプリの iOS 更新を、Antigravity の Main エージェント + 6 サブエージェント構成で並行運用した実装ノート。直列化すべきところと並列化すべきところの判断軸を残します。
Agents & Manager2026-05-26
Antigravity のサブエージェントでリリース直前 QA を 4 経路並列に分散する設計ノート
6 本のアプリを並行運用する個人開発者の視点から、Antigravity のサブエージェントを使ってリリース直前 QA を 4 経路に分けて並列化する設計を書き残します。プロンプト雛形・終了条件・合流点までを実例付きで整理しました。
Agents & Manager2026-05-22
壁紙アプリの夜間アセット更新を Background Agent に任せる — 時間予算・重複検出・完了ゲートまで含めた運用設計
壁紙アプリの夜間アセット更新を Antigravity の Background Agent に任せた実運用記録を、再現できる形に落とし込みました。タスク定義の書き方、知覚ハッシュによる重複検出、12 プロファイル一括リサイズ、5 分で終わる朝の確認レポート、そして時間予算と完了ゲートの設計までをコード付きでまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →