Multi-Agent Systems
Multi-Agent Systems は、複数の LLM agent が 役割分担・協力・議論 しながら task を解く構成です。Single agent では難しい複雑 task に対応できる一方、coordination や cost の問題も発生します。
なぜ multi-agent か
- 役割分担: planner / executor / reviewer などで責務を分離
- 並列性: 独立 sub-task を同時実行
- 多視点: 異なる persona で異なる解を出させて統合
- スキルの専門化: ドメイン別の tool / prompt を持つ専門 agent
- Self-debate: 議論で誤りを発見
典型パターン
| パターン | 内容 |
|---|---|
| Orchestrator-Worker | 中央 agent が sub-task を worker に分配 |
| Debate | 複数 agent が議論し、judge が判定 |
| Role play | Manager / Engineer / QA など役割で分担 |
| Pipeline | 順番に処理 (writer → editor → fact-checker) |
| Swarm | 多数 agent が並列に探索 |
Orchestrator-Worker
最も実用的なパターンです。Orchestrator は plan を立て、worker agent に sub-task を割り当て、結果を統合します。Anthropic の "Building Effective Agents" でも推奨される構造です。
Debate
Debate では、複数 agent が同じ問題について異なる結論を主張し、議論を通じて精度を上げます。Math、reasoning、code review などで効果があります。Judge agent が最終結論を選びます。
代表的 framework
| Framework | 特徴 |
|---|---|
| AutoGen (Microsoft) | Conversable agents、GroupChat、code execution |
| CrewAI | Role-based crew、task delegation |
| LangGraph | グラフ構造で multi-agent を組む |
| OpenAI Agents SDK | Handoffs と guardrails の primitive |
| MetaGPT | SOP に従う software company simulation |
課題
| 課題 | 内容 |
|---|---|
| Cost / latency | 呼び出し回数が agent 数倍に |
| Coordination failure | 互いに誤った前提を伝播 |
| Hallucination amplification | 一つの誤りが全体に拡散 |
| Cycle / 無限ループ | 終了条件の設計 |
| Debug の難しさ | 多数の trace |
実用では、最小限の multi-agent で済ませる ことが推奨されます。Anthropic は「single agent + tool + critic で十分なことが多い」と指摘しています。
数式で見る multi-agent coordination
Multi-agent system では、agent が局所履歴 に基づいて action を選びます。
全体の成果は、joint action によって決まります。
この式の気持ちは、「各 agent が個別に良い行動を選んでも、組み合わせとして良いとは限らない」ということです。役割分担、通信、重複作業の回避、conflict resolution が重要になります。
Coordinator 型では、中央の policy が subtask assignment を決めます。
ここで、 は agent に渡される役割やタスクです。良い coordinator は、独立に並列化できる作業と、順序依存のある作業を区別します。
関連ページ
主なソース
- AutoGen: https://arxiv.org/abs/2308.08155
- CrewAI docs: https://docs.crewai.com/
- MetaGPT: https://arxiv.org/abs/2308.00352
- Anthropic Building Effective Agents: https://www.anthropic.com/research/building-effective-agents
- LangGraph multi-agent: https://langchain-ai.github.io/langgraph/concepts/multi_agent/