はじめに
マルチエージェント システムは AI アプリケーションの未来です。ただし、複数のエージェントを調整することは、単一のエージェントよりもはるかに複雑です。この記事では、マルチエージェント システムを構築する際の設計パターンと課題について説明します。
1. オーケストレーション パターン
1.1 シーケンシャル (パイプライン)
Agent A → Agent B → Agent C → Output
1.2 並列 (ファンアウト/ファンイン)
┌→ Agent B ─┐
Agent A ──►├→ Agent C ─┤──► Agent E
└→ Agent D ─┘
1.3 階層 (スーパーバイザー)
Supervisor
/ | \
Agent A Agent B Agent C
1.4 スウォーム (分散型)
Agent A ←→ Agent B
↕ ↕
Agent C ←→ Agent D
2. コーディングチームの例
# PM analyzes requirements → Developer writes code → Reviewer reviews
pm_agent = Agent(role="Product Manager", ...)
dev_agent = Agent(role="Senior Developer", ...)
reviewer_agent = Agent(role="Code Reviewer", ...)
概要
- 4 パターン: シーケンシャル、パラレル、階層、スウォーム
- 実稼働環境で最も人気のあるスーパーバイザー パターン
- 競合の処理: 優先キュー、投票、エスカレーション
- エラーの伝播: 正常に失敗し、カスケードはありません
演習
- コーディングチームの実装: PM → 開発者 → レビュー担当者
- 並行調査システムの構築(3人のエージェントが同時に調査)
- LangGraph を使用してスーパーバイザー パターンを実装する
- 2 つのエージェントがお互いを待機している場合のデッドロック シナリオを処理する