Configuration
Yayın grupları
Genel Bakış
Yayın Grupları, birden fazla ajanın aynı iletiyi eş zamanlı olarak işlemesini ve yanıtlamasını sağlar. Bu, tek bir WhatsApp grubunda veya DM'de birlikte çalışan uzmanlaşmış ajan ekipleri oluşturmanıza olanak tanır — hepsi tek bir telefon numarasıyla.
Geçerli kapsam: yalnızca WhatsApp (web kanalı).
Yayın grupları, kanal izin listeleri ve grup etkinleştirme kurallarından sonra değerlendirilir. WhatsApp gruplarında bu, yayınların OpenClaw normalde yanıt vereceği durumda gerçekleştiği anlamına gelir (örneğin: grup ayarlarınıza bağlı olarak bahsedildiğinde).
Canlı WhatsApp QA hattı, bahsedilen tek bir grup iletisinin yapılandırılmış iki ajandan farklı görünür yanıtlar üretebildiğini doğrulayan whatsapp-broadcast-group-fanout içerir.
Kullanım alanları
1. Uzmanlaşmış ajan ekipleri
Atomik, odaklı sorumluluklara sahip birden fazla ajan dağıtın:
Group: "Development Team"Agents: - CodeReviewer (reviews code snippets) - DocumentationBot (generates docs) - SecurityAuditor (checks for vulnerabilities) - TestGenerator (suggests test cases)Her ajan aynı iletiyi işler ve kendi uzman bakış açısını sunar.
2. Çok dilli destek
Group: "International Support"Agents: - Agent_EN (responds in English) - Agent_DE (responds in German) - Agent_ES (responds in Spanish)3. Kalite güvencesi iş akışları
Group: "Customer Support"Agents: - SupportAgent (provides answer) - QAAgent (reviews quality, only responds if issues found)4. Görev otomasyonu
Group: "Project Management"Agents: - TaskTracker (updates task database) - TimeLogger (logs time spent) - ReportGenerator (creates summaries)Yapılandırma
Temel kurulum
Üst düzey bir broadcast bölümü ekleyin (bindings yanında). Anahtarlar WhatsApp eş id'leridir:
- grup sohbetleri: grup JID'si (örn.
120363403215116621@g.us) - DM'ler: E.164 telefon numarası (örn.
+15551234567)
{ "broadcast": { "120363403215116621@g.us": ["alfred", "baerbel", "assistant3"] }}Sonuç: OpenClaw bu sohbette yanıt vereceği zaman, üç ajanın tamamını çalıştırır.
İşleme stratejisi
Ajanların iletileri nasıl işleyeceğini denetleyin:
parallel (varsayılan)
Tüm ajanlar eş zamanlı işler:
{ "broadcast": { "strategy": "parallel", "120363403215116621@g.us": ["alfred", "baerbel"] }}sequential
Ajanlar sırayla işler (biri öncekinin bitmesini bekler):
{ "broadcast": { "strategy": "sequential", "120363403215116621@g.us": ["alfred", "baerbel"] }}Tam örnek
{ "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", "120363403215116621@g.us": ["code-reviewer", "security-auditor", "docs-generator"], "120363424282127706@g.us": ["support-en", "support-de"], "+15555550123": ["assistant", "logger"] }}Nasıl çalışır
İleti akışı
Gelen ileti ulaşır
Bir WhatsApp grubu veya DM iletisi ulaşır.
Yönlendirme ve kabul
OpenClaw kanal izin listelerini, grup etkinleştirme kurallarını ve yapılandırılmış ACP bağlama sahipliğini uygular.
Yayın denetimi
Yapılandırılmış hiçbir ACP bağlaması rotanın sahibi değilse OpenClaw, eş ID'nin broadcast içinde olup olmadığını denetler.
Yayın uygulanırsa
- Listelenen tüm ajanlar iletiyi işler.
- Her ajanın kendi oturum anahtarı ve yalıtılmış bağlamı vardır.
- Ajanlar paralel (varsayılan) veya sıralı olarak işler.
Yayın uygulanmazsa
OpenClaw, yönlendirme sırasında seçilen olağan rotayı veya yapılandırılmış ACP oturum rotasını gönderir.
Oturum yalıtımı
Bir yayın grubundaki her ajan tamamen ayrı şunları korur:
- Oturum anahtarları (
agent:alfred:whatsapp:group:120363...ileagent:baerbel:whatsapp:group:120363...karşılaştırması) - Konuşma geçmişi (ajan diğer ajanların iletilerini görmez)
- Çalışma alanı (yapılandırılmışsa ayrı sandbox'lar)
- Araç erişimi (farklı izin/verme listeleri)
- Bellek/bağlam (ayrı IDENTITY.md, SOUL.md, vb.)
- Grup bağlam arabelleği (bağlam için kullanılan son grup iletileri) eş başına paylaşılır; bu nedenle tüm yayın ajanları tetiklendiğinde aynı bağlamı görür
Bu, her ajanın şunlara sahip olmasını sağlar:
- Farklı kişilikler
- Farklı araç erişimi (örn. salt okunur ile okuma-yazma)
- Farklı modeller (örn. opus ile sonnet)
- Yüklü farklı Skills
Örnek: yalıtılmış oturumlar
120363403215116621@g.us grubunda ["alfred", "baerbel"] ajanlarıyla:
Alfred'in bağlamı
Session: agent:alfred:whatsapp:group:120363403215116621@g.usHistory: [user message, alfred's previous responses]Workspace: /Users/user/openclaw-alfred/Tools: read, write, execBärbel'in bağlamı
Session: agent:baerbel:whatsapp:group:120363403215116621@g.usHistory: [user message, baerbel's previous responses]Workspace: /Users/user/openclaw-baerbel/Tools: read onlyEn iyi uygulamalar
1. Ajanları odaklı tutun
Her ajanı tek ve net bir sorumlulukla tasarlayın:
{ "broadcast": { "DEV_GROUP": ["formatter", "linter", "tester"] }}✅ İyi: Her ajanın tek bir işi vardır. ❌ Kötü: Tek bir genel "dev-helper" ajanı.
2. Açıklayıcı adlar kullanın
Her ajanın ne yaptığını netleştirin:
{ "agents": { "security-scanner": { "name": "Security Scanner" }, "code-formatter": { "name": "Code Formatter" }, "test-generator": { "name": "Test Generator" } }}3. Farklı araç erişimi yapılandırın
Ajanlara yalnızca ihtiyaç duydukları araçları verin:
{ "agents": { "reviewer": { "tools": { "allow": ["read", "exec"] } }, "fixer": { "tools": { "allow": ["read", "write", "edit", "exec"] } } }}reviewer salt okunurdur. fixer okuyabilir ve yazabilir.
4. Performansı izleyin
Çok sayıda ajanla şunları değerlendirin:
- Hız için
"strategy": "parallel"(varsayılan) kullanma - Yayın gruplarını 5-10 ajanla sınırlama
- Daha basit ajanlar için daha hızlı modeller kullanma
5. Hataları zarifçe yönetin
Ajanlar bağımsız olarak başarısız olur. Bir ajanın hatası diğerlerini engellemez:
Message → [Agent A ✓, Agent B ✗ error, Agent C ✓]Result: Agent A and C respond, Agent B logs errorUyumluluk
Sağlayıcılar
Yayın grupları şu anda şunlarla çalışır:
- ✅ WhatsApp (uygulandı)
- 🚧 Telegram (planlandı)
- 🚧 Discord (planlandı)
- 🚧 Slack (planlandı)
Yönlendirme
Yayın grupları mevcut yönlendirmeyle birlikte çalışır:
{ "bindings": [ { "match": { "channel": "whatsapp", "peer": { "kind": "group", "id": "GROUP_A" } }, "agentId": "alfred" } ], "broadcast": { "GROUP_B": ["agent1", "agent2"] }}GROUP_A: Yalnızca alfred yanıt verir (normal yönlendirme).GROUP_B: agent1 VE agent2 yanıt verir (yayın).
Sorun giderme
Ajanlar yanıt vermiyor
Denetleyin:
- Ajan ID'leri
agents.listiçinde var. - Eş ID biçimi doğru (örn.
120363403215116621@g.us). - Ajanlar engelleme listelerinde değil.
Hata ayıklama:
tail -f ~/.openclaw/logs/gateway.log | grep broadcastYalnızca bir ajan yanıt veriyor
Neden: Eş ID olağan rota bağlamalarında olabilir ancak broadcast içinde olmayabilir veya özel yapılandırılmış bir ACP bağlamasıyla eşleşiyor olabilir.
Düzeltme: Olağan rotaya bağlı eşleri yayın yapılandırmasına ekleyin veya fan-out yayın isteniyorsa yapılandırılmış ACP bağlamasını kaldırın/değiştirin.
Performans sorunları
Çok sayıda ajanla yavaşsa:
- Grup başına ajan sayısını azaltın.
- Daha hafif modeller kullanın (opus yerine sonnet).
- Sandbox başlatma süresini denetleyin.
Örnekler
Örnek 1: Kod inceleme ekibi
{ "broadcast": { "strategy": "parallel", "120363403215116621@g.us": [ "code-formatter", "security-scanner", "test-coverage", "docs-checker" ] }, "agents": { "list": [ { "id": "code-formatter", "workspace": "~/agents/formatter", "tools": { "allow": ["read", "write"] } }, { "id": "security-scanner", "workspace": "~/agents/security", "tools": { "allow": ["read", "exec"] } }, { "id": "test-coverage", "workspace": "~/agents/testing", "tools": { "allow": ["read", "exec"] } }, { "id": "docs-checker", "workspace": "~/agents/docs", "tools": { "allow": ["read"] } } ] }}Kullanıcı gönderir: Kod parçacığı.
Yanıtlar:
- code-formatter: "Girinti düzeltildi ve tür ipuçları eklendi"
- security-scanner: "⚠️ 12. satırda SQL enjeksiyonu güvenlik açığı"
- test-coverage: "Kapsama %45, hata durumları için testler eksik"
- docs-checker: "
process_dataişlevi için docstring eksik"
Örnek 2: Çok dilli destek
{ "broadcast": { "strategy": "sequential", "+15555550123": ["detect-language", "translator-en", "translator-de"] }, "agents": { "list": [ { "id": "detect-language", "workspace": "~/agents/lang-detect" }, { "id": "translator-en", "workspace": "~/agents/translate-en" }, { "id": "translator-de", "workspace": "~/agents/translate-de" } ] }}API başvurusu
Yapılandırma şeması
interface OpenClawConfig { broadcast?: { strategy?: "parallel" | "sequential"; [peerId: string]: string[]; };}Alanlar
strategy"parallel" | "sequential"default: "parallel"Agentlerin nasıl işleneceği. parallel tüm agentleri eşzamanlı çalıştırır; sequential bunları dizi sırasına göre çalıştırır.
[peerId]string[]WhatsApp grup JID'si, E.164 numarası veya başka bir peer ID. Değer, mesajları işlemesi gereken agent ID'lerinin dizisidir.
Sınırlamalar
- Maksimum agent sayısı: Kesin bir sınır yoktur, ancak 10+ agent yavaş olabilir.
- Paylaşılan bağlam: Agentler birbirlerinin yanıtlarını görmez (tasarım gereği).
- Mesaj sıralaması: Paralel yanıtlar herhangi bir sırada gelebilir.
- Hız sınırları: Tüm agentler WhatsApp hız sınırlarına dahil edilir.
Gelecekteki iyileştirmeler
Planlanan özellikler:
- [ ] Paylaşılan bağlam modu (agentler birbirlerinin yanıtlarını görür)
- [ ] Agent koordinasyonu (agentler birbirlerine sinyal gönderebilir)
- [ ] Dinamik agent seçimi (mesaj içeriğine göre agentleri seçin)
- [ ] Agent öncelikleri (bazı agentler diğerlerinden önce yanıt verir)