2026年 OpenClawマルチエージェントオーケストレーション実践
agentToAgent / サブエージェントspawn経由で専門Workerに作業を配分し、結果をマージします。サブタスクが独立している場合(3レビュアー、3モジュール)は並列扇出(fan-out)を使います。各段階が前段の出力を必要とする場合(調査 → 起草 → 監査)は順次パイプラインを使います。ベースデーモンに加え3エージェント扇出で約3.9 GB RAMを見込んでください。XcodeやDockerと並行する場合は24 GBを計画します。インストールの基本はOpenClawセットアップガイドで解説しています — 本ページはオーケストレーションのみに焦点を当てます。
マルチエージェントオーケストレーションの重要性
単一の長寿命エージェントコンテキストはノイズを蓄積します。調査ダンプ、失敗した試行、ツールログがウィンドウを膨らませ、品質が低下します。OpenClawはオーケストレーションを第一級の問題として扱います — 親エージェントが計画とルーティングを担当し、Workerは狭いプロンプトと隔離されたワークスペースを受け取ります。
チームがOpenClawマルチエージェントを採用する場面は次のとおりです。
- CI/CD生成が複数のリポジトリやサービスに並列で触れる必要がある(ベンチマークデータでは、同等タスクで単一エージェントClaude Codeと比較して並列コード生成が約3.2倍高速)
- コードレビューが独立した視点(セキュリティ、スタイル、カバレッジ)の恩恵を受ける — 1つのモデルがすべての役割を演じる必要がない
- 長文ドキュメントで、1つのエージェントが調査・アウトライン・草稿・監査を単一スレッドに押し込む必要がない
失敗モードもアーキテクチャ的です。5つの「エージェント」がすべて同じメモリキーに隔離なしで書き込むと、競合状態が発生します — オーケストレーション層がマージロジックとタイムアウトを所有する必要があります。
OpenClawオーケストレーションモデル
実行時、OpenClawはゲートウェイデーモンと設定内の名前付きエージェントIDに解決されます。マルチエージェントフローでは次を使用します。
| プリミティブ | 役割 |
|---|---|
オーケストレーター(多くは main または internal) |
タスクを分解し、Workerをspawnし、出力をマージ — 自身では重いツール作業を実行しない |
| Workerエージェント | スコープ限定スキル、サンドボックス化ワークスペース、タスクのみのコンテキストを受信 |
agentToAgent ツール |
許可されたエージェントID間の構造化メッセージング |
| サブエージェントspawn | 並列分岐向けの一時Worker;spawnごとにラベル・モデル・タイムアウトを設定 |
| ファイルベース協調 | 多くの本番構成では、ライブメッセージングが不十分な場合にワークスペースファイル(例:brain/ ディレクトリ)をブラックボードとして使用 |
深度の経験則:2段階(オーケストレーター → Worker)でワークロードの約95%をカバーします。3段階(オーケストレーター → チームリード → リーフ)は、サブチームが真に独立している場合のみ有効 — デバッグコストが急増します。
外部参考:OpenClaw GitHub および maxSpawnDepth / カスケード停止動作に関するコミュニティのアーキテクチャノート。
3つのオーケストレーションパターン
パターン1 — 並列扇出(Parallel Fan-Out)
適用条件:サブタスクが互いの出力に依存しない。
形状:オーケストレーターが1ターンで複数spawnを発行;壁時計時間 ≈ 最遅Workerの時間であり、Workerの合計ではない。
例:
- 3パッケージを同時にlint
- 3つの競合URLを調査
- 3サービスのユニットテストを生成
アンチパターン:パイプライン(調査 + 起草)に扇出 — 調査がまだ実行中なのに起草者が空入力で開始する。
Orchestrator
├── spawn worker-a (scope: package-frontend)
├── spawn worker-b (scope: package-api)
└── spawn worker-c (scope: package-worker)
→ merge summaries → single PR plan
パターン2 — 順次パイプライン(Sequential Pipeline)
適用条件:段階Bが段階Aのアーティファクトを必要とする。
形状:調査 → アウトライン → 実装 → 監査 → 公開。各Workerは前段の成果物のみを貼り付けたクリーンなコンテキストを受け取る。
利点:起草者は3,000行の生調査トークンを持たない;監査者は監査前の草稿履歴を見ない。
コスト:壁時計時間は加算的 — 依存関係が本物の場合のみ使用する。
パターン3 — 検証付き扇出(Fan-Out with Validation)
適用条件:正確性が速度より重要(コンプライアンス文書、インフラdiff、価格表)。
形状:同一プロンプトを2〜3 Workerに送信;オーケストレーターまたはモニターエージェントが出力を比較;不一致はリトライまたは人間へのエスカレーションをトリガー。
コスト:単一Worker比で約2〜3倍のトークン消費 — 高リスクマージのみで正当化される。
設定Runbook
OpenClawがすでにインストールされている前提です — 未インストールの場合は、先にセットアップガイドを完了してください。
ステップ1 — openclaw.json でエージェントロスターを定義
典型的なパス:~/.openclaw/openclaw.json(リリースに応じて確認してください)。
{
"agents": {
"list": [
{
"id": "orchestrator",
"default": true,
"workspace": "~/.openclaw/workspace-orchestrator",
"sandbox": { "mode": "off" }
},
{
"id": "coder",
"workspace": "~/.openclaw/workspace-coder",
"sandbox": { "mode": "all", "scope": "agent" },
"skills": ["git", "nodejs", "testing"]
},
{
"id": "researcher",
"workspace": "~/.openclaw/workspace-research",
"sandbox": { "mode": "all", "scope": "agent" },
"skills": ["web", "docs"]
}
]
},
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["orchestrator", "coder", "researcher"]
}
}
}
ステップ2 — Workerごとにワークスペースを隔離
各Worker IDは別々のワークスペースディレクトリにマップする必要があります。並列扇出Worker間で書き込み可能なワークスペースを共有しないでください — ファイル競合がマージを破壊します。
mkdir -p ~/.openclaw/workspace-{orchestrator,coder,researcher}
ステップ3 — ルーティング表付きオーケストレーターシステムプロンプトを記述
オーケストレータープロンプトには次を含める必要があります。
- 利用可能なWorker IDとスキル
- 扇出 vs パイプラインの使い分け
- spawnごとのタイムアウト(例:調査120秒、コード生成300秒)
- 失敗ポリシー:1回リトライ、その後エスカレーション
サブエージェントコンテキストルール:WorkerはAGENTS.md + TOOLS.md + タスクペイロードのみを受け取るべき — オーケストレータースレッド全体ではない。
ステップ4 — 信頼できないWorkerにサンドボックスを有効化
協調ツール用にオーケストレーターは sandbox.mode: off を維持;Workerがshellまたはネットワークを実行できる場合、coder/researcherを mode: all でサンドボックス化します。
ステップ5 — spawn上限を設定
OpenClawバージョンのドキュメントに従い maxChildren / maxSpawnDepth を設定します。RAMとAPIレート制限を計測するまで、最大3並列子プロセスから始めてください。
ステップ6 — openclaw doctor でテスト
openclaw doctor
openclaw status
CI下で扇出を実行する前に、重複hookまたは競合するエージェントバインディングを解決してください。
ステップ7 — 制御された扇出タスクを実行
オーケストレーター指示の例(概念的):
Task: Review modules auth/, billing/, notify/ in parallel.
Spawn researcher once per directory with identical rubric.
Merge into one markdown report with per-module sections.
Timeout: 180s per worker. If one worker fails, continue with partial merge and flag gaps.
テスト中にピークRSSを記録 — ベンチマークフットプリントと比較してください。
ステップ8 — CIトリガーを接続(任意)
ゲートウェイをローカルに公開;パイプラインからSSH + RESTでトリガー。アーティファクトはタスクスコープのパスに保存:
export TASK_ID="${GITHUB_RUN_ID}"
mkdir -p "/tmp/openclaw-runs/${TASK_ID}"
メモリ、状態、マージ規律
| リスク | 緩和策 |
|---|---|
| 同一ファイルへの並列書き込み | タスクスコープキー:${TASK_ID}/results/{worker}.md |
| オーケストレーターコンテキストの肥大化 | Workerは要約のみを返す — ツール転写全文ではない |
| トークン消費の暴走 | Workerごとの予算上限;Nトークン超過spawnをkill |
| Worker状態の陳腐化 | 並列作業は一時spawn;永続チャネルのみ長寿命ペルソナ |
マージ契約:オーケストレーターは事前に出力スキーマ(JSONセクション、必須見出し)を定義するべきです。Workerは引き渡し前にスキーマに対して検証します。
ハードウェアとRAM予算
Apple Silicon M4クラスホストで計測(ベンチマーク記事参照):
| モード | 増分RAM(数量級) | ホストガイダンス |
|---|---|---|
| 単一OpenClawエージェント | アイドル約480 MB、ピーク約1.8 GB | 16 GBで快適 |
| 3エージェント扇出 | Worker + ベースでピーク約3.9 GB | Docker/Xcode起動時は16 GBがタイト |
| 3エージェント + Claude Code並行 | 合計約5.2 GB | 24 GBを推奨 |
オーケストレーションにGPUは不要です — ボトルネックはAPIレート制限とワークスペース同期のディスクI/Oです。日本(東京)ノードはAnthropic APIへの中央値RTTが24 msです(APIレイテンシのみ参照)。リージョン別ノード選定はM4リージョンマトリクスをご覧ください。
障害処理
オーケストレータープロンプトで明示的に定義します。
| イベント | ポリシー |
|---|---|
| Workerタイムアウト | より狭いスコープで1回リトライ;それ以外は PARTIAL をマーク |
| WorkerエラーJSON | 構造化エラーをログ;盲目的に扇出リトライしない |
| Worker回答の競合 | 検証パターンまたは人間へエスカレーション |
| オーケストレーターループ | タスクあたり最大spawnラウンドを制限(例:2ラウンド) |
夜間CI失敗の多くはタイムアウト欠如に起因します — デフォルトの「永久待機」がゲートウェイを停止させます。
推奨パス
| 状況 | 推奨アクション |
|---|---|
| 独立サブタスク(≥2) | 隔離ワークスペース付き並列扇出 |
| 各ステップが前段アーティファクトを必要 | 順次パイプライン |
| 高リスク出力 | 検証付き扇出(2〜3 Worker) |
| OpenClaw初利用 | 安定するまで単一エージェント、その後Workerを1つ追加 |
| RAM ≤16 GB + Xcode | 最大2並列Worker、または24 GBへ移行 |
| Claude Codeを対話的に使用中 | バッチ/CIはOpenClawオーケストレーション;ペアプログラミングはClaude Codeを維持(代替案の背景) |
一行ルール:Worker BのプロンプトがWorker Aの出力を必要とするならパイプライン。そうでなければ扇出。
FAQ
OpenClawは最大何エージェントまで並列実行できますか?
固定のグローバル上限はありません — 実用上の制約はRAM、APIレート制限、マージの複雑さです。3並列Workerから始め、ps またはアクティビティモニタでピークRSSを計測してからスケールしてください。
扇出は常に高速化しますか?
タスクが相互に独立している場合のみです。依存関係のある段階に扇出を誤適用すると、空のドラフトや重複作業など、静かに失敗します。パターン選択前に必ず依存関係を整理してください。
agentToAgent とサブエージェントspawnの違いは何ですか?
agentToAgent は名前付き永続エージェント(営業Bot vs サポートBot)へメッセージを送ります。サブエージェントspawnは単一タスク分岐向けの一時Workerを作成します。CI向けオーケストレーションは通常spawnに依存;マルチテナントチャットBotは agentToAgent とbindingsを使用します。
クラウドレンタルなしでMac Mini上でオーケストレーションを実行できますか?
はい。Node 22.19以上、十分なRAM、安定したネットワークがあれば、常時稼働のMacならどれでも動作します。ノートPCのスリープで長時間ゲートウェイセッションが切れる場合、チームは専用Mac miniを常時稼働させます。
TradingAgentsやMiroFishとの関係は?
TradingAgentsは取引会社のディベート(LangGraph)をオーケストレーションします。MiroFishは予測のためのソーシャルswarmをオーケストレーションします。OpenClawは開発ワークフロー(コード、CI、レビュー)をオーケストレーションします。ドメインに合うフレームワークを選んでください — 相互補完であり、置き換え可能ではありません。