# AIエージェント開発の意思決定ポイント
# オーケストレーション vs コレオグラフィ 🎼
🎯 ポイント
複数のエージェントやサービスを協調させるとき、「指揮者を置くか、各自が自律的に踊るか」を選ぶ必要があります。
オーケストレーションは中央の指揮者がすべてを統制する方式。コレオグラフィは各コンポーネントがイベントに反応して自律的に動く方式。制御の所在が根本的に異なるため、障害処理・監査・デバッグ・スケーリングの設計が全く変わります。
📋 概要
オーケストレーションでは中央のオーケストレータが全体のワークフローを定義し、各コンポーネントを順次または並列に呼び出し、結果を集約して次のステップを決定します。Temporal、Airflow、LangGraphのSupervisorパターンなどが典型的な実装基盤です。コレオグラフィでは各コンポーネントがイベントバス(Kafka、EventBridge等)上のイベントを購読し、関心のあるイベントに自律的に反応して新たなイベントを発行します。全体の制御フローを知る中央は存在しません。
🔍 意思決定のポイント
判定の主軸は **説明責任(accountability)** です。
🏛️ **オーケストレーションに倒す条件**:
- 処理の全体像と各ステップの判断根拠を事後に説明する必要がある
- 審査→承認→実行のような厳密な順序制約がある
- LLMの出力を次のステップに渡す前に検証・変換が必要
- 全体の予算(トークン・時間・コスト)を中央で管理したい
- コンポーネント数が概ね10以下
🌊 **コレオグラフィに倒す条件**:
- 高スループット・高スケールが求められ、中央がボトルネックになる
- 多数のチームが独立してコンポーネントを開発・デプロイしている
- イベントへの「反応」が主な処理パターン(通知、ログ、非同期集計)
- 実行順序の厳密な追跡が不要
💡 要点と詳細
🟢 **オーケストレーションの強み**は制御の明確さと監査性です。ワークフローの全体像が1箇所に定義されているため「今どこまで進んでいるか」「なぜこのステップが実行されたか」が常に明らかです。障害時のリカバリもどのステップで失敗したかを特定して再開できます。エージェント固有の利点として、LLMの出力を検証してから次ステップに進められるため、ハルシネーションの伝播を各ステップで遮断できます。
🟡 **コレオグラフィの強み**は疎結合とスケーラビリティです。各コンポーネントはイベントスキーマだけを共有し、他の存在を知りません。新コンポーネントの追加はイベント購読の追加だけで、既存コンポーネントに変更不要です。独立スケールも可能で、イベントバスがバッファとして一時的な負荷偏りを吸収します。
⚖️ トレードオフ
| 観点 | オーケストレーション | コレオグラフィ |
|---|---|---|
| 全体状態の可視性 | 常に明確 🟢 | イベントログの突合が必要 🔴 |
| 監査性 | 高い(因果関係を示せる) | 低い(分散した追跡が必要) |
| スケーラビリティ | 中央がボトルネック | 各コンポーネントが独立スケール |
| 結合度 | 高い(中央への変更が集中) | 低い(スキーマ共有のみ) |
| ハルシネーション制御 | ステップごとに検証可 | 各自でガードレールが必要 |
| チーム独立性 | オーケストレータ変更で衝突 | 独立開発・デプロイ可 |
🛠️ ユースケース
🔵 **オーケストレーションが向くケース**: 業務系システム、規制対象の処理、審査・承認ワークフロー、LLMの出力検証が必要な処理。説明責任が求められる環境。
🔴 **コレオグラフィが向くケース**: 高スループットのイベント駆動処理、通知・ログ集約・分析パイプライン。多数のチームが独立してコンポーネントを開発する大規模システム。
📌 **デフォルト戦略**: 業務系システムではオーケストレーション(中央集権)がデフォルトです。AIエージェントを含むシステムでは、LLMの確率的な出力を制御・検証する中央の存在が安全性と監査性の両面で重要です。実用的な折衷は「中核は中央集権、周辺探索はイベント駆動」で、主要な業務フローはオーケストレータが管理し、周辺の非同期処理はイベント駆動で疎結合に構成する形です。
#
AIエージェント# #
ソフトウェアアーキテクチャ#