マルチエージェント設計の中心は、「エージェント群をどう編成し、制御を誰が持つか」=トポロジの選択だ。トポロジはレイテンシ・出力品質・トークンコストの三者を直接左右する。まず代表的な8パターンを1枚の図鑑で。
コスト直観として、完全結合は n²·T、スター/チェーン/パイプラインは n·T。これがレイテンシとトークンコストに直結する。
| パターン | 制御 | 結合度 | スケール | デバッグ性 | 向くユースケース |
|---|---|---|---|---|---|
| Orchestrator-Worker | 中央集権(スター) | 低 | 中(中央がボトルネック) | 高 | 疎結合に並列分解できる調査・収集 |
| Hierarchical | 多層中央集権(ツリー) | 低〜中 | 高(選択が対数的) | 中 | 数十体規模・部門分割できる大規模 |
| Swarm / Handoff | 分散・制御移譲 | 中 | 低〜中(完全メッシュは O(n²)) | 低 | 専門領域を動的に行き来する対話 |
| Pipeline | 固定・非中央 | 低 | 低(並列不可) | 高 | 順序依存の定型処理(ETL) |
| Map-Reduce | 分岐合流 | 低 | 高(最大-80%レイテンシ) | 中 | 独立分割できる並列調査・並列レビュー |
| Blackboard | 間接・データ駆動 | 低 | 中 | 低 | 解の組立順を決められない探索・診断 |
| Contract-Net | 分散・市場(入札) | 低 | 高(動的負荷分散) | 中 | 異質な能力/負荷へ動的に配分 |
| Debate / Critic | 中央judge+疎結合 | 中 | 低(ラウンドで膨張) | 中 | 推論品質最重視の難問QA・検証 |
| Planner-Executor | 計画/実行を二層分離 | 低 | 中〜高 | 高 | ステップが多く構造が読めるタスク |
A2Aの上でエージェントが互いを見つけて仕事を渡す仕組みは、2つのオブジェクトに集約される。
能力を機械可読に公開するJSON。標準配置は https://{domain}/.well-known/agent-card.json(RFC 8615 の well-known URI)。主要フィールドは skills(id/name/description/入出力モード/例)、securitySchemes、capabilities(streaming / pushNotifications / extensions)。v0.3で AgentCardSignature(JWS) を追加し、ドメイン所有者の発行であることを暗号的に検証できるようにした。ただし記述は自己申告で、署名は「ドメイン所有の証明」であって「記述が真実である保証」ではない(能力の過大申告という攻撃面が残る)。
仕事は Task として進み、状態が submitted → working → input-required → completed/failed/canceled と遷移する。Message(role/parts)、Artifact(成果物)、Part(text/file/structured を多モーダルに運ぶ最小単位)が乗る。input-required で停止して人間や別エージェントの入力を待てる——プロトコルレベルで human-in-the-loop を表現できるのがポイント。
トポロジを決めても、その上で「情報をどう渡すか」がもう一段の設計になる。本質的トレードオフは4軸——(1) 結合度(直接 vs 間接)、(2) 状態の持ち方(履歴引き継ぎ vs 共有state vs イベントログ)、(3) 同期/非同期、(4) 構造化メッセージ vs フリーテキスト。
transfer_to_<agent> ツールとして提示され、ローカルでJSONバリデーションされる。会話履歴を全量引き継ぐと context が肥大し、相互 handoff はループ/たらい回しのリスク。軸4も重要だ。構造化メッセージ(role・handoff先・成果物を型で運ぶ)は検証・監査・再現がしやすい一方、表現力は落ちる。フリーテキストは柔軟だが、何が伝わったかが曖昧になる。A2Aが Message/Artifact/Part という構造化エンベロープを持つのは、越境連携で「何が渡ったか」を機械可読に保つためだ。
2025年に主要ベンダーが収束した定番は「オーケストレータ+独立コンテキストの使い捨てサブエージェント」だ。ここがマルチエージェントの品質を最も左右する。
.work/<team>/step-N-output.md に成果物を保存し、次ステップは前ステップの成果物ファイルだけ読む(=調査全体を context に載せない)。context_variables +メッセージ履歴を明示移譲する。共通する設計思想は「明示的に渡したものだけが伝わる」——暗黙の共有に頼らないこと。
パターンが揃った。第3回「実装編」では、フレームワーク(LangGraph / CrewAI / AutoGen / OpenAI Agents SDK / ADK / Claude Agent SDK)の設計思想と選定基準、作業+レビューのペア構成、マルチエージェント特有の失敗モード(MAST)とセキュリティ(信頼境界・間接インジェクション)まで、実装と運用に落とす。