ブロードキャストグループ
WhatsApp メッセージを複数のエージェントにブロードキャスト
Experimental
ブロードキャストグループにより、複数のエージェントが同じメッセージを同時に処理して応答できます。これにより、1つの電話番号を使用して、単一のWhatsAppグループまたはDMで協力する専門的なエージェントチームを作成できます。
現在の範囲:WhatsAppのみ(webチャンネル)。
ブロードキャストグループは、チャンネル許可リストとグループアクティベーションルールの後に評価されます。WhatsAppグループでは、これはOpenClawが通常返信するときにブロードキャストが発生することを意味します(例:メンション時、グループ設定に依存)。
Use Cases
1. 専門的なエージェントチーム
アトミックで焦点を絞った責任を持つ複数のエージェントを展開します:
Group: "Development Team" Agents: - CodeReviewer (reviews code snippets) - DocumentationBot (generates docs) - SecurityAuditor (checks for vulnerabilities) - TestGenerator (suggests test cases)
各エージェントは同じメッセージを処理し、専門的な視点を提供します。
2. 多言語サポート
Group: "International Support" Agents: - Agent_EN (responds in English) - Agent_DE (responds in German) - Agent_ES (responds in Spanish)
3. 品質保証ワークフロー
Group: "Customer Support" Agents: - SupportAgent (provides answer) - QAAgent (reviews quality, only responds if issues found)
4. タスク自動化
Group: "Project Management" Agents: - TaskTracker (updates task database) - TimeLogger (logs time spent) - ReportGenerator (creates summaries)
Configuration
トップレベルに ''broadcast'' セクションを追加します(''bindings'' の隣)。キーはWhatsAppのピアIDです:
- グループチャット:グループJID(例 ''[email protected]'')
- DMs: E.164 phone number (e.g. ''+15551234567'')
{
"broadcast": {
"[email protected]": ["alfred", "baerbel", "assistant3"]
}
}結果:OpenClawがこのチャットで返信するとき、3つのエージェントすべてを実行します。
Processing Strategy
エージェントがメッセージを処理する方法を制御します:
並列(デフォルト):すべてのエージェントが同時に処理します:
{
"broadcast": {
"strategy": "parallel",
"[email protected]": ["alfred", "baerbel"]
}
}順次:エージェントが順序通りに処理します(1つは前の完了を待ちます):
{
"broadcast": {
"strategy": "sequential",
"[email protected]": ["alfred", "baerbel"]
}
}完全な例
{
"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" }
},
{
"id": "docs-generator",
"name": "Documentation Generator",
"workspace": "/path/to/docs-generator",
"sandbox": { "mode": "all" }
}
]
},
"broadcast": {
"strategy": "parallel",
"[email protected]": ["code-reviewer", "security-auditor", "docs-generator"],
"[email protected]": ["support-en", "support-de"],
"+15555550123": ["assistant", "logger"]
}
}仕組み
メッセージフロー
1. 着信メッセージがWhatsAppグループに到着します
2. ''ブロードキャストチェック'':システムがピアIDが ''broadcast'' にあるかを確認します
3. ブロードキャストリストにある場合:
- リストされたすべてのエージェントがメッセージを処理します
- 各エージェントは独自のセッションキーと分離されたコンテキストを持っています
- エージェントは並列(デフォルト)または順次で処理します
4. ブロードキャストリストにない場合:
- 通常のルーティングが適用されます(最初に一致するバインディング)
注意:ブロードキャストグループはチャンネル許可リストやグループアクティベーションルール(メンション/コマンド/など)をバイパスしません。メッセージが処理の対象となるときにどのエージェントが実行するかのみを変更します。
セッション分離
ブロードキャストグループの各エージェントは完全に独立したものを維持します:
- ''セッションキー''(''agent:alfred:whatsapp:group:120363...'' vs ''agent:baerbel:whatsapp:group:120363...'')
- 会話履歴(エージェントは他のエージェントのメッセージを見ません)
- ワークスペース(設定されている場合は別のサンドボックス)
- ツールアクセス(異なる許可/拒否リスト)
- メモリ/コンテキスト(別のIDENTITY.md、SOUL.mdなど)
- グループコンテキストバッファ(コンテキストに使用される最近のグループメッセージ)はピアごとに共有されるため、すべてのブロードキャストエージェントはトリガー時に同じコンテキストを確認します
これにより、各エージェントは以下を持つことができます:
- 異なる個性
- 異なるツールアクセス(例:読み取り専用と読み書き)
ベストプラクティス
1. エージェントをフォーカスさせる
各エージェントを単一の明確な責任で設計します。
2. 説明的な名前を使用する
各エージェントの役割を明確にします。
3. 異なるツールアクセスを設定する
エージェントに必要なツールのみを与えます。
4. パフォーマンスを監視する
多くのエージェントの場合、''"strategy": "parallel"'' の使用、グループサイズの制限、より高速なモデルの使用を検討してください。
5. 失敗を優雅に処理する
エージェントは独立して失敗します。1つのエージェントのエラーは他のエージェントをブロックしません。
トラブルシューティング
エージェントが応答しない
Check:
1. エージェントIDが ''agents.list'' に存在します
2. ピアIDの形式が正しい(例 ''[email protected]'')
3. エージェントが拒否リストにありません
デバッグ:
tail -f ~/.openclaw/logs/gateway.log | grep broadcast
1つのエージェントのみが応答する
原因:ピアIDが ''bindings'' にあるが ''broadcast'' にない可能性があります。
修正:ブロードキャスト設定に追加するか、バインディングから削除します。