Key Findings
  • OpenClaw 教學 提供三種多 Agent 協作機制——SubAgent 子代理Agent Teams 團隊AgentToAgent 跨代理通訊——各自對應不同複雜度與規模的任務需求[1]
  • SubAgent 適合「主從委派」場景:主代理將子任務分配給專職子代理執行,子代理完成後將結果回傳,適合流水線式工作流程[2]
  • Agent Teams 支援多個代理以對等或階層方式協作,共享上下文與記憶體,適合需要即時協調的複雜任務[3]
  • AgentToAgent 協定實現跨 OpenClaw 實例的代理間通訊,支援異質環境中的分散式代理協作[4]
  • 透過為不同角色選配適當模型(路由用輕量模型、推理用高階模型),可降低整體 Token 成本 30–50%,同時維持輸出品質[1]

當你的 AI 代理需要同時爬取網頁、分析數據、生成報告、審查程式碼——單一代理已經無法勝任。OpenClaw 的多 Agent 協作架構(multiagent architecture)正是為此而生:讓多個專職代理各司其職、協同作戰,完成過去難以想像的複雜自動化任務。[6]

本文是 OpenClaw 系列的第十八篇,聚焦於 OpenClaw 多 Agent 協作的完整技術架構。我們將從三種核心機制——SubAgent 子代理、Agent Teams 團隊、AgentToAgent 跨代理通訊——逐一拆解其設計原理、配置方式與適用場景,並附上可直接使用的 openclaw.json 多 agent 配置範例,最後涵蓋效能調校與安全性最佳實踐。

一、為什麼需要多 Agent 協作?

在投入 OpenClaw multiagent 技術細節之前,先釐清一個根本問題:什麼時候你真正需要從單一代理升級到多 Agent 架構?

1.1 單一代理的三大瓶頸

無論模型多強大,單一 AI 代理始終面臨以下限制:

1.2 何時該啟用多 Agent

並非所有任務都需要多 Agent。以下是判斷依據:

如果你的場景滿足上述兩項以上,就值得認真考慮 OpenClaw 的多 Agent 配置。[1]

二、OpenClaw 的多 Agent 架構總覽

OpenClaw 提供三種層次分明的多 Agent 協作機制,從簡單到複雜依序為:SubAgent(子代理)、Agent Teams(團隊協作)與 AgentToAgent(跨代理通訊)。理解它們的差異與適用場景,是正確選型的第一步。[1]

2.1 三種機制的定位

2.2 如何選擇

選擇的核心準則是:用最簡單的機制解決問題

在實務中,三種機制可以混合使用:一個 Agent Team 內的成員可以再透過 SubAgent 委派子任務,也可以透過 AgentToAgent 與外部代理溝通。

三、SubAgent 子代理:主從委派架構

SubAgent 是 OpenClaw 多 Agent 體系中最基礎也最常用的機制。它的核心概念簡單明瞭:主代理(Parent Agent)在執行過程中,可以將特定子任務委派給一個或多個 OpenClaw SubAgent 處理,子代理完成後將結果回傳給主代理繼續流程。[2]

3.1 SubAgent 的運作流程

OpenClaw SubAgent 的生命週期如下:

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": "你是一位資深程式碼審查員。專注於程式碼品質、安全漏洞與效能問題。",
        "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": "你是一位專業的網路研究員。善於搜尋、篩選與整理網路上的資訊。",
        "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": "你是一位資料科學家。擅長數據清理、統計分析與圖表生成。",
        "skills": ["data-processing", "chart-generation", "csv-parser"],
        "max_tokens": 16384,
        "timeout": 300
      }
    }
  }
}

每個 SubAgent 的關鍵配置項說明:

3.3 SubAgent 的典型使用場景

OpenClaw SubAgent 最適合以下場景:

3.4 透過 CLI 管理 SubAgent

OpenClaw 提供完整的 CLI 指令來管理子代理:

# 列出所有已配置的 SubAgent
openclaw agents list --type subagent

# 測試子代理是否正常運作
openclaw agents test code-reviewer --input "Review this Python function"

# 查看子代理的執行日誌
openclaw agents logs code-reviewer --last 20

# 動態新增子代理(寫入 openclaw.json)
openclaw config set agents.subagents.translator '{
  "description": "翻譯子代理",
  "model": {"primary": "gpt-4o"},
  "system_prompt": "你是一位專業翻譯",
  "skills": ["translation"],
  "timeout": 60
}'

四、Agent Teams 團隊協作

當任務的複雜度超越「主從委派」的範疇——需要多個代理即時溝通、共享狀態、動態調整分工——就是 OpenClaw Agent Teams 登場的時候。[3]

4.1 Agent Team 與 SubAgent 的本質差異

SubAgent 是「我叫你做什麼,你就做什麼」的主從模式;Agent Team 則是「我們一起討論怎麼做」的團隊模式。具體差異如下:

4.2 Agent Teams 配置結構

openclaw.json 中定義 Agent Team 的完整配置:

{
  "agent_teams": {
    "research-team": {
      "description": "市場研究分析團隊",
      "coordination": "orchestrator",
      "orchestrator": "research-lead",
      "shared_memory": {
        "enabled": true,
        "max_size": "50MB",
        "persistence": "session"
      },
      "members": {
        "research-lead": {
          "role": "團隊負責人:負責任務分解、進度追蹤與最終報告整合",
          "model": {"primary": "claude-opus-4-6"},
          "skills": ["task-planning", "report-generation"],
          "can_delegate": true
        },
        "web-scout": {
          "role": "網路偵察員:負責搜尋與蒐集公開資訊",
          "model": {"primary": "gpt-4o"},
          "skills": ["web-search", "web-scrape"],
          "can_delegate": false
        },
        "analyst": {
          "role": "數據分析師:負責數據清洗、統計分析與趨勢判斷",
          "model": {"primary": "claude-sonnet-4-6"},
          "skills": ["data-analysis", "chart-generation"],
          "can_delegate": false
        },
        "writer": {
          "role": "報告撰寫員:負責將分析結果轉化為結構化報告",
          "model": {"primary": "claude-sonnet-4-6"},
          "skills": ["content-writing", "formatting"],
          "can_delegate": false
        }
      },
      "workflow": {
        "max_rounds": 10,
        "timeout": 600,
        "early_stop": {
          "condition": "orchestrator_decision",
          "min_rounds": 2
        }
      }
    }
  }
}

4.3 三種協調模式

OpenClaw Agent Teams 支援三種協調模式,對應不同的團隊運作方式:[3]

Orchestrator 模式(協調者):團隊中有一個明確的「指揮官」,負責分配任務、收集回饋、做出決策。最適合有明確流程的任務。

{
  "coordination": "orchestrator",
  "orchestrator": "research-lead",
  "orchestrator_config": {
    "planning_strategy": "decompose-first",
    "feedback_loop": true,
    "max_delegation_depth": 3
  }
}

Peer-to-Peer 模式(對等):所有成員地位對等,透過訊息佇列自由溝通。適合腦力激盪、創意協作等沒有固定流程的場景。

{
  "coordination": "peer-to-peer",
  "message_queue": {
    "type": "broadcast",
    "max_messages_per_round": 5
  },
  "consensus": {
    "strategy": "majority-vote",
    "min_partic企業流程自動化tion": 0.75
  }
}

Hierarchical 模式(階層式):多層管理結構。頂層代理管理中層,中層管理底層。適合大規模、多層次的複雜任務。

{
  "coordination": "hierarchical",
  "hierarchy": {
    "level_0": ["project-lead"],
    "level_1": ["frontend-lead", "backend-lead", "qa-lead"],
    "level_2": ["fe-dev-1", "fe-dev-2", "be-dev-1", "be-dev-2", "tester-1"]
  },
  "escalation_policy": "up-one-level"
}

4.4 共享記憶體(Shared Memory)

Agent Team 成員之間的狀態共享,是團隊協作區別於 SubAgent 的關鍵特性。OpenClaw 提供結構化的共享記憶體機制:[3]

{
  "shared_memory": {
    "enabled": true,
    "stores": {
      "kv": {
        "type": "key-value",
        "max_entries": 1000,
        "ttl": 3600
      },
      "events": {
        "type": "event-queue",
        "max_backlog": 500,
        "retention": "current-task"
      },
      "docs": {
        "type": "document-pool",
        "max_size": "100MB",
        "allowed_types": ["text", "json", "csv", "image"]
      }
    },
    "access_control": {
      "default": "read-write",
      "overrides": {
        "writer": {"docs": "write-only"},
        "analyst": {"kv": "read-write", "docs": "read-only"}
      }
    }
  }
}

4.5 角色分配與技能路由

在 OpenClaw Agent Team 中,任務的路由不僅依據靜態的角色定義,還支援基於技能的動態路由。當 Orchestrator 收到一個子任務時,系統會根據以下優先順序決定由誰執行:

{
  "routing": {
    "strategy": "skill-based",
    "skill_matching": {
      "mode": "best-fit",
      "fallback": "orchestrator"
    },
    "load_balancing": {
      "enabled": true,
      "strategy": "shortest-queue"
    }
  }
}

五、AgentToAgent 跨代理通訊

當你的代理不再侷限於單一 OpenClaw 實例——分佈在不同機器、不同團隊、甚至不同組織——就需要 AgentToAgent(A2A)跨代理通訊協定。[4]

5.1 AgentToAgent 的設計理念

OpenClaw AgentToAgent 通訊協定的設計核心是:讓不同 OpenClaw 實例上的代理,能像同一個 Team 裡的成員一樣協作。它解決了三個分散式場景的痛點:

5.2 通訊協定與訊息格式

OpenClaw AgentToAgent 使用基於 HTTP/gRPC 的結構化訊息格式:[4]

{
  "agenttoagent": {
    "enabled": true,
    "protocol": "grpc",
    "listen": {
      "host": "0.0.0.0",
      "port": 9090,
      "tls": {
        "enabled": true,
        "cert": "/etc/openclaw/certs/agent.crt",
        "key": "/etc/openclaw/certs/agent.key"
      }
    },
    "peers": {
      "deploy-agent": {
        "enRLHF 對齊int": "https://prod-server.internal:9090",
        "auth": {
          "type": "mutual-tls",
          "ca_cert": "/etc/openclaw/certs/ca.crt"
        },
        "capabilities": ["deployment", "monitoring", "rollback"],
        "timeout": 60
      },
      "data-agent": {
        "endpoint": "https://analytics.internal:9090",
        "auth": {
          "type": "bearer-token",
          "token_env": "DATA_AGENT_TOKEN"
        },
        "capabilities": ["data-query", "report-generation"],
        "timeout": 120
      }
    }
  }
}

5.3 訊息傳遞模式

AgentToAgent 支援三種訊息傳遞模式:

# 以 CLI 測試 AgentToAgent 連線
openclaw a2a ping deploy-agent
# 輸出:deploy-agent (prod-server.internal:9090) — 回應時間 23ms

# 發送跨代理請求
openclaw a2a send deploy-agent --message '{
  "action": "get-deployment-status",
  "service": "api-gateway",
  "environment": "production"
}'

# 查看 AgentToAgent 通訊日誌
openclaw a2a logs --peer deploy-agent --last 50

5.4 安全與存取控制

跨代理通訊的安全性是重中之重。OpenClaw AgentToAgent 提供多層安全機制:[7]

{
  "agenttoagent": {
    "security": {
      "rate_limit": {
        "requests_per_minute": 60,
        "burst": 10
      },
      "allowed_actions": {
        "deploy-agent": ["get-deployment-status", "trigger-deploy"],
        "data-agent": ["query-data", "generate-report"]
      },
      "audit_log": {
        "enabled": true,
        "path": "~/.openclaw/logs/a2a-audit.log"
      }
    }
  }
}

六、實戰配置範例

以下提供兩個完整的 openclaw.json 多 Agent 配置範例,涵蓋從 SubAgent 到 Agent Teams 的實際應用場景。

6.1 範例一:全端開發代理團隊

這個範例配置了一個完整的開發流水線團隊,包含程式碼撰寫、審查、測試與部署四個角色:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "claude-opus-4-6",
        "fallbacks": ["claude-sonnet-4-6"]
      }
    }
  },
  "agent_teams": {
    "dev-pipeline": {
      "description": "全端開發流水線代理團隊",
      "coordination": "orchestrator",
      "orchestrator": "tech-lead",
      "shared_memory": {
        "enabled": true,
        "stores": {
          "codebase": {
            "type": "document-pool",
            "max_size": "200MB"
          },
          "review-notes": {
            "type": "key-value",
            "max_entries": 500
          }
        }
      },
      "members": {
        "tech-lead": {
          "role": "技術主管:分解開發任務、分配工作、整合最終程式碼",
          "model": {"primary": "claude-opus-4-6"},
          "skills": ["task-planning", "code-review", "git-operations"],
          "can_delegate": true
        },
        "frontend-dev": {
          "role": "前端開發:React/Next.js 開發、UI 實現、響應式設計",
          "model": {"primary": "claude-sonnet-4-6"},
          "skills": ["frontend-coding", "css-design", "accessibility"],
          "can_delegate": false
        },
        "backend-dev": {
          "role": "後端開發:API 設計、資料庫操作、伺服器邏輯",
          "model": {"primary": "claude-sonnet-4-6"},
          "skills": ["backend-coding", "database", "api-design"],
          "can_delegate": false
        },
        "qa-engineer": {
          "role": "品質工程師:撰寫測試案例、執行測試、報告缺陷",
          "model": {"primary": "gpt-4o"},
          "skills": ["test-writing", "test-execution", "bug-reporting"],
          "can_delegate": false
        }
      },
      "workflow": {
        "max_rounds": 15,
        "timeout": 900,
        "stages": [
          {"name": "planning", "agents": ["tech-lead"]},
          {"name": "development", "agents": ["frontend-dev", "backend-dev"], "parallel": true},
          {"name": "review", "agents": ["tech-lead"]},
          {"name": "testing", "agents": ["qa-engineer"]},
          {"name": "integration", "agents": ["tech-lead"]}
        ]
      }
    }
  }
}

6.2 範例二:混合 SubAgent + AgentToAgent 的研究系統

這個範例展示如何結合 SubAgent 與 AgentToAgent,建構一個跨環境的市場研究系統:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "claude-opus-4-6"
      }
    },
    "subagents": {
      "news-scanner": {
        "description": "新聞掃描子代理",
        "model": {"primary": "gpt-4o-mini"},
        "system_prompt": "掃描指定關鍵字的新聞,回傳摘要與來源連結。",
        "skills": ["web-search", "summarize"],
        "timeout": 120
      },
      "patent-analyzer": {
        "description": "專利分析子代理",
        "model": {"primary": "claude-opus-4-6"},
        "system_prompt": "分析指定公司或技術領域的專利資料。",
        "skills": ["patent-search", "technical-analysis"],
        "timeout": 300
      },
      "report-compiler": {
        "description": "報告編譯子代理",
        "model": {"primary": "claude-sonnet-4-6"},
        "system_prompt": "將多個來源的研究資料整合為結構化報告。",
        "skills": ["report-generation", "formatting", "chart-generation"],
        "timeout": 180
      }
    }
  },
  "agenttoagent": {
    "enabled": true,
    "protocol": "grpc",
    "listen": {
      "host": "0.0.0.0",
      "port": 9090,
      "tls": {"enabled": true}
    },
    "peers": {
      "financial-data-agent": {
        "endpoint": "https://finance-server.internal:9090",
        "auth": {"type": "mutual-tls"},
        "capabilities": ["stock-data", "financial-reports", "market-analysis"],
        "timeout": 60
      }
    }
  }
}

在這個配置中,主代理可以:(1)將新聞掃描與專利分析委派給本地 SubAgent 平行處理;(2)透過 AgentToAgent 從遠端的財務數據代理取得股價與財報資料;(3)最後由 report-compiler SubAgent 彙整所有來源的資料,產出完整研究報告。

6.3 以 CLI 初始化多 Agent 配置

除了直接編輯 openclaw.json,你也可以使用 CLI 逐步建構多 Agent 配置:[5]

# 建立一個新的 Agent Team
openclaw teams create dev-pipeline \
  --coordination orchestrator \
  --orchestrator tech-lead \
  --description "全端開發流水線代理團隊"

# 新增團隊成員
openclaw teams add-member dev-pipeline frontend-dev \
  --role "前端開發" \
  --model claude-sonnet-4-6 \
  --skills "frontend-coding,css-design"

# 啟用共享記憶體
openclaw teams config dev-pipeline \
  --shared-memory enabled \
  --memory-max-size 200MB

# 建立 SubAgent
openclaw agents create --type subagent news-scanner \
  --model gpt-4o-mini \
  --skills "web-search,summarize" \
  --timeout 120

# 設定 AgentToAgent peer
openclaw a2a add-peer financial-data-agent \
  --endpoint "https://finance-server.internal:9090" \
  --auth mutual-tls \
  --capabilities "stock-data,financial-reports"

# 驗證整體多 Agent 配置是否正確
openclaw config validate --section agents,agent_teams,agenttoagent

七、效能調校與最佳實踐

多 Agent 系統的效能不僅取決於個別代理的能力,更取決於整體架構的設計。以下是經過實戰驗證的調校策略與最佳實踐。[1]

7.1 Token 成本最佳化

多 Agent 系統最大的成本陷阱是「上下文膨脹」——每個代理的每次互動都會消耗 tokens,不加控制的話成本會爆炸性增長。

{
  "optimization": {
    "token_budget": {
      "enabled": true,
      "max_tokens_per_task": 100000,
      "alert_threshold": 0.8,
      "action_on_exceed": "warn"
    },
    "context_compression": {
      "enabled": true,
      "strategy": "extractive-summary",
      "compress_after_tokens": 50000
    }
  }
}

7.2 錯誤處理與容錯機制

在多 Agent 系統中,單一子代理的失敗不應導致整體任務失敗。設計完善的容錯機制至關重要:

{
  "error_handling": {
    "retry": {
      "max_retries": 3,
      "backoff": "exponential",
      "base_delay": 2,
      "max_delay": 60
    },
    "fallback": {
      "code-reviewer": {
        "fallback_agent": "backup-reviewer",
        "trigger": "consecutive_failures",
        "threshold": 2
      }
    },
    "graceful_degradation": {
      "non_critical_agents": ["news-scanner", "chart-generator"],
      "action": "skip-and-continue"
    }
  }
}

7.3 安全性考量

多 Agent 系統擴大了攻擊面,必須在每一層設定安全邊界:[7]

7.4 監控與可觀察性

多 Agent 系統的除錯難度遠高於單一代理。建立完善的監控體系是維運的基礎:

# 查看團隊即時狀態
openclaw teams status dev-pipeline

# 查看各成員的 token 消耗
openclaw teams metrics dev-pipeline --metric token-usage

# 追蹤任務的完整執行路徑
openclaw trace show --task-id abc123 --format timeline

# 匯出效能報告
openclaw teams report dev-pipeline \
  --period last-7-days \
  --metrics "latency,token-cost,success-rate" \
  --output report.json

八、常見問題(FAQ)

Q1:SubAgent 與 Agent Teams 可以同時使用嗎?

可以。一個 Agent Team 的成員可以擁有自己的 SubAgent。例如,研究團隊的 Orchestrator 可以將某個子任務委派給自己的 SubAgent 處理,而不需要交給團隊內的其他成員。這在需要「私有」工具的場景下特別有用。[1]

Q2:AgentToAgent 的延遲會不會成為瓶頸?

取決於網路條件與任務類型。區域網路內的 AgentToAgent 呼叫延遲通常在 20–50ms;跨區域的延遲可能達到 100–300ms。對於非即時任務(如資料蒐集、報告生成),這個延遲完全可以接受。對於需要高頻互動的場景,建議將相關代理放在同一個 Agent Team 內,使用共享記憶體通訊。[4]

Q3:多 Agent 的成本會不會比單一代理貴很多?

未必。雖然多 Agent 系統的總 token 數可能更高(因為多了協調溝通的 overhead),但透過模型分級策略——讓路由、格式轉換等簡單任務使用廉價模型——整體成本反而可能更低。實測數據顯示,經過最佳化的多 Agent 系統,處理同等任務的成本比單一高階模型低 20–35%,同時品質更高。

Q4:可以讓不同的 SubAgent 使用不同的模型供應商嗎?

可以。這正是 OpenClaw 多 Agent 配置的核心優勢之一。每個 SubAgent 和 Agent Team 成員都可以獨立指定模型與供應商。例如,程式碼審查用 Claude Opus、網路搜尋用 GPT-4o、翻譯用 Gemini——每個模型各取所長。[2]

Q5:Agent Team 最多可以有幾個成員?

OpenClaw 在技術上沒有硬性限制,但根據實務經驗,3–7 個成員是最有效率的範圍。成員超過 7 個後,協調開銷會顯著增加,Orchestrator 的 context 也容易超載。如果任務需要更多角色,建議使用 Hierarchical 模式,將大團隊拆分為多個小組。[3]

Q6:如何確保 AgentToAgent 通訊的安全性?

三個關鍵步驟:(1)啟用 Mutual TLS,確保雙方身份都經過驗證;(2)使用 allowed_actions 白名單限制每個 peer 可以執行的操作;(3)啟用審計日誌,記錄所有跨代理通訊。在企業環境中,還建議將 AgentToAgent 流量走內網或 VPN,不暴露於公網。[7]

Q7:SubAgent 失敗後,主代理如何處理?

OpenClaw 提供完整的錯誤處理鏈:首先依據 max_retries 設定進行重試;重試仍失敗後,檢查是否有配置 fallback_agent;若備援代理也失敗,則將錯誤上報(escalate)給 Orchestrator 或主代理決策。你可以在配置中針對不同錯誤類型(timeout、api_error、capability_mismatch)設定不同的處理策略。

Q8:如何除錯多 Agent 系統中的「幽靈問題」?

多 Agent 系統最難診斷的是「結果錯誤但沒有任何代理報錯」的情況。建議啟用 openclaw trace 功能,它會記錄每個代理每一步的輸入、輸出與決策理由,形成完整的執行軌跡。搭配 --format timeline 可以視覺化展示整個任務的時間線,快速定位問題發生在哪個環節。[5]

OpenClaw 的多 Agent 協作架構——從 SubAgent 的輕量委派,到 Agent Teams 的團隊協作,再到 AgentToAgent 的跨實例通訊——為開發者提供了完整的工具箱,讓你能根據任務複雜度選擇最適合的協作模式。關鍵在於遵守「用最簡單的機制解決問題」的原則:能用 SubAgent 解決的就不要上 Agent Team,能在本地完成的就不需要 AgentToAgent。掌握這三種機制的正確使用時機與配置方式,你就能打造出真正高效、可靠、可擴展的 AI 代理軍團。