使用 Broadcast Groups 打造 WhatsApp 多 Agent 協作團隊
你是否曾經試著寫一個全能的 Agent,結果發現它的 Prompt 變得超級長,邏輯混亂又難以維護?或者你希望在群組裡收到訊息時,能同時有不同的專家給出建議,而不是每次都要手動標記不同的機器人。
這種「單一機器人處理所有事」的模式,往往會讓開發者在擴展功能時感到頭痛。當你需要一個 Agent 負責 Code Review,另一個負責安全性檢查,而它們又必須針對同一段程式碼發表意見時,傳統的路由方式就顯得不夠用了。
需要準備的東西
Section titled “需要準備的東西”- OpenClaw 版本 2026.1.9 或更高(此功能為 Experimental 狀態)
- WhatsApp 帳號(目前僅支援 WhatsApp Web channel)
要在 5 分鐘內啟動你的第一個 Broadcast Group,只需要在設定檔中新增 broadcast 區塊。
- 確認 Agent 列表:確保你的
agents.list中已經定義了想要執行的 Agent。 - 設定廣播對象:將 WhatsApp 群組 JID 或電話號碼作為 Key,Agent ID 列表作為 Value。
{ "broadcast": { "120363403215116621@g.us": ["alfred", "baerbel", "assistant3"] }}當 OpenClaw 在這個群組收到訊息(例如被標記或符合啟動規則)時,它會同時執行這三個 Agent。
處理策略 (Processing Strategy)
Section titled “處理策略 (Processing Strategy)”你可以控制 Agent 處理訊息的先後順序:
Parallel (預設)
Section titled “Parallel (預設)”所有 Agent 同時開始處理,反應速度最快。
{ "broadcast": { "strategy": "parallel", "120363403215116621@g.us": ["alfred", "baerbel"] }}Sequential
Section titled “Sequential”Agent 會依照陣列中的順序執行,後一個會等待前一個完成。
{ "broadcast": { "strategy": "sequential", "120363403215116621@g.us": ["alfred", "baerbel"] }}當訊息進入 WhatsApp 群組時,系統會先檢查 Peer ID 是否在 broadcast 清單中。如果在清單內,所有列出的 Agent 都會處理該訊息。
這裡最關鍵的是 Session Isolation(會話隔離)。每個 Agent 雖然處理同一條訊息,但它們擁有完全獨立的:
- Session keys:例如
agent:alfred:whatsapp:group:...與agent:baerbel:whatsapp:group:...是分開的。 - 對話歷史:Agent A 看不到 Agent B 說了什麼。
- Workspace 與 Tools:每個 Agent 可以有自己的 Sandbox 權限與工具清單。
- 記憶與上下文:各自擁有獨立的
IDENTITY.md或SOUL.md。
1. 讓 Agent 保持專注
Section titled “1. 讓 Agent 保持專注”為每個 Agent 設計單一且明確的職責。
✅ 推薦做法:
{ "broadcast": { "DEV_GROUP": ["formatter", "linter", "tester"] }}❌ 不推薦: 使用一個通用的 “dev-helper” Agent 處理所有事情。
2. 配置不同的工具權限
Section titled “2. 配置不同的工具權限”根據需求給予最小權限。例如讓 Reviewer 只能讀取,而 Fixer 可以寫入。
{ "agents": { "reviewer": { "tools": { "allow": ["read", "exec"] } }, "fixer": { "tools": { "allow": ["read", "write", "edit", "exec"] } } }}3. 效能與失敗處理
Section titled “3. 效能與失敗處理”- 建議一個群組內的 Agent 數量控制在 5-10 個之間。
- 對於簡單的任務,使用較快的模型(如 Sonnet 而非 Opus)。
- Agent 之間是獨立運行的,其中一個報錯不會影響其他 Agent 回覆。
完整配置範例
Section titled “完整配置範例”這是一個程式碼審查團隊的配置範例:
{ "agents": { "list": [ { "id": "code-reviewer", "name": "Code Reviewer", "workspace": "/path/to/code-reviewer", "sandbox": { "mode": "all" } }, { "id": "security-auditor", "name": "Security Auditor", "workspace": "/path/to/security-auditor", "sandbox": { "mode": "all" } } ] }, "broadcast": { "strategy": "parallel", "120363403215116621@g.us": ["code-reviewer", "security-auditor"], "+15555550123": ["assistant", "logger"] }}Agent 沒有回應
Section titled “Agent 沒有回應”- 檢查 Agent ID 是否確實存在於
agents.list。 - 確認 Peer ID 格式正確(例如群組必須有
@g.us結尾)。 - 檢查 Agent 是否被列入 deny lists。
- 查看日誌:
tail -f ~/.openclaw/logs/gateway.log | grep broadcast。
只有一個 Agent 有回應
Section titled “只有一個 Agent 有回應”這通常是因為該 Peer ID 被設定在 bindings 中但漏掉了 broadcast 設定。請記住,broadcast 的優先權高於 bindings。
- 共享上下文:目前 Agent 預設看不到彼此的回覆。
- 訊息順序:在 Parallel 模式下,回覆抵達 WhatsApp 的順序是不確定的。
- 速率限制:每個 Agent 的回覆都會計入 WhatsApp 的 API 速率限制。
如果你在設定上遇到困難,可以詢問 AI Setup Assistant 獲取即時協助。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。