Skip to content

エージェント概念の分類

マルチエージェントシステムの用語を、抽象レベルで整理する

このドキュメントについて

LLMベースのマルチエージェントシステムには、カスタムエージェントサブエージェントメタエージェントオーケストレーターSwarm など、フレームワークごとに微妙に意味の異なる用語が氾濫している。本ドキュメントでは、これらを抽象レベルで4層に分けて整理し、用語間の重なりと独立性を明示する。

具体的な Claude Code 実装は what-is-subagent.md、エージェント間通信プロトコルは what-is-a2a.md を参照。

なぜ用語整理が必要か

よくある誤解

エージェント用語は、フレームワークの宣伝文や記事ごとに同じ語が違う意味で使われることが多い。

  • 「メタエージェント」が、ある記事では設計パターン、別の記事では特定の製品機能を指す
  • 「カスタムエージェント」と「サブエージェント」が並列に語られるが、実際には包含関係にある
  • 「Swarm」がフレームワーク名なのか、設計パターンなのか混在する

これらの混乱は、異なる抽象レベルの用語を平坦に並べて比較してしまうことに起因する。

抽象レベルの違いを明示する

下表のように、4つのレイヤーに分けて整理すると見通しが良くなる。

抽象レベル用語の例性質
設計パターンOrchestrator-Worker、Swarm、Hierarchical Team、メタエージェントアーキテクチャ・パターン名
実行ロールOrchestrator / Supervisor、Planner、Worker、Criticパターン内の位置・責務
実装単位カスタムエージェント、サブエージェント、バックグラウンドエージェント具体的な実装形態
ライフサイクル属性Persistent / Ephemeral、Spawned / Forked実装単位を修飾する形容詞

つまり、「カスタムエージェント」と「サブエージェント」は並列ではない。サブエージェントは多くの場合、ユーザーが Markdown 等で定義したカスタムエージェントとして実装される。「メタエージェント」も特定の製品機能ではなく、Orchestrator が動的にサブエージェントを生成するパターン全般を指す概念用語である。

概念マップ

各レイヤーの定義

1. 設計パターン

エージェントの組み合わせ方を示すアーキテクチャ・パターン。

パターン定義代表例
Orchestrator-Worker統括役(Orchestrator)が複数のサブエージェント(Worker)にタスクを委任する階層型Anthropic Multi-Agent Research System、Claude Code
Hierarchical Team階層を明示した複数エージェントのチーム。役割(Role)が固定CrewAI、AutoGen
Swarm階層を最小化し、エージェント同士がハンドオフで協調する自律分散型OpenAI Swarm(実験的・後継は Agents SDK)
メタエージェントエージェントを動的に生成・管理するエージェント、という設計コンセプト製品機能名ではなく、Orchestrator が spawn する形態の総称

「メタエージェント」を製品機能名のように扱う記事も見かけるが、現時点で「Meta Agent」という名称の確立した製品機能は存在しない。概念用語として使うのが安全である。

2. 実行ロール

設計パターンの内側で、各エージェントが担う責務。

ロール責務
Orchestrator / Supervisor / Lead Agentタスク分解、委任判断、結果集約、動的調整
Planner計画立案、ステップ分解
Worker / Specialist個別の専門タスクを実行
Critic / Reviewer / Evaluator出力の検証、採点、再実行判断

Anthropic の Multi-Agent Research System では、Orchestrator にあたるエージェントを "lead agent" と呼んでいる。同じ責務を持つロールでも、フレームワークによって呼称が異なる点に注意。

3. 実装単位

実際にコード/設定ファイルとして存在するエージェントの実装形態。

実装単位定義代表的な仕組み
カスタムエージェントユーザーが宣言的に定義したエージェント(プロンプト、使用可能ツール、権限、モデル)。サブエージェントを含む上位概念Claude Code の .claude/agents/*.md、GitHub Copilot の .agent.md
サブエージェント親エージェントから委任され、独立したコンテキストウィンドウで実行される子エージェント。中間ツール呼び出しは親に流入せず、最終結果のみ返すClaude Code Subagents、Claude Agent SDK Subagents
バックグラウンドエージェント非同期・長時間実行されるエージェント。セッションを跨いで状態を保持できるGitHub Copilot Cloud Agents

Claude Code における具体的な定義方法は what-is-subagent.md を参照。

4. ライフサイクル属性

実装単位を「どのように生成・破棄するか」で修飾する性質。

属性意味
Persistentセッションを跨いで状態を保持。バックグラウンドエージェントが典型
Ephemeralタスク完了時に破棄。サブエージェントの一般的な振る舞い。コンテキスト汚染防止に寄与
Spawned / Forked親から動的に生成される。Ephemeral と組み合わさることが多い

なぜ独立コンテキストが重要か

サブエージェントの最大の利点は、親セッションのコンテキストウィンドウを保護することにある。

独立コンテキストにより、以下が実現される。

  • トークン効率: 探索的なツール呼び出しの中間結果が親のコンテキストを圧迫しない
  • エラー隔離: サブエージェントの失敗が親に伝播しにくい
  • 並列性: 複数サブエージェントを同時実行可能(Anthropic の Multi-Agent Research System では lead が 3〜5 個のサブエージェントを並列起動)

フレームワーク横断対応表

実装と独立コンテキスト

フレームワーク実装単位の定義場所独立コンテキストでのサブ実行
Claude Code.claude/agents/*.md✅ Subagents
GitHub Copilot / VS Code.github/agents/*.agent.md✅ Custom Agents
OpenAI Agents SDKPython コード(Agent クラス)✅ Handoff
CrewAIPython コード(Agent✅ Task delegation
LangGraphグラフノード✅ Sub-graphs

設計パターンと拡張機能

フレームワーク階層パターンエージェント間通信バックグラウンド実行
Claude CodeOrchestrator + SubagentsA2A 対応検討中△(タスク扱い)
GitHub Copilot / VS CodeCoordinator + Worker✅ Cloud Agents
OpenAI Agents SDKTriage + Specialist
CrewAICrew (Manager + Workers)
LangGraphState Machine

.agent.mdAGENTS.md は別物である点に注意:

  • .agent.md: GitHub Copilot / VS Code の個別カスタムエージェント定義ファイル(旧 Custom Chat Modes)
  • AGENTS.md: リポジトリルートに置くコーディングエージェント向け README。2025年12月に OpenAI と Anthropic が Linux Foundation(Agentic AI Foundation)へ寄贈し、業界標準化された

使い分けの指針

シーン推奨パターン実装単位
単純な単一タスク単一エージェントカスタムエージェント
コンテキスト保護が必要(探索的調査、コードベース横断)Orchestrator-Workerサブエージェント(Ephemeral)
複雑な統括・タスク分解Hierarchical TeamOrchestrator + 複数 Worker
長時間非同期処理Background Jobバックグラウンドエージェント(Persistent)
創発的・柔軟な協調Swarmハンドオフベース

トレードオフ

階層化・並列化により頑健性と精度が向上する一方で、トークンコストとレイテンシは増大する。Anthropic の Multi-Agent Research System の報告では、Claude Opus 4 を lead、Claude Sonnet 4 を subagents とする構成が、単一 Opus 4 を社内 research eval で 90.2% 上回った。一方で token 消費が性能差の 80% を説明するとも報告されており、コストとのトレードオフが大きい。

「常に多エージェント構成が良い」わけではなく、タスク特性とコスト制約に応じた選択が必要である。

関連プロトコル

エージェント周辺には複数のプロトコルが存在し、混同しやすいため整理する。

プロトコル提唱元目的
MCP(Model Context Protocol)AnthropicLLM が外部ツール/データソースに接続するための標準。エージェント内部のツール接続。詳細: what-is-mcp.md
A2A(Agent-to-Agent Protocol)Google → Linux Foundationエージェント間の対等な通信。詳細: what-is-a2a.md
AGENTS.mdOpenAI / Anthropic 他(Linux Foundation 寄贈)リポジトリルートに置く、コーディングエージェント向け README

MCP と A2A は補完関係である。MCP がエージェントとツールを結ぶ「縦」の接続なら、A2A はエージェント同士を結ぶ「横」の接続にあたる。

出典

一次情報

二次情報(解説記事・補足)

次に読むべきドキュメント

目的ドキュメント
Claude Code の具体的なサブエージェント実装what-is-subagent.md
Skill とサブエージェントの選択判断サブエージェント vs Skills
品質ゲート (Validator型) の実践サブエージェントを品質ゲートとして使う
Agent/Sub-agent/Skill/MCP の 4者比較FAQ: 4者の違い
エージェント間通信プロトコルwhat-is-a2a.md
MCP の詳細what-is-mcp.md
三層アーキテクチャ(Agent / Skills / MCP)03-architecture.md
実装パターン集patterns.md

Released under the MIT License.