エージェントチェーン

複数のエージェントをファイル出力やフックを介して順次接続し、一連のワークフローを構成するパターン。エージェントのネスト(サブエージェントからサブエージェントを呼ぶこと)が制限されている場合に、代替として採用される。

動機

エージェントオーケストレーションでは、サブエージェントの深さが1レベルに制限されることが多い(無限ネスト防止のため)。しかし複雑なワークフローでは、「AがBを呼び、BがCを呼ぶ」ような直列パイプラインが必要になる。

エージェントチェーンはこの制約を、ファイルの受け渡しや**フックの自動実行**によって回避する。

仕組み

エージェントA         エージェントB         エージェントC
(仕様作成)    →     (アーキテクチャ)  →   (実装・テスト)
      ↓                     ↓                     ↓
  ファイル出力          ファイル出力            最終成果物
READY_FOR_ARCH       READY_FOR_BUILD           DONE

各エージェントは前のエージェントが出力したファイルを入力として受け取り、処理を完了したら次のステージを示すファイルを出力する。フック(PostToolUseなど)を使って、ファイルの出現を検知して次のエージェントを起動することもできる。

実装パターン

ファイルベースの受け渡し

pm-spec エージェント → spec.md を出力
   ↓ (フックが spec.md の作成を検知)
architect エージェント → architecture.md を出力
   ↓ (フックが architecture.md の作成を検知)
implementer エージェント → 実装ファイルを出力

ステートファイルによる進捗管理

# エージェントAが完了時に書き込む
echo "READY_FOR_ARCH" > .pipeline-state

# フックがステートを監視してエージェントBを起動
if [ "$(cat .pipeline-state)" = "READY_FOR_ARCH" ]; then
  claude --agent architect
fi

直接ネストとの比較

観点 サブエージェントのネスト エージェントチェーン
制御の流れ 親が子の完了を待つ ファイル/フックを介して疎結合
デバッグ 状態が一箇所に集中 ステートファイルで追跡可能
エラー処理 親が一元的に処理 各エージェントが独立して処理
柔軟性 低い(深さ制限あり) 高い(任意の深さのパイプライン)

トレードオフ

関連