Gruplar
OpenClaw, grup sohbetlerini tüm yüzeylerde tutarlı şekilde ele alır: WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Microsoft Teams.Başlangıç için 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"). - Açıkça mention gating’i devre dışı bırakmadıkça yanıtlar mention gerektirir.
TL;DRHı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 mention gating (
requireMention,/activation) ile kontrol edilir.
| Amaç | Ne ayarlanmalı |
|---|---|
| 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ı yok) |
| Gruplarda yalnızca siz tetikleyebilirsiniz | groupPolicy: "allowlist", groupAllowFrom: ["+1555..."] |
Oturum anahtarları
- Grup oturumları
agent:<agentId>:<channel>:group:<id>oturum anahtarlarını kullanır (odalar/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).
- Grup oturumları için heartbeat’ler atlanır.
Desen: kişisel DM’ler + herkese açık gruplar (tek ajan)
Evet — “kişisel” trafiğiniz DM’ler ve “herkese açık” trafiğiniz gruplar ise bu iyi çalışır. Neden: tek ajan 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. mode: "non-main" ile sandboxing’i etkinleştirirseniz, bu grup oturumları Docker’da çalışırken ana DM oturumunuz ana makinede kalır.
Bu size tek bir ajan “beyni” (paylaşılan çalışma alanı + bellek) fakat 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ı/kişilikler gerekiyorsa (“kişisel” ve “herkese açık” asla karışmamalı), ikinci bir ajan + bağlamalar kullanın. Bkz. Çoklu Ajan Yönlendirme.Örnek (DM’ler ana makinede, gruplar sandbox’ta + yalnızca mesajlaşma araçları):
workspaceAccess: "none"’u koruyun ve sandbox’a yalnızca izin listesine alınmış yolları bağlayın:
- Yapılandırma anahtarları ve varsayılanlar: Gateway yapılandırması
- Bir aracın neden engellendiğini ayıklama: Sandbox vs Araç Politikası vs Yükseltilmiş
- Bind mount ayrıntıları: Sandboxing
Görüntü etiketleri
- UI etiketleri, mevcut olduğunda
displayNamekullanır ve<channel>:<token>biçiminde formatlanır. #roomodalar/kanallar için ayrılmıştır; grup sohbetlerig-<slug>kullanır (küçük harf, boşluklar ->-,#@+._-korunur).
Grup politikası
Kanal başına grup/oda mesajlarının nasıl ele alınacağını kontrol edin:| Politika | Davranış |
|---|---|
"open" | Gruplar izin listelerini atlar; mention gating yine de geçerlidir. |
"disabled" | Tüm grup mesajlarını tamamen engeller. |
"allowlist" | Yalnızca yapılandırılmış izin listesiyle eşleşen gruplara/odalara izin verir. |
groupPolicy, mention gating’den ayrıdır (mention için @ gerektirir).- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams:
groupAllowFromkullanın (geri dönüş: açıkallowFrom). - Discord: izin listesi
channels.discord.guilds.<id>.channelskullanır. - Slack: izin listesi
channels.slack.channelskullanır. - Matrix: izin listesi
channels.matrix.groupskullanır (oda kimlikleri, takma adlar veya adlar). Gönderenleri 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"veya"alice") eşleşebilir; önekler büyük/küçük harfe duyarsızdır. - Varsayılan
groupPolicy: "allowlist"’tür; grup izin listeniz boşsa grup mesajları engellenir.
groupPolicy(open/disabled/allowlist)- grup izin listeleri (
*.groups,*.groupAllowFrom, kanala özgü izin listesi) - mention kısıtlaması (
requireMention,/activation)
Mention gating (varsayılan)
Grup mesajları, grup başına geçersiz kılınmadıkça mention gerektirir. Varsayılanlar, alt sistem başına*.groups."*" altında yer alır.
Bir bot mesajına yanıt vermek, kanal yanıt meta verilerini desteklediğinde örtük bir mention sayılır. Bu, Telegram, WhatsApp, Slack, Discord ve Microsoft Teams için geçerlidir.
mentionPatternsbüyük/küçük harfe duyarsız regex’lerdir.- Açık mention sağlayan yüzeyler yine de kabul edilir; desenler bir geri dönüş seçeneğidir.
- Ajan başına geçersiz kılma:
agents.list[].groupChat.mentionPatterns(birden fazla ajanın aynı grubu paylaştığı durumlarda yararlıdır). - Mention gating yalnızca mention tespiti mümkün olduğunda uygulanır (yerel mention’lar veya
mentionPatternsyapılandırıldığında). - Discord varsayılanları
channels.discord.guilds."*"’te yer alır (guild/kanal başına geçersiz kılınabilir). - Grup geçmişi bağlamı, kanallar arasında tutarlı biçimde sarılır ve yalnızca beklemededir (mention gating 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ılabileceğini kısıtlamayı destekler.tools: tüm grup için araçlara izin ver/engelle.toolsBySender: grup içinde gönderen başına geçersiz kılmalar (anahtarlar, kanala bağlı olarak gönderen kimlikleri/kullanıcı adları/e-postalar/telefon numaralarıdır). Joker olarak"*"kullanın.
- 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ç politikasına ek olarak uygulanır (engelleme her zaman kazanır).
- Bazı kanallar odalar/kanallar için farklı iç içe yerleşim kullanır (ör. Discord
guilds.*.channels.*, Slackchannels.*, MS Teamsteams.*.channels.*).
Grup izin listeleri
channels.whatsapp.groups, channels.telegram.groups veya channels.imessage.groups yapılandırıldığında, bu anahtarlar bir grup izin listesi olarak davranır. Varsayılan mention davranışını ayarlarken tüm gruplara izin vermek için "*" kullanın.
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 iste (açık)
- Gruplarda yalnızca sahibi tetikleyebilir (WhatsApp)
Etkinleştirme (yalnızca sahip)
Grup sahipleri, grup başına etkinleştirmeyi açıp kapatabilir:/activation mention/activation always
channels.whatsapp.allowFrom ile belirlenir (ayarlanmadıysa botun kendi E.164’ü). Komutu tek başına bir mesaj olarak gönderin. Diğer yüzeyler şu anda /activation’i yok sayar.
Bağlam alanları
Grup gelen payload’ları şunları ayarlar:ChatType=groupGroupSubject(biliniyorsa)GroupMembers(biliniyorsa)WasMentioned(mention gating sonucu)- Telegram forum konuları ayrıca
MessageThreadIdveIsForumiçerir.
\n dizilerini harfiyen yazmaktan kaçınması için hatırlatır.
iMessage ayrıntıları
- Yönlendirme veya izin listesine alma sırasında
chat_id:<id>’yı tercih edin. - Sohbetleri listeleme:
imsg chats --limit 20. - Grup yanıtları her zaman aynı
chat_id’e geri gider.