Gruplar
OpenClaw, grup sohbetlerini yüzeyler arasında tutarlı şekilde ele alır: Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo.Başlangıç düzeyi giriş (2 dakika)
OpenClaw, kendi mesajlaşma hesaplarınız üzerinde “yaşar”. Ayrı bir WhatsApp bot kullanıcısı yoktur. Eğer siz bir gruptaysanız, OpenClaw bu grubu görebilir ve orada yanıt verebilir. Varsayılan davranış:- Gruplar kısıtlıdır (
groupPolicy: "allowlist"). - Siz açıkça bahsetme geçitlemesini devre dışı bırakmadıkça yanıtlar bir bahsetme gerektirir.
ÖzetleHızlı akış (bir grup mesajına ne olur):
- DM erişimi
*.allowFromile kontrol edilir.- Grup erişimi
*.groupPolicy+ izin listeleri (*.groups,*.groupAllowFrom) ile kontrol edilir.- Yanıt tetikleme bahsetme geçitlemesi (
requireMention,/activation) ile kontrol edilir.
Bağlam görünürlüğü ve izin listeleri
Grup güvenliğinde iki farklı denetim yer alır:- Tetikleme yetkilendirmesi: aracı kimin tetikleyebileceği (
groupPolicy,groups,groupAllowFrom, kanala özgü izin listeleri). - Bağlam görünürlüğü: modele hangi ek bağlamın enjekte edildiği (yanıt metni, alıntılar, konu geçmişi, iletilen meta veriler).
- Bazı kanallar, belirli yollarda ek bağlam için zaten gönderici tabanlı filtreleme uygular (örneğin Slack konu başlangıç bağlamı, Matrix yanıt/konu aramaları).
- Diğer kanallar ise alıntı/yanıt/iletme bağlamını alındığı gibi geçirmeye devam eder.
contextVisibility: "all"(varsayılan) mevcut alındığı gibi davranışını korur.contextVisibility: "allowlist"ek bağlamı izin listesine alınmış göndericilerle sınırlar.contextVisibility: "allowlist_quote"allowlistdavranışına ek olarak tek bir açık alıntı/yanıt istisnası içerir.
| Hedef | Ayarlanacak değer |
|---|---|
| Tüm gruplara izin ver ama yalnızca @bahsetmelerde yanıt ver | groups: { "*": { requireMention: true } } |
| Tüm grup yanıtlarını devre dışı bırak | groupPolicy: "disabled" |
| Yalnızca belirli gruplar | groups: { "<group-id>": { ... } } ("*" anahtarı olmadan) |
| Gruplarda yalnızca siz tetikleyebilin | groupPolicy: "allowlist", groupAllowFrom: ["+1555..."] |
Oturum anahtarları
- Grup oturumları
agent:<agentId>:<channel>:group:<id>oturum anahtarlarını kullanır (oda/kanallaragent:<agentId>:<channel>:channel:<id>kullanır). - Telegram forum başlıkları, her başlığın kendi oturumu olması için grup kimliğine
:topic:<threadId>ekler. - Doğrudan sohbetler ana oturumu kullanır (veya yapılandırılmışsa gönderici başına oturumu).
- Heartbeat, grup oturumları için atlanır.
Desen: kişisel DM’ler + herkese açık gruplar (tek aracı)
Evet — eğer “kişisel” trafiğiniz DM’ler, “genel” trafiğiniz ise gruplar ise bu iyi çalışır. Neden: tek aracı modunda DM’ler genellikle ana oturum anahtarına (agent:main:main) düşer, gruplar ise her zaman ana olmayan oturum anahtarlarını (agent:main:<channel>:group:<id>) kullanır. Korumalı alanı mode: "non-main" ile etkinleştirirseniz, bu grup oturumları yapılandırılmış korumalı alan arka ucunda çalışırken ana DM oturumunuz host üzerinde kalır. Siz bir tane seçmezseniz varsayılan arka uç Docker’dır.
Bu size tek bir aracı “beyni” (paylaşılan çalışma alanı + bellek), ama iki yürütme duruşu verir:
- DM’ler: tam araçlar (host)
- Gruplar: korumalı alan + kısıtlı araçlar
Gerçekten ayrı çalışma alanları/kişilikler gerekiyorsa (“kişisel” ve “genel” asla karışmamalıysa), ikinci bir aracı + bağlamalar kullanın. Bkz. Çoklu Aracı Yönlendirme.Örnek (DM’ler host üzerinde, gruplar korumalı alanda + yalnızca mesajlaşma araçları):
workspaceAccess: "none" değerini koruyun ve yalnızca izin listesine alınmış yolları korumalı alana bağlayın:
- Yapılandırma anahtarları ve varsayılanlar: Gateway yapılandırması
- Bir aracın neden engellendiğini ayıklama: Sandbox vs Tool Policy vs Elevated
- Bağlama bağları ayrıntıları: Sandboxing
Görüntüleme etiketleri
- UI etiketleri, varsa
displayNamekullanır ve<channel>:<token>biçiminde gösterilir. #roomoda/kanallar için ayrılmıştır; grup sohbetlerig-<slug>kullanır (küçük harf, boşluklar ->-,#@+._-korunur).
Grup ilkesi
Grup/oda mesajlarının kanal başına nasıl işlendiğini kontrol edin:| İlke | Davranış |
|---|---|
"open" | Gruplar izin listelerini atlar; bahsetme geçitlemesi yine de uygulanır. |
"disabled" | Tüm grup mesajlarını tamamen engeller. |
"allowlist" | Yalnızca yapılandırılmış izin listesiyle eşleşen grup/odalara izin verir. |
groupPolicy, bahsetme geçitlemesinden ayrıdır (bu, @bahsetmeleri gerektirir).- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo:
groupAllowFromkullanın (yedek: açıkallowFrom). - DM eşleştirme onayları (
*-allowFromdepo girdileri) yalnızca DM erişimi için geçerlidir; grup gönderici yetkilendirmesi grup izin listelerinde açık kalır. - Discord: izin listesi
channels.discord.guilds.<id>.channelskullanır. - Slack: izin listesi
channels.slack.channelskullanır. - Matrix: izin listesi
channels.matrix.groupskullanır. Oda kimliklerini veya takma adları tercih edin; katılınmış oda adı araması en iyi çabadır ve çözümlenmemiş adlar çalışma zamanında yok sayılır. Göndericileri kısıtlamak içinchannels.matrix.groupAllowFromkullanın; oda başınausersizin listeleri de desteklenir. - Grup DM’leri ayrı olarak kontrol edilir (
channels.discord.dm.*,channels.slack.dm.*). - Telegram izin listesi kullanıcı kimlikleriyle (
"123456789","telegram:123456789","tg:123456789") veya kullanıcı adlarıyla ("@alice"ya da"alice") eşleşebilir; önekler büyük/küçük harfe duyarsızdır. - Varsayılan
groupPolicy: "allowlist"değeridir; grup izin listeniz boşsa grup mesajları engellenir. - Çalışma zamanı güvenliği: bir sağlayıcı bloğu tamamen eksik olduğunda (
channels.<provider>yoksa), grup ilkesichannels.defaults.groupPolicydeğerini devralmak yerine başarısızlıkta kapalı moda (genellikleallowlist) döner.
groupPolicy(open/disabled/allowlist)- grup izin listeleri (
*.groups,*.groupAllowFrom, kanala özgü izin listesi) - bahsetme geçitlemesi (
requireMention,/activation)
Bahsetme geçitlemesi (varsayılan)
Aksi grup başına geçersiz kılınmadıkça grup mesajları bir bahsetme gerektirir. Varsayılanlar her alt sistem için*.groups."*" altında bulunur.
Bir bot mesajına yanıt vermek, kanal yanıt meta verilerini destekliyorsa örtük bir bahsetme sayılır. Bir bot mesajını alıntılamak da alıntı meta verilerini sunan kanallarda örtük bir bahsetme sayılabilir. Geçerli yerleşik örnekler arasında Telegram, WhatsApp, Slack, Discord, Microsoft Teams ve ZaloUser bulunur.
mentionPatterns, büyük/küçük harfe duyarsız güvenli regex kalıplarıdır; geçersiz kalıplar ve güvenli olmayan iç içe tekrar biçimleri yok sayılır.- Açık bahsetme sağlayan yüzeyler yine geçer; kalıplar bir yedektir.
- Aracı başına geçersiz kılma:
agents.list[].groupChat.mentionPatterns(birden fazla aracı bir grubu paylaşıyorsa kullanışlıdır). - Bahsetme geçitlemesi yalnızca bahsetme algılaması mümkün olduğunda uygulanır (yerel bahsetmeler veya
mentionPatternsyapılandırılmışsa). - Discord varsayılanları
channels.discord.guilds."*"altında bulunur (sunucu/kanal başına geçersiz kılınabilir). - Grup geçmişi bağlamı kanallar arasında tutarlı şekilde sarılır ve yalnızca beklemede olan durumlar içindir (bahsetme geçitlemesi nedeniyle atlanan mesajlar); genel varsayılan için
messages.groupChat.historyLimit, geçersiz kılmalar içinchannels.<channel>.historyLimit(veyachannels.<channel>.accounts.*.historyLimit) kullanın. Devre dışı bırakmak için0ayarlayın.
Grup/kanal araç kısıtlamaları (isteğe bağlı)
Bazı kanal yapılandırmaları, belirli bir grup/oda/kanal içinde hangi araçların kullanılabildiğini kısıtlamayı destekler.tools: tüm grup için araçlara izin verin/engelleyin.toolsBySender: grup içindeki gönderici başına geçersiz kılmalar. Açık anahtar önekleri kullanın:id:<senderId>,e164:<phone>,username:<handle>,name:<displayName>ve"*"joker karakteri. Eski öneksiz anahtarlar hâlâ kabul edilir ve yalnızcaid:olarak eşleştirilir.
- grup/kanal
toolsBySendereşleşmesi - grup/kanal
tools - varsayılan (
"*")toolsBySendereşleşmesi - varsayılan (
"*")tools
- Grup/kanal araç kısıtlamaları, genel/aracı araç ilkesine ek olarak uygulanır (deny yine önceliklidir).
- Bazı kanallar oda/kanallar için farklı iç içe yapılar kullanır (ör. Discord
guilds.*.channels.*, Slackchannels.*, Microsoft Teamsteams.*.channels.*).
Grup izin listeleri
channels.whatsapp.groups, channels.telegram.groups veya channels.imessage.groups yapılandırıldığında, anahtarlar bir grup izin listesi işlevi görür. Varsayılan bahsetme davranışını ayarlamaya devam ederken tüm gruplara izin vermek için "*" kullanın.
Yaygın karışıklık: DM eşleştirme onayı, grup yetkilendirmesiyle aynı şey değildir.
DM eşleştirmesini destekleyen kanallarda eşleştirme deposu yalnızca DM’lerin kilidini açar. Grup komutları yine de groupAllowFrom gibi yapılandırma izin listelerinden veya o kanal için belgelenmiş yapılandırma yedeğinden açık grup gönderici yetkilendirmesi gerektirir.
Yaygın amaçlar (kopyala/yapıştır):
- Tüm grup yanıtlarını devre dışı bırak
- Yalnızca belirli gruplara izin ver (WhatsApp)
- Tüm gruplara izin ver ama bahsetme gerektir (açık)
- Gruplarda yalnızca sahip tetikleyebilsin (WhatsApp)
Aktivasyon (yalnızca sahip)
Grup sahipleri grup başına aktivasyonu değiştirebilir:/activation mention/activation always
channels.whatsapp.allowFrom ile belirlenir (ayarlanmamışsa botun kendi E.164 değeri kullanılır). Komutu tek başına bir mesaj olarak gönderin. Diğer yüzeyler şu anda /activation komutunu yok sayar.
Bağlam alanları
Grup gelen yükleri şunları ayarlar:ChatType=groupGroupSubject(biliniyorsa)GroupMembers(biliniyorsa)WasMentioned(bahsetme geçitlemesi sonucu)- Telegram forum başlıkları ayrıca
MessageThreadIdveIsForumiçerir.
- BlueBubbles, adsız macOS grup katılımcılarını
GroupMembersalanını doldurmadan önce yerel Contacts veritabanından isteğe bağlı olarak zenginleştirebilir. Bu varsayılan olarak kapalıdır ve yalnızca normal grup geçitlemesi geçtikten sonra çalışır.
\n dizilerini yazmaktan kaçınmasını hatırlatır.
iMessage ayrıntıları
- Yönlendirme veya izin listesi için
chat_id:<id>tercih edin. - Sohbetleri listeleyin:
imsg chats --limit 20. - Grup yanıtları her zaman aynı
chat_iddeğerine geri gider.