Skip to main content

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 playManager / 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
CrewAIRole-based crew、task delegation
LangGraphグラフ構造で multi-agent を組む
OpenAI Agents SDKHandoffs と guardrails の primitive
MetaGPTSOP に従う 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 ii が局所履歴 htih_t^i に基づいて action atia_t^i を選びます。

atiπi(aihti)a_t^i\sim\pi_i(a^i\mid h_t^i)

全体の成果は、joint action at=(at1,,atn)\mathbf{a}_t=(a_t^1,\ldots,a_t^n) によって決まります。

Rt=R(st,at)R_t=R(s_t,\mathbf{a}_t)

この式の気持ちは、「各 agent が個別に良い行動を選んでも、組み合わせとして良いとは限らない」ということです。役割分担、通信、重複作業の回避、conflict resolution が重要になります。

Coordinator 型では、中央の policy が subtask assignment を決めます。

ziπcoord(ziht,i)z_i\sim\pi_{\mathrm{coord}}(z_i\mid h_t, i)

ここで、ziz_i は agent ii に渡される役割やタスクです。良い coordinator は、独立に並列化できる作業と、順序依存のある作業を区別します。

関連ページ

主なソース