Gruplar
OpenClaw, Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp ve Zalo genelinde grup sohbetlerini tutarlı şekilde ele alır.Başlangıç düzeyi giriş (2 dakika)
OpenClaw, kendi mesajlaşma hesaplarınızda “yaşar”. Ayrı bir WhatsApp bot kullanıcısı yoktur. Siz bir gruptaysanız, OpenClaw o grubu görebilir ve orada yanıt verebilir. Varsayılan davranış:- Gruplar kısıtlıdır (
groupPolicy: "allowlist"). - Yanıtlar, mention geçitlemesini açıkça devre dışı bırakmadığınız sürece bir mention gerektirir.
ÖzetHızlı akış (bir grup mesajına ne olur):
- DM erişimi
*.allowFromile kontrol edilir.- Grup erişimi
*.groupPolicy+ allowlist’ler (*.groups,*.groupAllowFrom) ile kontrol edilir.- Yanıt tetikleme mention geçitlemesi (
requireMention,/activation) ile kontrol edilir.
Bağlam görünürlüğü ve allowlist’ler
Grup güvenliğinde iki farklı kontrol yer alır:- Tetikleme yetkilendirmesi: ajanı kimin tetikleyebileceği (
groupPolicy,groups,groupAllowFrom, kanala özel allowlist’ler). - Bağlam görünürlüğü: modele hangi ek bağlamın enjekte edildiği (yanıt metni, alıntılar, iş parçacığı geçmişi, iletilen meta veriler).
- Bazı kanallar belirli yollarda ek bağlam için zaten gönderici tabanlı filtreleme uygular (örneğin Slack iş parçacığı tohumlama, Matrix yanıt/iş parçacığı aramaları).
- Diğer kanallar ise alıntı/yanıt/iletme bağlamını alındığı haliyle geçirmeye devam eder.
contextVisibility: "all"(varsayılan) mevcut alındığı haliyle davranışı korur.contextVisibility: "allowlist"ek bağlamı allowlist’teki göndericilerle sınırlar.contextVisibility: "allowlist_quote"iseallowlistdavranışına ek olarak tek bir açık alıntı/yanıt istisnası sunar.
| Hedef | Ayarlanacak değer |
|---|---|
| Tüm gruplara izin ver ama yalnızca @mention ile yanıtla | 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 konuları, her konunun kendi oturumu olması için grup kimliğine
:topic:<threadId>ekler. - Doğrudan sohbetler ana oturumu kullanır (veya yapılandırıldıysa gönderen başına bir oturum kullanır).
- Heartbeat, grup oturumları için atlanır.
Desen: kişisel DM’ler + herkese açık gruplar (tek ajan)
Evet — “kişisel” trafiğiniz DM’ler, “herkese açık” trafiğiniz ise gruplar ise bu iyi çalışır. Neden: tek ajan modunda, DM’ler genellikle ana oturum anahtarına (agent:main:main) giderken gruplar her zaman ana olmayan oturum anahtarlarını kullanır (agent:main:<channel>:group:<id>). mode: "non-main" ile sandboxing’i etkinleştirirseniz, bu grup oturumları Docker içinde çalışırken ana DM oturumunuz ana makinede kalır.
Bu size tek bir ajan “beyni” (paylaşılan çalışma alanı + bellek) verir, ancak iki yürütme duruşu sağlar:
- DM’ler: tam araçlar (ana makine)
- Gruplar: sandbox + kısıtlı araçlar (Docker)
Gerçekten ayrı çalışma alanlarına/kişiliklere ihtiyacınız varsa (“kişisel” ve “herkese açık” asla karışmamalıysa), ikinci bir ajan + bindings kullanın. Bkz. Çoklu Ajan Yönlendirme.Örnek (DM’ler ana makinede, gruplar sandbox içinde + yalnızca mesajlaşma araçları):
workspaceAccess: "none" değerini koruyun ve yalnızca allowlist’teki yolları sandbox içine 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
- Bind mount ayrıntıları: Sandboxing
Görünen etiketler
- UI etiketleri, mevcutsa
displayNamekullanır ve<channel>:<token>biçiminde gösterilir. #roomodalar/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şleneceğini kontrol edin:| İlke | Davranış |
|---|---|
"open" | Gruplar allowlist’leri atlar; mention geçitlemesi yine de uygulanır. |
"disabled" | Tüm grup mesajlarını tamamen engeller. |
"allowlist" | Yalnızca yapılandırılmış allowlist ile eşleşen gruplara/odalara izin verir. |
groupPolicy, mention geçitlemesinden ayrıdır (bu, @mention gerektirir).- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo:
groupAllowFromkullanır (yedek: açıkallowFrom). - DM eşleştirme onayları (
*-allowFromstore girdileri) yalnızca DM erişimi için geçerlidir; grup gönderen yetkilendirmesi açık grup allowlist’lerinde kalır. - Discord: allowlist
channels.discord.guilds.<id>.channelskullanır. - Slack: allowlist
channels.slack.channelskullanır. - Matrix: allowlist
channels.matrix.groupskullanır. Oda kimliklerini veya takma adları tercih edin; katılınmış oda adı araması en iyi çabadır ve çözümlenemeyen adlar çalışma zamanında yok sayılır. Gönderenleri kısıtlamak içinchannels.matrix.groupAllowFromkullanın; oda başınausersallowlist’leri de desteklenir. - Grup DM’leri ayrı olarak kontrol edilir (
channels.discord.dm.*,channels.slack.dm.*). - Telegram allowlist, 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 duyarlı değildir. - Varsayılan
groupPolicy: "allowlist"değeridir; grup allowlist’iniz 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 fail-closed bir moda (genellikleallowlist) geri döner.
groupPolicy(open/disabled/allowlist)- grup allowlist’leri (
*.groups,*.groupAllowFrom, kanala özel allowlist) - mention geçitlemesi (
requireMention,/activation)
Mention geçitlemesi (varsayılan)
Grup mesajları, grup başına geçersiz kılınmadıkça bir mention gerektirir. Varsayılanlar alt sistem başına*.groups."*" altında bulunur.
Bir bot mesajına yanıt vermek, örtük bir mention sayılır (kanal yanıt meta verilerini destekliyorsa). Bu Telegram, WhatsApp, Slack, Discord ve Microsoft Teams için geçerlidir.
mentionPatterns, büyük/küçük harfe duyarsız güvenli regex kalıplarıdır; geçersiz kalıplar ve güvensiz iç içe tekrar biçimleri yok sayılır.- Açık mention sağlayan yüzeyler yine geçer; kalıplar bir yedektir.
- Ajan başına geçersiz kılma:
agents.list[].groupChat.mentionPatterns(birden fazla ajan aynı grubu paylaştığında yararlıdır). - Mention geçitlemesi yalnızca mention algılaması mümkün olduğunda uygulanır (yerel mention’lar 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 tek tip sarılır ve yalnızca bekleyen mesajları içerir (mention 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 ver veya reddet.toolsBySender: grup içindeki gönderen bazlı geçersiz kılmalar. Açık anahtar önekleri kullanın:id:<senderId>,e164:<phone>,username:<handle>,name:<displayName>ve"*"jokeri. Eski öneksiz anahtarlar da 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/ajan araç ilkesine ek olarak uygulanır (deny yine kazanır).
- Bazı kanallar oda/kanallar için farklı iç içe yapı kullanır (ör. Discord
guilds.*.channels.*, Slackchannels.*, Microsoft Teamsteams.*.channels.*).
Grup allowlist’leri
channels.whatsapp.groups, channels.telegram.groups veya channels.imessage.groups yapılandırıldığında, anahtarlar grup allowlist’i işlevi görür. Varsayılan mention davranışını yine de ayarlarken tüm gruplara izin vermek için "*" kullanın.
Yaygın karışıklık: DM eşleştirme onayı, grup yetkilendirmesi ile aynı şey değildir.
DM eşleştirmeyi destekleyen kanallarda, eşleştirme deposu yalnızca DM’lerin kilidini açar. Grup komutları ise hâlâ groupAllowFrom gibi yapılandırma allowlist’lerinden veya o kanal için belgelenmiş yapılandırma yedeğinden açık grup gönderen 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 mention gerektir (açık)
- Gruplarda yalnızca sahip tetikleyebilsin (WhatsApp)
Activation (yalnızca sahip)
Grup sahipleri, grup başına activation durumunu değiştirebilir:/activation mention/activation always
channels.whatsapp.allowFrom ile belirlenir (ayarlanmamışsa botun kendi E.164 değeri kullanılır). Komutu bağımsız 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(mention geçitlemesi sonucu)- Telegram forum konuları ayrıca
MessageThreadIdveIsForumiçerir.
- BlueBubbles, adsız macOS grup katılımcılarını
GroupMembersalanını doldurmadan önce isteğe bağlı olarak yerel Contacts veritabanından zenginleştirebilir. Bu varsayılan olarak kapalıdır ve yalnızca normal grup geçitlemesi başarıyla geçildikten sonra çalışır.
\n dizilerini yazmamasını hatırlatır.
iMessage ayrıntıları
- Yönlendirme veya allowlist için
chat_id:<id>tercih edin. - Sohbetleri listeleyin:
imsg chats --limit 20. - Grup yanıtları her zaman aynı
chat_iddeğerine geri gider.