🧩

マルチエージェント化すると速くなる、は半分だけ正しい

AI エージェントを 1 体で回していると、どこかで限界が来ます。

  • 調査と実装を同じコンテキストで回してノイズが増える
  • 独立した作業なのに直列で処理して遅い
  • 専門性の違う判断を 1 つのプロンプトに押し込んで精度が落ちる
  • 生成結果の自己採点がなく、そのまま本番に流れる

この段階で「じゃあエージェントを増やそう」と考えるのは自然です。ただ、複数エージェント = 高度 ではありません。設計が雑だと、速くなるどころか、責任分界が曖昧になり、コストもログも増え、失敗原因が追えなくなります。

この記事では、実務でよく使うマルチエージェントオーケストレーションを 4 パターンに分けて整理します。

  1. Sequential(逐次)
  2. Concurrent(並列)
  3. Hierarchical(階層)
  4. Feedback Loop(自己修正)

Claude Code の subagents と OpenAI Agents SDK の manager / handoffs を補助線にしつつ、どの業務にどの型を当てるべきかまで判断できるようにします。MCP や権限境界を含む運用面は、先に公開した「MCP エンタープライズ運用ガイド」と合わせて読むと繋がります。

まず前提: 1エージェントで十分な仕事は多い

マルチエージェント化の前に、単一エージェントで十分なケースを切り分けるべきです。

Anthropic の Claude Code ドキュメントでも、subagent は「タスク固有の専門化」「独立コンテキスト」「ツール制限」が必要なときに効く一方、頻繁な往復や強い共有文脈が必要な作業は main conversation の方が向いていると整理されています。

私の基準はこうです。

単一エージェントで十分

  • 仕様確認から実装まで文脈を切りたくない
  • 作業量が小さい
  • 途中で人間が細かく方向修正する
  • 出力をすぐ目視レビューする

マルチエージェント化すべき

  • 独立タスクを並列化したい
  • 専門性ごとに役割を分けたい
  • 大量ログや調査結果を main context に入れたくない
  • 生成物に機械的な再評価を挟みたい

つまり、マルチエージェントは「高度だから採用する」のではなく、1 体で回すと遅い・汚れる・責任が曖昧になるときに使うものです。

パターン1: Sequential(逐次) — 最も壊れにくい基本形

Sequential は、一つ前の結果を次のエージェントに渡して順番に処理する型です。

例:

  1. 調査エージェントが論点を整理
  2. 設計エージェントがアウトラインを作成
  3. 実装エージェントがコードや原稿を作成
  4. 検証エージェントが差分や品質を確認

OpenAI Agents SDK の documentation でも、コードによるオーケストレーションとして「1つの出力を次の入力へ渡す chaining」が基本パターンとして挙げられています。Claude Code 側でも、subagents を sequence でつなぐ「Chain subagents」が明示されています。

向いている仕事

  • 記事執筆
  • PR レビュー
  • 調査 → 実装 → テスト
  • 障害切り分け → 修正 → 再現確認

強み

  • デバッグしやすい
  • 各段階の責任が明確
  • 失敗点を途中で止めやすい

弱み

  • 遅い
  • 前段の質が悪いと後段が全部汚れる
  • 逐次依存が強いので並列化しにくい

実務では、最初に採るべき既定値はこの型です。マルチエージェント導入を急ぐチームほど、いきなり並列や階層に行きがちですが、まず逐次で業務分解できるかを見た方が事故りません。

パターン2: Concurrent(並列) — 独立タスクだけに使う

Concurrent は、依存関係のない複数タスクを同時に走らせる型です。

Anthropic の subagents ドキュメントでも、独立した調査は「parallel research」で分けるとよいとされています。認証、DB、API のように対象が独立しているなら、別 subagent が同時に調べて、最後に親が統合する形です。

向いている仕事

  • 複数モジュールの調査
  • 複数競合サービスの比較
  • API / DB / frontend の並行監査
  • 複数記事候補の一次調査

強み

  • 速い
  • コンテキストが分離される
  • 調査ノイズを main context に持ち込みにくい

弱み

  • 独立していないタスクを並列化すると破綻する
  • 戻り値の統合が雑だと重複や矛盾が出る
  • 並列数を増やしすぎると、コストと要約負荷が跳ねる

ここで重要なのは、並列にできるのは「依存のない仕事」だけという点です。Claude Code の docs でも、各 subagent が詳細な結果を返しすぎると、結局 main conversation の context を消費すると注意されています。速くしたくて並列化したのに、統合フェーズで詰まるなら逆効果です。

私なら、並列で回すのは次の条件を満たすときだけにします。

  • 入力が共通でも、作業領域が分かれている
  • 途中の相互相談がいらない
  • 出力フォーマットを先に固定できる

パターン3: Hierarchical(階層) — Manager が最終責任を持つ型

Hierarchical は、上位の manager / triage agent が下位の specialist を呼び分ける型です。

OpenAI Agents SDK では、代表的な構成として次の 2 つが整理されています。

  • Manager(agents as tools)
  • Handoffs

Manager は親が会話の主導権を持ち続け、specialist を tool として使います。Handoffs は振り分け後に specialist が会話を引き継ぎます。

向いている仕事

  • 問い合わせの一次振り分け
  • AI オペレーションデスク
  • 開発支援チャットの triage
  • 役割別の業務受付

強み

  • ルーティング責任を 1 箇所に集約できる
  • ガードレールやレート制御を manager に置ける
  • specialist を差し替えやすい

弱み

  • 親の設計が悪いと全体が悪化する
  • handoff 型は責任境界が見えにくくなりやすい
  • nested delegation を増やすと追跡困難になる

実務では、ユーザーに見える窓口を 1 つに保ちたいなら manager 型が扱いやすいです。逆に、専門家に会話ごと引き渡したいなら handoff 型が向きます。

ただし、Claude Code の subagents には「subagents cannot spawn other subagents」という制約があります。つまり、1 セッション内で深い階層をネストする設計には向きません。Claude Code で長く並列・階層を回したいなら、docs にある通り agent teams の方が適しています。

パターン4: Feedback Loop(自己修正) — 品質を上げるが、止めどころが重要

Feedback Loop は、生成エージェントと評価エージェントを組み合わせ、合格するまで繰り返す型です。

OpenAI の Agent orchestration ガイドでは、while ループで「実行する agent」と「評価する agent」を回し、評価が通るまで改善する型が明示されています。これはコード、記事、要約、分類、抽出タスクでかなり強いです。

向いている仕事

  • テスト付きコード生成
  • 記事や提案書の下書き改善
  • structured output の整形
  • ガイドライン準拠チェック

強み

  • 単発より品質が上がりやすい
  • 合格基準を明示できる
  • 人間レビュー前の粗いミスを減らせる

弱み

  • ループが止まらない
  • 評価者の質が低いと誤った最適化をする
  • コストが読みにくい

この型で一番大事なのは、終了条件をコードで持つことです。

  • 最大反復回数
  • 評価スコア閾値
  • 必須チェック項目
  • 人間にエスカレーションする条件

ここを曖昧にすると、永遠に自己批評して終わらないワークフローになります。

4パターンの使い分け早見表

パターン速さ安定性向く用途
Sequential低〜中執筆、レビュー、実装フロー
Concurrent独立調査、横断監査
Hierarchical受付、振り分け、窓口統合
Feedback Loop中〜高品質改善、評価ゲート

私のおすすめは、Sequential を既定値にして、必要に応じて Concurrent と Feedback Loop を足し、最後に Hierarchical を検討する順番です。いきなり manager を立てて全部自動化しようとすると、たいてい観測不能になります。

本番運用で見るべき指標

マルチエージェント設計は、動いた時点では成功に見えます。問題は運用 1 週間後です。見るべきは次です。

  • 1 タスクあたりの総レイテンシ
  • エージェントごとの失敗率
  • handoff / delegation の回数
  • 人間エスカレーション率
  • トークン消費とコスト
  • 同じ失敗の再発回数

特に Hierarchical と Feedback Loop は、ログ設計が弱いと何が起きたか分からなくなります。MCP や社内ツールまで絡むなら、権限境界と監査を先に決めておくべきです。この点は「MCP エンタープライズ運用ガイド」の前提そのものです。

また、オーケストレーションをうまく回すには、個々のエージェント性能より ハーネス側の設計 が効きます。役割分担、権限制限、出力フォーマット、評価基準まで含めて設計する考え方は、「Harness Engineering とは?」で詳しく整理しています。

まとめ

マルチエージェントオーケストレーションは、「複数に分ければ賢くなる」話ではありません。依存関係、責任境界、終了条件を設計する話です。

実務では、次の順番で考えるとぶれにくいです。

  1. まず単一エージェントで足りるか確認する
  2. 順番に渡すだけなら Sequential
  3. 独立タスクなら Concurrent
  4. 窓口統合が必要なら Hierarchical
  5. 品質を上げたいなら Feedback Loop

この順番を飛ばして最初から複雑化すると、速くなる前に壊れます。逆に、4 パターンを明示的に使い分けるだけで、AI ワークフロー設計はかなり安定します。

一次情報としては、Anthropic の Claude Code subagents docs と、OpenAI Agents SDK の Agent orchestration guide が特に参考になります。

WRITTEN BY nidoneko

Full-stack engineer with 8+ years of experience in TypeScript, React, Node.js, and cloud-native development across healthcare, finance, HR, and IoT domains.

View Profile →