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

並行エージェントの動きを後から辿る — 構造化ログとスパンで作る可観測性

Antigravity 2.0 のデスクトップで複数エージェントを並行させると、どれが何をしているか追えなくなります。混線する print デバッグを捨て、run_id と span で実行を後から辿れるようにする可観測性の設計を、個人運用の実装と数値で共有します。

antigravity365マルチエージェント36可観測性2ロギングトレース2運用設計14デバッグ5

プレミアム記事

並行で6本のエージェントを走らせていた朝、そのうち1本が誤ったファイルを書き換えていました。問題は、ログを見ても「どのエージェントの、どの段階で起きたのか」が分からなかったことです。6本分の出力が同じコンソールに時系列で混ざって流れ込み、一本の壊れた処理だけを抜き出せませんでした。原因を切り分けるのに40分かかり、その大半は「読むべきログ行を探す」時間でした。

Antigravity 2.0 のデスクトップは、複数のエージェントを並行で動かし、バックグラウンドでスケジュール実行できます。一人で複数のアプリとサイトを回す個人開発では、この並行性が生産性を大きく押し上げます。けれど並行になった瞬間、ログは直線的な物語ではなくなります。可観測性、つまり「後から実行を辿れること」を先に設計しておかないと、並行性はそのまま「追えなさ」に変わってしまいます。

print デバッグが並行で破綻する理由

一本のエージェントを順番に動かしているうちは、上から下へlog を読めば物語が追えます。並行になると、複数の物語が同じ画面に交互に挿し込まれます。「いま読んでいるこの行は、どのエージェントのものか」が分からなければ、ログは情報ではなく雑音になります。

さらに厄介なのは、失敗が必ずしもログの最後に現れないことです。落ちたエージェントの最後の行と、別の正常なエージェントの行が隣り合っていると、無関係な行を原因と誤読します。私はこれで何度も見当違いの修正に時間を使いました。

解決の方向は一つです。すべてのログ行に、それが「どの実行の・どのエージェントの・どの段階か」を機械可読な形で必ず添えることです。

すべてのログに run_id と agent_id を貼る

まず、バッチ全体の実行に1つの run_id を、各エージェントに agent_id を割り当て、あらゆるログにこの2つを必ず含めます。人間が読むための文字列ではなく、後で機械的に絞り込むためのキーとして扱います。

interface LogContext {
  run_id: string;    // バッチ実行ごとに1つ
  agent_id: string;  // エージェントごとに1つ
  span?: string;     // 現在のフェーズ名
}
 
function createLogger(ctx: LogContext) {
  const emit = (level: string, msg: string, extra: Record<string, unknown> = {}) => {
    // 1行1 JSON。grep ではなく機械で絞り込める形にする
    console.log(JSON.stringify({
      ts: new Date().toISOString(),
      level,
      ...ctx,
      msg,
      ...extra,
    }));
  };
  return {
    info: (m: string, e?: Record<string, unknown>) => emit("info", m, e),
    error: (m: string, e?: Record<string, unknown>) => emit("error", m, e),
    child: (agent_id: string) => createLogger({ ...ctx, agent_id }),
  };
}

JSON 1行1ログにしておくと、run_idagent_id で後から完全に絞り込めます。先ほどの「6本が混線した」問題は、agent_id でフィルタするだけで該当エージェントの行だけが抜き出せるようになります。プレーンテキストの print を JSON 構造化ログに替える、この一手だけで切り分けの体感が変わります。

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

この記事の続きを読む

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

この記事で得られること
run_id・agent_id・span を貼った構造化ロガーの全実装コード(TypeScript)を取得できます
親エージェントから子エージェントへ相関IDを伝播させ、失敗の発生源を1分で特定する辿り方が分かります
障害の原因切り分け時間を平均40分から5分へ縮めた、入力スナップショットとダッシュボードの運用ルールを学べます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Agents & Manager2026-06-17
どのエージェントがいくら使ったかを会計する — タスク別コスト帰属の設計
月末の請求は1つの数字でも、Gemini 3.5 Flash で複数エージェントを走らせていると、どのタスクが費用を食ったかが見えません。予算で止めるガードとは別に、使用量をタスク別・サイト別の原価へ帰属させる会計設計を、個人運用の実装と数値で共有します。
Agents & Manager2026-06-17
Managed Agents の無人バッチを再実行で壊さない — 冪等性とチェックポイントの設計
Antigravity 2.0 の Managed Agents API で夜間バッチを組むと、途中失敗からの再実行が必ず問題になります。二重実行で投稿が重複した失敗を起点に、冪等キー・チェックポイントストア・再開ロジックの実装を、個人開発の運用実数値とともに共有します。
Agents & Manager2026-06-01
並行エージェントのトークンコストを予算で抑える — 暴走を止めるバジェットガードの設計
複数のエージェントを並行で走らせると、トークン費は気づかないうちに膨らみます。トークンを減らす最適化ではなく、予算で消費を遮断するガバナンス層を Antigravity の並列エージェントに組み込む設計と実装を、6サイト自律運営の実数値とともに共有します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →