OpenClawをまだインストールしていませんか?ワンラインインストールコマンドはこちら
curl -fsSL https://openclaw.ai/install.sh | bashiwr -useb https://openclaw.ai/install.ps1 | iexcurl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd && del install.cmd- OpenClawチュートリアルは3つのマルチエージェント協調メカニズム――SubAgent(子エージェント)、Agent Teams、AgentToAgent(クロスエージェント通信)――を提供しており、それぞれ異なるレベルのタスク複雑度とスケールに対応しています[1]
- SubAgentは「親子委任」シナリオに最適です:親エージェントが専門化された子エージェントにサブタスクを割り当て、子エージェントは完了時に結果を返します。パイプライン型ワークフローに適しています[2]
- Agent Teamsは複数のエージェントがピアツーピアまたは階層型の配置で協調し、コンテキストとメモリを共有することをサポートしており、リアルタイムの調整が必要な複雑なタスクに最適です[3]
- AgentToAgentプロトコルはOpenClawインスタンス間のエージェント間通信を可能にし、異種環境における分散エージェント協調をサポートします[4]
- 異なる役割に適切なモデルを選定(ルーティングには軽量モデル、推論には高性能モデル)することで、出力品質を維持しながら全体のトークンコストを30〜50%削減できます[1]
AIエージェントが同時にウェブページをクロールし、データを分析し、レポートを生成し、コードをレビューする必要がある場合——単一のエージェントではとても処理しきれません。OpenClawのマルチエージェントアーキテクチャはまさにこのために構築されました:複数の専門化されたエージェントがそれぞれの役割を果たし、チームとして協力して、以前は想像もできなかった複雑な自動化タスクを達成するのです。[6]
本記事はOpenClawシリーズの第18弾であり、OpenClawマルチエージェント協調の完全な技術アーキテクチャに焦点を当てています。SubAgent(子エージェント)、Agent Teams、AgentToAgent(クロスエージェント通信)という3つのコアメカニズムを分解し、その設計原理、設定方法、適用シナリオを一つずつ検証します。また、すぐに使えるopenclaw.jsonマルチエージェント設定例、パフォーマンスチューニング、セキュリティベストプラクティスも提供します。
1. マルチエージェント協調が必要な理由
OpenClawマルチエージェントの技術的詳細に入る前に、まず根本的な質問を明確にしましょう:いつ単一エージェントからマルチエージェントアーキテクチャへのアップグレードが本当に必要になるのでしょうか?
1.1 単一エージェントの3つのボトルネック
モデルがどれほど強力であっても、単一のAIエージェントは常に以下の制限に直面します。
- コンテキストウィンドウの上限:200Kトークンのコンテキストウィンドウがあっても、タスクが数十万行のコード、数百のドキュメント、リアルタイムのウェブデータを同時に保持する必要がある場合、単一エージェントのメモリでは足りません。マルチエージェントアーキテクチャは分散メモリでこれを解決します——各子エージェントは自分の担当範囲内のコンテキストのみを維持すればよいのです
- 認知過負荷:単一のエージェントが法務分析、財務計算、コードレビューの間を常に切り替える必要がある場合、タスクチェーンが長くなるにつれて出力品質が目に見えて低下します。学術研究ではこれを「注意力の希薄化効果」と呼んでいます
- シーケンシャルレイテンシ:単一エージェントはサブタスクを順次的にしか完了できません。4つの独立したサブタスクにそれぞれ5分かかる場合、単一エージェントは20分必要ですが、4つのOpenClaw SubAgentが並列実行すると、調整オーバーヘッドを含めて約6〜7分で済みます
1.2 マルチエージェントを有効にすべきタイミング
すべてのタスクがマルチエージェントを必要とするわけではありません。以下が判断基準です。
- 独立したサブタスクに分解可能:サブタスク間の依存関係が少ないほど、マルチエージェントによる高速化がより顕著です
- 異なる専門領域が必要:タスクがウェブスクレイピング、データ分析、テキスト生成など多様なスキルセットを同時に必要とする場合、専門化された子エージェントは汎用エージェントよりも格段に優れた出力を生みます
- コストに敏感なシナリオ:すべてのサブタスクに最も高価なモデルは必要ありません。ルーティング判断にGPT-4o-mini、深い推論にClaude Opusを使用する——この「混合モデル」戦略はマルチエージェントシステム独自のコスト優位性です
- 高い信頼性が必要:マルチエージェントアーキテクチャは本質的に冗長性をサポートします——子エージェントが1つ障害を起こしても、バックアップエージェントが引き継ぎ、全体のワークフローに影響しません
上記の基準に2つ以上該当するシナリオであれば、OpenClawのマルチエージェント設定を真剣に検討する価値があります。[1]
2. OpenClawのマルチエージェントアーキテクチャ概要
OpenClawは、シンプルから複雑まで明確に階層化された3つのマルチエージェント協調メカニズムを提供しています:SubAgent(子エージェント)、Agent Teams(チーム協調)、AgentToAgent(クロスエージェント通信)。それぞれの違いと適用シナリオを理解することが、正しい選択への第一歩です。[1]
2.1 3つのメカニズムの位置づけ
- SubAgent(子エージェント):一対多の親子関係。親エージェントがSubAgentにサブタスクを委任し、SubAgentは完了時に結果を報告します。明確に定義されたパイプライン型ワークフローに最適です[2]
- Agent Teams:多対多のピアツーピアまたは階層型協調。複数のエージェントを「チーム」に編成し、共有コンテキスト、メッセージキュー、コーディネーター役割を通じて複雑なタスクを完了します。リアルタイムの通信と動的タスク割り当てが必要なシナリオに最適です[3]
- AgentToAgent(クロスエージェント通信):クロスインスタンス、クロス環境のエージェント間通信プロトコル。エージェントが異なるマシンや異なるOpenClaw Gatewayインスタンスに分散している場合、構造化メッセージングプロトコルを通じてリモート協調を実現します[4]
2.2 選び方
選択の核心原則は:問題を解決できる最もシンプルなメカニズムを使用することです。
- 「親エージェントがタスクを割り当て、子エージェントが結果を返す」という要件であれば → SubAgentを使用
- 複数のエージェントが状態を共有し、リアルタイムで通信し、タスク割り当てを動的に調整する必要があれば → Agent Teamsを使用
- エージェントが異なるサーバーや異なる組織に分散している場合 → AgentToAgentを使用
実際の運用では、3つのメカニズムを組み合わせて使用できます:Agent Team内のメンバーがSubAgentを通じてさらにサブタスクを委任し、AgentToAgentを通じて外部エージェントと通信することも可能です。
3. SubAgent:親子委任アーキテクチャ
SubAgentはOpenClawのマルチエージェントシステムにおいて最も基本的で最もよく使用されるメカニズムです。核心的なコンセプトはシンプルです:実行中に親エージェントが特定のサブタスクを1つ以上のOpenClaw SubAgentに委任して処理させ、子エージェントが結果を親エージェントに返してワークフローを継続します。[2]
3.1 SubAgentのワークフロー
OpenClaw SubAgentのライフサイクルは以下の通りです。
- ステップ1 — タスク委任:親エージェントが
subagent.delegate()を呼び出し、タスクの説明、必要なスキル、コンテキストデータを渡します - ステップ2 — 子エージェントの初期化:OpenClawが設定に基づいて対応する子エージェントインスタンスを検索または作成し、専用のシステムプロンプトとスキルをロードします
- ステップ3 — 独立実行:子エージェントが自身の独立したコンテキスト内でタスクを完了し、自身にバインドされたツールとモデルを使用します
- ステップ4 — 結果返却:子エージェントが構造化フォーマットで実行結果を親エージェントに返し、設定に応じて後続の再利用のためにコンテキストを保持することもあります
3.2 SubAgentの設定詳細
openclaw.jsonでSubAgentを定義するための完全な設定は以下の通りです。
{
"agents": {
"defaults": {
"model": {
"primary": "claude-opus-4-6"
}
},
"subagents": {
"code-reviewer": {
"description": "コードレビュー専門の子エージェント",
"model": {
"primary": "claude-sonnet-4-6",
"fallbacks": ["gpt-4o"]
},
"system_prompt": "You are a senior code reviewer. Focus on code quality, security vulnerabilities, and performance issues.",
"skills": ["code-analysis", "security-scan"],
"max_tokens": 8192,
"timeout": 120,
"context_retention": "session"
},
"web-researcher": {
"description": "ウェブ検索とデータ収集担当の子エージェント",
"model": {
"primary": "gpt-4o",
"fallbacks": ["claude-sonnet-4-6"]
},
"system_prompt": "You are a professional web researcher. Skilled at searching, filtering, and organizing information from the internet.",
"skills": ["web-search", "web-scrape", "summarize"],
"max_tokens": 4096,
"timeout": 180,
"context_retention": "task"
},
"data-analyst": {
"description": "データ分析と可視化の子エージェント",
"model": {
"primary": "claude-opus-4-6"
},
"system_prompt": "You are a data scientist. Skilled in data cleaning, statistical analysis, and chart generation.",
"skills": ["data-processing", "chart-generation", "csv-parser"],
"max_tokens": 16384,
"timeout": 300
}
}
}
}
各SubAgentの主要な設定パラメータ:
model:子エージェントが使用するモデルで、親エージェントとは独立して設定できます。ルーティングタスクには軽量モデル、分析タスクには高性能モデルを使用しますsystem_prompt:子エージェントの役割定義。明確な役割記述により出力品質が大幅に向上しますskills:子エージェントが利用可能なスキルのリスト。OpenClawはこのリストを使用して子エージェントのツールアクセス範囲を制限します[2]timeout:子エージェントの最大実行時間(秒)。タイムアウト時、親エージェントはエラー通知を受け、フォールバックメカニズムをトリガーできますcontext_retention:子エージェントのコンテキスト保持ポリシー —taskはタスク終了時にコンテキストを解放、sessionはセッション全体でコンテキストを保持
3.3 SubAgentの典型的なユースケース
OpenClaw SubAgentは以下のシナリオに最適です。
- コードレビューパイプライン:親エージェントがPull Requestを受け取った後、「セキュリティスキャン子エージェント」「スタイルチェック子エージェント」「パフォーマンス分析子エージェント」に並列実行を委任し、親エージェントがレビューレポートを統合します
- コンテンツ制作ワークフロー:親エージェントが記事のアウトラインを計画した後、各セクションを異なるライティング子エージェントに委任し、親エージェントが校正とフォーマットを統一します
- データ処理パイプライン:親エージェントが生データをバッチで複数の子エージェントに配布して並列クリーニングと変換を行い、結果をマージします
3.4 CLIでのSubAgent管理
OpenClawは子エージェント管理のための完全なCLIコマンドセットを提供しています。
# 設定済みの全エージェントを一覧表示
openclaw agents list
# 子エージェントを追加
openclaw agents add code-reviewer --model claude-sonnet-4-6
# Gatewayログでエージェント実行を追跡
openclaw logs --follow
# 子エージェント設定を動的に追加(openclaw.jsonに書き込み)
openclaw config set agents.subagents.translator '{"description": "翻訳子エージェント", "model": {"primary": "gpt-4o"}, "system_prompt": "You are a professional translator", "skills": ["translation"], "timeout": 60}'
4. Agent Teams:チーム協調
タスクの複雑さが「親子委任」の範囲を超え、複数のエージェントがリアルタイムで通信し、状態を共有し、タスク割り当てを動的に調整する必要がある場合——OpenClaw Agent Teamsの出番です。[3]
4.1 Agent TeamsとSubAgentの根本的な違い
SubAgentは「私がやることを指示し、あなたがそれを実行する」という親子モデルに従い、Agent Teamsは「どうやるか一緒に議論しよう」というチームモデルに従います。具体的な違いは以下の通りです。
- 通信方向:SubAgentの通信は一方向(親 → 子 → 親);Agent Teamのメンバーは多方向で通信可能
- コンテキスト共有:SubAgentはそれぞれ独立したコンテキストを持つ;Agent Teamsは共有メモリをサポート
- ロールの柔軟性:SubAgentのロールは設定時に固定;Agent Teamsは動的なロール切り替えとタスク再割り当てをサポート
- 調整メカニズム:SubAgentは単一の親エージェントが制御;Agent Teamsはオーケストレーター、ピアツーピア、階層型の3つの調整モードをサポート
4.2 共有メモリ
Agent Teamメンバー間の状態共有は、チーム協調をSubAgentと区別する重要な機能です。OpenClawは構造化された共有メモリメカニズムを提供しています。[3]
- キーバリューストア:チームメンバーが共有のキーバリューペアを読み書きし、中間結果を伝達します
- イベントキュー:メンバーがイベント通知を発行し、他のメンバーが関心のあるイベントタイプを購読します
- ドキュメントプール:共有ドキュメントエリアで、メンバーが共有ドキュメントのアップロード、読み取り、修正を行えます
5. AgentToAgent:クロスエージェント通信
エージェントが単一のOpenClawインスタンスに限定されなくなった場合——異なるマシン、異なるチーム、あるいは異なる組織に分散している場合——AgentToAgent(A2A)クロスエージェント通信プロトコルが必要です。[4]
5.1 AgentToAgentの設計思想
OpenClaw AgentToAgent通信プロトコルの核心的な設計原則は:異なるOpenClawインスタンス上のエージェントが、まるで同じチームのメンバーのように協調できることです。分散シナリオにおける3つの課題を解決します。
- クロスマシン協調:開発サーバー上の「コードエージェント」と本番サーバー上の「デプロイエージェント」が調整する必要がある
- クロスチーム協調:マーケティング部門の「コンテンツエージェント」がエンジニアリング部門の「データエージェント」からデータを取得する必要がある
- クロス組織協調:自社のエージェントがパートナーのエージェントと(セキュリティ境界内で)情報を交換する必要がある
5.2 メッセージ配信パターン
AgentToAgentは3つのメッセージ配信パターンをサポートしています。
- リクエスト-レスポンス:最も一般的な同期パターン。エージェントAがリクエストを送信し、エージェントBのレスポンスを待ちます。クエリや短時間のタスクに最適です
- ファイアアンドフォーゲット:非同期パターン。エージェントAがメッセージを送信し、レスポンスを待たずに実行を続行します。通知やログ同期などのシナリオに最適です
- ストリーミング:エージェントBがストリーミング方式で結果を段階的に返します。長時間実行タスクで親エージェントがリアルタイムに進捗を追跡するのに最適です
5.3 セキュリティとアクセス制御
クロスエージェント通信においてセキュリティは最も重要です。OpenClaw AgentToAgentは多層セキュリティメカニズムを提供しています。[7]
- 認証:Mutual TLS、Bearer Token、API Keyの3つの認証方式をサポート
- 認可:capabilitiesベースのきめ細かな権限制御——各ピアは宣言されたcapabilitiesの範囲内の操作のみ実行可能
- 暗号化:すべての通信はデフォルトでTLS暗号化を使用
- レート制限:単一のピアによるリソースの過剰消費を防止
6. パフォーマンスチューニングとベストプラクティス
6.1 トークンコストの最適化
- モデル階層化戦略:異なる役割に適切なモデルを選定します。ルーティング判断にGPT-4o-mini(約100万トークンあたり$0.15)を、深い推論にClaude Opus(約100万トークンあたり$15)を使用し、全体コストを30〜50%削減します
- コンテキストトリミング:子エージェントが結果を返す際、
response_format: "summary"を使用して簡潔な応答を求め、大量の生データで親エージェントのコンテキストが溢れるのを防ぎます - 選択的共有:Agent Team共有メモリのアクセス制御を適切に設定し、メンバーが自分のタスクに関連するデータのみを読むようにします
6.2 セキュリティ上の考慮事項
- 最小権限の原則:各子エージェントにはタスク完了に必要な最小限のスキルとツールアクセスのみを付与します[7]
- サンドボックス実行:コード実行機能を持つ子エージェントはサンドボックス環境で実行すべきです
- AgentToAgent認証:クロスエージェント通信にはTLS暗号化とMutual TLS認証を有効にし、中間者攻撃を防止します
- 監査ログ:すべてのクロスエージェント呼び出しの発信者、内容、結果、タイムスタンプを記録する包括的な監査ログを有効にします
7. よくある質問(FAQ)
Q1:SubAgentとAgent Teamsを同時に使用できますか?
はい。Agent Teamのメンバーが自身のSubAgentを持つことができます。例えば、リサーチチームのオーケストレーターがサブタスクを他のチームメンバーに割り当てるのではなく、自身のSubAgentに委任して処理させることができます。[1]
Q2:AgentToAgentのレイテンシはボトルネックになりますか?
ネットワーク条件とタスクタイプに依存します。ローカルエリアネットワーク内のAgentToAgent呼び出しレイテンシは通常20〜50ms、リージョン間では100〜300msに達することがあります。非リアルタイムタスクでは許容範囲です。高頻度のインタラクションが必要な場合は、関連するエージェントを同じAgent Teamに配置し、共有メモリで通信することをお勧めします。[4]
Q3:マルチエージェントのコストは単一エージェントよりも大幅に高くなりますか?
必ずしもそうではありません。マルチエージェントシステムの合計トークン数はより多くなる可能性がありますが、モデル階層化戦略により全体コストは実際にはより低くなることがあります。実際のテストデータでは、最適化されたマルチエージェントシステムは単一の高性能モデルよりも20〜35%低いコストで同等のタスクを処理しつつ、より高い品質を提供できます。
Q4:異なるSubAgentが異なるモデルプロバイダーを使用できますか?
はい。これはOpenClawのマルチエージェント設定の中核的な優位性の一つです。各SubAgentとAgent Teamメンバーは独立してモデルとプロバイダーを指定できます。例えば、コードレビューにClaude Opus、ウェブ検索にGPT-4o、翻訳にGeminiを使用する——各モデルの強みを活かすことができます。[2]
Q5:Agent Teamのメンバー数は最大何人ですか?
OpenClawには技術的なハードリミットはありませんが、実践経験から3〜7人が最も効率的な範囲です。7人を超えると調整オーバーヘッドが大幅に増加し、オーケストレーターのコンテキストが容易に過負荷になります。タスクがより多くの役割を必要とする場合、階層型モードを使用して大きなチームを複数の小グループに分割することをお勧めします。[3]
OpenClawのマルチエージェント協調アーキテクチャ——SubAgentの軽量な委任から、Agent Teamsのチーム協調、AgentToAgentのクロスインスタンス通信まで——は開発者に完全なツールキットを提供し、タスクの複雑さに応じて最適な協調モードを選択できるようにします。重要なのは「問題を解決できる最もシンプルなメカニズムを使用する」原則に従うことです:SubAgentで処理できるならAgent Teamsを使う必要はなく、ローカルで完結できるならAgentToAgentは不要です。これら3つのメカニズムの正しいタイミングと設定をマスターすれば、真に効率的で信頼性が高くスケーラブルなAIエージェント軍団を構築できるでしょう。


