Configuration
Yayın grupları
Genel bakış
Yayın Grupları, birden fazla aracını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 özelleşmiş aracı ekipleri oluşturmanıza olanak tanır — hepsi tek bir telefon numarası kullanarak.
Geçerli kapsam: yalnızca WhatsApp (web kanalı).
Yayın grupları, kanal izin listelerinden ve grup etkinleştirme kurallarından sonra değerlendirilir. WhatsApp gruplarında bu, yayınların OpenClaw'ın normalde yanıt vereceği durumlarda gerçekleştiği anlamına gelir (örneğin: grup ayarlarınıza bağlı olarak bahsedildiğinde).
Kullanım örnekleri
1. Özelleşmiş aracı ekipleri
Atomik ve odaklanmış sorumluluklara sahip birden fazla aracı dağıtın:
Group: "Development Team"
Agents:
- CodeReviewer (reviews code snippets)
- DocumentationBot (generates docs)
- SecurityAuditor (checks for vulnerabilities)
- TestGenerator (suggests test cases)
Her aracı 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üvence 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ş kimlikleridir:
- grup sohbetleri: grup JID'si (örn.
[email protected]) - DM'ler: E.164 telefon numarası (örn.
+15551234567)
{
"broadcast": {
"[email protected]": ["alfred", "baerbel", "assistant3"]
}
}
Sonuç: OpenClaw bu sohbette yanıt vereceği zaman üç aracının tamamını çalıştırır.
İşleme stratejisi
Aracıların iletileri nasıl işlediğini denetleyin:
parallel (varsayılan)
Tüm aracılar eşzamanlı olarak işler:
{
"broadcast": {
"strategy": "parallel",
"[email protected]": ["alfred", "baerbel"]
}
}
sequential
Aracılar sırayla işler (biri öncekinin bitmesini bekler):
{
"broadcast": {
"strategy": "sequential",
"[email protected]": ["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",
"[email protected]": ["code-reviewer", "security-auditor", "docs-generator"],
"[email protected]": ["support-en", "support-de"],
"+15555550123": ["assistant", "logger"]
}
}
Nasıl çalışır
İleti akışı
Gelen ileti ulaşır
Bir WhatsApp grup veya DM iletisi gelir.
Yayın denetimi
Sistem, eş kimliğinin broadcast içinde olup olmadığını denetler.
Yayın listesindeyse
- Listelenen tüm aracılar iletiyi işler.
- Her aracının kendi oturum anahtarı ve yalıtılmış bağlamı vardır.
- Aracılar paralel (varsayılan) veya sıralı olarak işler.
Yayın listesinde değilse
Normal yönlendirme uygulanır (ilk eşleşen bağlama).
Oturum yalıtımı
Bir yayın grubundaki her aracı tamamen ayrı şunları korur:
- Oturum anahtarları (
agent:alfred:whatsapp:group:120363...veagent:baerbel:whatsapp:group:120363...) - Konuşma geçmişi (aracı diğer aracıların iletilerini görmez)
- Çalışma alanı (yapılandırıldıysa ayrı korumalı alanlar)
- 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, böylece tüm yayın aracıları tetiklendiğinde aynı bağlamı görür
Bu, her aracının şunlara sahip olmasını sağlar:
- Farklı kişilikler
- Farklı araç erişimi (örn. salt okunur ve okuma-yazma)
- Farklı modeller (örn. opus ve sonnet)
- Farklı Skills kurulu
Örnek: yalıtılmış oturumlar
["alfred", "baerbel"] aracılarıyla [email protected] grubunda:
Alfred'in bağlamı
Session: agent:alfred:whatsapp:group:[email protected]
History: [user message, alfred's previous responses]
Workspace: /Users/user/openclaw-alfred/
Tools: read, write, exec
Bärbel'in bağlamı
Session: agent:baerbel:whatsapp:group:[email protected]
History: [user message, baerbel's previous responses]
Workspace: /Users/user/openclaw-baerbel/
Tools: read only
En iyi uygulamalar
1. Aracıları odaklı tutun
Her aracıyı tek ve net bir sorumlulukla tasarlayın:
{
"broadcast": {
"DEV_GROUP": ["formatter", "linter", "tester"]
}
}
✅ İyi: Her aracının bir işi vardır. ❌ Kötü: Tek bir genel "dev-helper" aracısı.
2. Açıklayıcı adlar kullanın
Her aracını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
Aracılara 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 aracıyla şunları göz önünde bulundurun:
- Hız için
"strategy": "parallel"(varsayılan) kullanma - Yayın gruplarını 5-10 aracıyla sınırlama
- Daha basit aracılar için daha hızlı modeller kullanma
5. Hataları zarifçe yönetin
Aracılar bağımsız olarak başarısız olur. Bir aracının hatası diğerlerini engellemez:
Message → [Agent A ✓, Agent B ✗ error, Agent C ✓]
Result: Agent A and C respond, Agent B logs error
Uyumluluk
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
Aracılar yanıt vermiyor
Denetleyin:
- Aracı kimlikleri
agents.listiçinde mevcut. - Eş kimliği biçimi doğru (örn.
[email protected]). - Aracılar engelleme listelerinde değil.
Hata ayıklama:
tail -f ~/.openclaw/logs/gateway.log | grep broadcast
Yalnızca bir aracı yanıt veriyor
Neden: Eş kimliği bindings içinde olabilir ancak broadcast içinde olmayabilir.
Çözüm: Yayın yapılandırmasına ekleyin veya bağlamalardan kaldırın.
Performans sorunları
Çok sayıda aracıyla yavaşsa:
- Grup başına aracı sayısını azaltın.
- Daha hafif modeller kullanın (opus yerine sonnet).
- Korumalı alan başlatma süresini denetleyin.
Örnekler
Örnek 1: Kod inceleme ekibi
{
"broadcast": {
"strategy": "parallel",
"[email protected]": [
"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 type hint'ler eklendi"
- security-scanner: "⚠️ 12. satırda SQL injection açığı"
- test-coverage: "Kapsam %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"Aracıların nasıl işleneceği. parallel tüm aracıları eşzamanlı olarak çalıştırır; sequential onları dizi sırasına göre çalıştırır.
[peerId]string[]WhatsApp grup JID'si, E.164 numarası veya başka bir eş kimliği. Değer, iletileri işlemesi gereken aracı kimlikleri dizisidir.
Sınırlamalar
- Maksimum aracı: Katı bir sınır yok, ancak 10+ aracı yavaş olabilir.
- Paylaşılan bağlam: Aracılar birbirlerinin yanıtlarını görmez (tasarım gereği).
- İleti sıralaması: Paralel yanıtlar herhangi bir sırada gelebilir.
- Hız sınırları: Tüm aracılar WhatsApp hız sınırlarına dahil edilir.
Gelecekteki geliştirmeler
Planlanan özellikler:
- [ ] Paylaşılan bağlam modu (aracılar birbirlerinin yanıtlarını görür)
- [ ] Aracı koordinasyonu (aracılar birbirlerine sinyal verebilir)
- [ ] Dinamik aracı seçimi (ileti içeriğine göre aracı seçme)
- [ ] Aracı öncelikleri (bazı aracılar diğerlerinden önce yanıt verir)