- 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 代理始終面臨以下限制:
- Context Window 天花板:即便是 200K tokens 的 context window,當任務需要同時持有十萬行程式碼、數百份文件與即時網頁資料時,單一代理的記憶體根本不夠用。多 Agent 架構透過分散式記憶體解決這個問題——每個子代理只需維護其職責範圍內的上下文。
- 認知超載:當一個代理需要在法律分析、財務計算、程式碼審查之間不斷切換角色,輸出品質會隨著任務鏈拉長而明顯下降。學術研究稱之為「注意力稀釋效應」——前期任務的品質明顯優於後期。
- 序列化延遲:單一代理只能依序完成子任務。若四個相互獨立的子任務各需 5 分鐘,單一代理需要 20 分鐘;四個 OpenClaw SubAgent 平行執行,加上協調開銷,只需約 6–7 分鐘。
1.2 何時該啟用多 Agent
並非所有任務都需要多 Agent。以下是判斷依據:
- 任務可分解為獨立子任務:子任務之間的依賴關係越少,多 Agent 的加速效果越明顯
- 需要不同專業領域:當任務同時涉及網頁爬取、數據分析、文字生成等不同技能組合時,專職子代理的輸出品質顯著優於通用代理
- 成本敏感:不是每個子任務都需要最貴的模型。路由決策用 GPT-4o-mini、深度推理用 Claude Opus——這種「混合模型」策略是多 Agent 獨有的成本優勢
- 可靠性要求高:多 Agent 架構天然支援備援——一個子代理失敗,可由備援代理接手,不影響整體流程
如果你的場景滿足上述兩項以上,就值得認真考慮 OpenClaw 的多 Agent 配置。[1]
二、OpenClaw 的多 Agent 架構總覽
OpenClaw 提供三種層次分明的多 Agent 協作機制,從簡單到複雜依序為:SubAgent(子代理)、Agent Teams(團隊協作)與 AgentToAgent(跨代理通訊)。理解它們的差異與適用場景,是正確選型的第一步。[1]
2.1 三種機制的定位
- SubAgent 子代理:一對多的主從關係。主代理(Parent Agent)將子任務委派給子代理(SubAgent)執行,子代理完成後回報結果。適合明確的流水線型工作流程。[2]
- Agent Teams 團隊:多對多的對等或階層協作。多個代理被組成「團隊」,透過共享上下文、訊息佇列與協調者角色完成複雜任務。適合需要即時溝通與動態分工的場景。[3]
- AgentToAgent 跨代理通訊:跨實例、跨環境的代理間通訊協定。當代理分佈在不同機器、不同 OpenClaw Gateway 實例上時,透過結構化訊息協定實現遠端協作。[4]
2.2 如何選擇
選擇的核心準則是:用最簡單的機制解決問題。
- 如果你的需求是「主代理派任務、子代理回傳結果」→ 用 SubAgent
- 如果多個代理需要共享狀態、即時溝通、動態調整分工 → 用 Agent Teams
- 如果代理分佈在不同伺服器或不同組織 → 用 AgentToAgent
在實務中,三種機制可以混合使用:一個 Agent Team 內的成員可以再透過 SubAgent 委派子任務,也可以透過 AgentToAgent 與外部代理溝通。
三、SubAgent 子代理:主從委派架構
SubAgent 是 OpenClaw 多 Agent 體系中最基礎也最常用的機制。它的核心概念簡單明瞭:主代理(Parent Agent)在執行過程中,可以將特定子任務委派給一個或多個 OpenClaw SubAgent 處理,子代理完成後將結果回傳給主代理繼續流程。[2]
3.1 SubAgent 的運作流程
OpenClaw SubAgent 的生命週期如下:
- Step 1 — 任務委派:主代理呼叫
subagent.delegate(),傳入任務描述、所需技能與上下文資料 - Step 2 — 子代理啟動:OpenClaw 根據配置找到或建立對應的子代理實例,載入其專屬的 system prompt 與 skills
- Step 3 — 獨立執行:子代理在其獨立的 context 中完成任務,可以使用自己綁定的工具與模型
- Step 4 — 結果回傳:子代理將執行結果以結構化格式回傳主代理,並視配置決定是否保留 context 以供後續再用
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 的關鍵配置項說明:
model:子代理使用的模型,可獨立於主代理。路由型任務用輕量模型,分析型任務用高階模型system_prompt:子代理的角色定義。明確的角色描述能顯著提升輸出品質skills:子代理可使用的技能列表。OpenClaw 會根據這個列表限制子代理的工具存取範圍[2]timeout:子代理的最大執行時間(秒)。超時後主代理會收到錯誤通知,可觸發備援機制context_retention:子代理 context 的保留策略——task表示任務結束即釋放,session表示在整個會話期間保留
3.3 SubAgent 的典型使用場景
OpenClaw SubAgent 最適合以下場景:
- 程式碼審查流水線:主代理收到 Pull Request 後,委派「安全掃描子代理」、「風格檢查子代理」、「效能分析子代理」平行執行,最後由主代理彙整審查報告
- 內容生產工作流:主代理規劃文章大綱後,將各段落委派給不同的寫作子代理,再由主代理統一校稿與排版
- 數據處理管線:主代理將原始資料分批交給多個子代理平行清洗、轉換,最後合併結果
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 則是「我們一起討論怎麼做」的團隊模式。具體差異如下:
- 通訊方向:SubAgent 是單向的(主→從→主);Agent Team 成員之間可以多向通訊
- 上下文共享:SubAgent 各自擁有獨立 context;Agent Team 支援共享記憶體(shared memory)
- 角色靈活度:SubAgent 的角色在配置時就固定了;Agent Team 支援動態角色切換與任務重分配
- 協調機制:SubAgent 由主代理單一控制;Agent Team 支援 Orchestrator(協調者)、Peer-to-Peer(對等)、Hierarchical(階層)三種協調模式
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]
- Key-Value Store:團隊成員可以讀寫共享的鍵值對,用於傳遞中間結果
- Event Queue:成員可以發布事件通知,其他成員訂閱感興趣的事件類型
- Document Pool:共享文件區,成員可以上傳、讀取、修改共享文件
{
"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 收到一個子任務時,系統會根據以下優先順序決定由誰執行:
- 精確匹配:子任務所需技能與某成員的 skills 完全吻合
- 最佳匹配:沒有精確匹配時,選擇涵蓋最多所需技能的成員
- 負載均衡:多個成員同樣匹配時,選擇目前負載最低的
{
"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 支援三種訊息傳遞模式:
- Request-Response(請求-回應):最常見的同步模式。代理 A 發送請求,等待代理 B 回應。適合查詢與短期任務。
- Fire-and-Forget(發送即忘):非同步模式。代理 A 發送訊息後不等待回應,繼續執行。適合通知、日誌同步等場景。
- Streaming(串流):代理 B 以串流方式逐步回傳結果。適合長時間執行的任務,主代理可以即時追蹤進度。
# 以 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]
- 認證:支援 Mutual TLS、Bearer Token、API Key 三種認證方式
- 授權:基於 capabilities 的細粒度權限控制——每個 peer 只能執行其宣告的能力範圍內的操作
- 加密:所有通訊預設使用 TLS 加密,支援自簽憑證與 CA 簽發憑證
- 速率限制:防止單一 peer 過度消耗資源
{
"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,不加控制的話成本會爆炸性增長。
- 模型分級策略:為不同角色選配適當的模型。路由決策、簡單格式轉換用 GPT-4o-mini(每百萬 token 約 $0.15);深度推理、複雜分析用 Claude Opus(每百萬 token 約 $15)。這可以讓整體成本降低 30–50%。
- 上下文精簡:子代理回傳結果時,使用
response_format: "summary"要求精簡回覆,避免將大量原始資料灌回主代理的 context。 - 選擇性共享:Agent Team 的共享記憶體雖然方便,但每個成員讀取共享資料都會消耗 tokens。設定適當的 access control,確保成員只讀取與其任務相關的資料。
{
"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 系統中,單一子代理的失敗不應導致整體任務失敗。設計完善的容錯機制至關重要:
- 重試策略:為每個子代理設定
max_retries與backoff策略。指數退避(exponential backoff)是處理 API 限速最有效的策略。 - 備援代理:當主要子代理連續失敗時,自動切換到備援代理。備援代理可以使用不同的模型或不同的方法完成相同任務。
- 優雅降級:當非關鍵子代理失敗時,Orchestrator 應能判斷是否可以在缺少該子代理輸出的情況下繼續流程。
- 錯誤隔離:子代理的錯誤不應汙染共享記憶體。寫入共享記憶體前需驗證資料的完整性與正確性。
{
"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]
- 最小權限原則:每個子代理只應擁有完成其任務所需的最少技能與工具存取權。避免給予子代理「全域」工具存取權限。
- 沙盒執行:具備程式碼執行能力的子代理,應在沙盒環境中運行。OpenClaw 支援透過
sandbox: true配置項啟用。 - AgentToAgent 認證:跨代理通訊務必啟用 TLS 加密與相互認證(Mutual TLS),避免中間人攻擊。
- 審計日誌:啟用完整的審計日誌,記錄每一次跨代理呼叫的發起者、內容、結果與時間戳。
- 敏感資料隔離:透過共享記憶體的 access control,確保含有敏感資料(如 API 金鑰、個資)的鍵值對不會被未授權的代理讀取。
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 代理軍團。