OpenClaw grup sohbetlerini yüzeyler arasında tutarlı şekilde ele alır: Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Başlangıç tanıtımı (2 dakika)
OpenClaw kendi mesajlaşma hesaplarınızda “yaşar”. Ayrı bir WhatsApp bot kullanıcısı yoktur. Bir grupta siz varsa, OpenClaw o grubu görebilir ve orada yanıt verebilir. Varsayılan davranış:- Gruplar kısıtlanır (
groupPolicy: "allowlist"). - Bahsetme kısıtlamasını açıkça devre dışı bırakmadığınız sürece yanıtlar bahsetme gerektirir.
- Gruplarda/kanallarda normal nihai yanıtlar varsayılan olarak özeldir. Görünür oda çıktısı
messagearacını kullanır.
Özet
- DM erişimi
*.allowFromile denetlenir. - Grup erişimi
*.groupPolicy+ izin listeleri (*.groups,*.groupAllowFrom) ile denetlenir. - Yanıt tetikleme bahsetme kısıtlaması (
requireMention,/activation) ile denetlenir.
Görünür yanıtlar
Grup/kanal odaları için OpenClaw varsayılan olarakmessages.groupChat.visibleReplies: "message_tool" kullanır.
openclaw doctor --fix, bunu atlayan yapılandırılmış kanal yapılandırmalarına bu varsayılanı yazar.
Bu, aracının yine de sırayı işlediği ve bellek/oturum durumunu güncelleyebildiği, ancak normal nihai yanıtının otomatik olarak odaya geri gönderilmediği anlamına gelir. Görünür şekilde konuşmak için aracı message(action=send) kullanır.
Bu varsayılan, araçları güvenilir şekilde çağıran bir model/çalışma zamanına bağlıdır. Günlükler
asistan metni gösteriyor ama didSendViaMessagingTool: false ise model, mesaj aracını
çağırmak yerine özel olarak yanıtlamıştır. Bu bir Discord/Slack/Telegram gönderme hatası
değildir. Grup/kanal oturumları için araç çağrısında güvenilir bir model kullanın veya eski görünür
nihai yanıtları geri getirmek için
messages.groupChat.visibleReplies: "automatic" ayarlayın.
Mesaj aracı etkin araç ilkesi altında kullanılamıyorsa OpenClaw yanıtı sessizce bastırmak yerine
otomatik görünür yanıtlara geri döner.
openclaw doctor bu uyumsuzluk hakkında uyarır.
Doğrudan sohbetler ve diğer tüm kaynak sıraları için aynı yalnızca araçla görünür yanıt davranışını genel olarak uygulamak üzere messages.visibleReplies: "message_tool" kullanın. Harness’ler bunu ayarlanmamış varsayılanları olarak da seçebilir; Codex harness bunu Codex modu doğrudan sohbetler için yapar. messages.groupChat.visibleReplies, grup/kanal odaları için daha özel geçersiz kılma olarak kalır.
Bu, çoğu gözlem modu sırası için modeli NO_REPLY yanıtı vermeye zorlamaya dayalı eski kalıbın yerini alır. Yalnızca araç modunda görünür hiçbir şey yapmamak, basitçe mesaj aracını çağırmamak anlamına gelir.
Aracı yalnızca araç modunda çalışırken yazıyor göstergeleri yine de gönderilir. Bu sıralar için varsayılan grup yazıyor modu “message” yerine “instant” olarak yükseltilir, çünkü aracı mesaj aracını çağırıp çağırmayacağına karar vermeden önce normal asistan mesaj metni hiç olmayabilir. Açık yazıyor modu yapılandırması yine de önceliklidir.
Grup/kanal odaları için eski otomatik nihai yanıtları geri getirmek için:
messages yapılandırmasını canlı yeniden yükler. Yalnızca
dağıtımda dosya izleme veya yapılandırma yeniden yükleme devre dışıysa yeniden başlatın.
Her kaynak sohbet için görünür çıktının mesaj aracından geçmesini zorunlu kılmak üzere:
visibleReplies: "message_tool" ayarını atlar ve kanalın yerel komut kullanıcı arayüzünün beklediği yanıtı alması için her zaman görünür şekilde yanıt verir. Bu yalnızca doğrulanmış yerel komut sıraları için geçerlidir; metin olarak yazılan /... komutları ve sıradan sohbet sıraları yapılandırılmış grup varsayılanını izlemeye devam eder.
Bağlam görünürlüğü ve izin listeleri
Grup güvenliği için iki farklı denetim söz konusudur:- Tetikleme yetkilendirmesi: aracı kim tetikleyebilir (
groupPolicy,groups,groupAllowFrom, kanala özgü izin listeleri). - Bağlam görünürlüğü: modele hangi ek bağlam enjekte edilir (yanıt metni, alıntılar, konu geçmişi, iletilmiş üst veriler).
Geçerli davranış kanala özgüdür
Geçerli davranış kanala özgüdür
- Bazı kanallar, belirli yollarda ek bağlam için zaten gönderen tabanlı filtreleme uygular (örneğin Slack konu başlatma, Matrix yanıt/konu aramaları).
- Diğer kanallar alıntı/yanıt/iletme bağlamını alındığı gibi geçirmeye devam eder.
Sertleştirme yönü (planlanan)
Sertleştirme yönü (planlanan)
contextVisibility: "all"(varsayılan) geçerli alındığı gibi davranışı korur.contextVisibility: "allowlist"ek bağlamı izin listesindeki gönderenlere filtreler.contextVisibility: "allowlist_quote",allowlistartı bir açık alıntı/yanıt istisnasıdır.
| Hedef | Ayarlanacak şey |
|---|---|
| Tüm gruplara izin ver ama yalnızca @bahsetmelerde 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..."] |
| Kanallar arasında tek bir güvenilen gönderen kümesini yeniden kullan | groupAllowFrom: ["accessGroup:operators"] |
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ı grup kimliğine
:topic:<threadId>ekler, böylece her konunun kendi oturumu olur. - Doğrudan sohbetler ana oturumu kullanır (veya yapılandırılmışsa gönderen başına).
- Heartbeat’ler grup oturumları için atlanır.
Kalıp: kişisel DM’ler + genel gruplar (tek aracı)
Evet, “kişisel” trafiğiniz DM’ler ve “genel” trafiğiniz gruplar ise bu iyi çalışır. Nedeni: tek aracı modunda DM’ler genellikle ana oturum anahtarına (agent:main:main) düşerken, gruplar her zaman ana olmayan oturum anahtarlarını (agent:main:<channel>:group:<id>) kullanır. mode: "non-main" ile sandbox kullanımını etkinleştirirseniz bu grup oturumları yapılandırılmış sandbox arka ucunda çalışır, ana DM oturumunuz ise ana makinede kalır. Birini seçmezseniz varsayılan arka uç Docker’dır.
Bu size tek bir aracı “beyni” (paylaşılan çalışma alanı + bellek), ancak iki yürütme duruşu verir:
- DM’ler: tam araçlar (ana makine)
- Gruplar: sandbox + kısıtlı araçlar
Gerçekten ayrı çalışma alanlarına/kişiliklere ihtiyacınız varsa (“kişisel” ve “genel” asla karışmamalıysa), ikinci bir aracı + bağlamalar kullanın. Bkz. Çok Aracılı Yönlendirme.
- DM’ler ana makinede, gruplar sandbox’ta
- Gruplar yalnızca izin verilenler listesindeki bir klasörü görür
- Yapılandırma anahtarları ve varsayılanlar: Gateway yapılandırması
- Bir aracın neden engellendiğini hata ayıklama: Sandbox ve Araç İlkesi ve Elevated
- Bağlama noktası ayrıntıları: Sandbox kullanımı
Görünen etiketler
- Kullanıcı arayüzü etiketleri varsa
displayNamekullanır ve<channel>:<token>olarak biçimlendirilir. #roomodalar/kanallar için ayrılmıştır; grup sohbetlerig-<slug>kullanır (küçük harf, boşluklar ->-,#@+._-koru).
Grup ilkesi
Grup/oda mesajlarının kanal başına nasıl ele alınacağını denetleyin:| İlke | Davranış |
|---|---|
"open" | Gruplar izin listelerini atlar; bahsetme kısıtlaması yine de uygulanır. |
"disabled" | Tüm grup mesajlarını tamamen engeller. |
"allowlist" | Yalnızca yapılandırılmış izin listesiyle eşleşen gruplara/odalara izin verir. |
Per-channel notes
Per-channel notes
groupPolicy, bahsetme kapısından ayrıdır (@bahsetmeleri gerektirir).- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo:
groupAllowFromkullanın (geri dönüş: açıkallowFrom). - Signal:
groupAllowFrom, gelen Signal grup kimliğiyle veya gönderen telefon/UUID değeriyle eşleşebilir. - DM eşleştirme onayları (
*-allowFromdepo girdileri) yalnızca DM erişimi için geçerlidir; grup gönderen 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 çaba temelindedir ve çözümlenmeyen adlar çalışma zamanında yok sayılır. Gönderenleri kısıtlamak içinchannels.matrix.groupAllowFromkullanın; oda başınausersizin listeleri de desteklenir. - Grup DM’leri ayrı denetlenir (
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 politikasıchannels.defaults.groupPolicydeğerini devralmak yerine kapalı hata moduna (genellikleallowlist) geri döner.
Bahsetme kapısı (varsayılan)
Grup mesajları, grup bazında geçersiz kılınmadıkça bir bahsetme gerektirir. Varsayılanlar her alt sistemde*.groups."*" altında bulunur.
Kanal yanıt meta verilerini desteklediğinde bir bot mesajına yanıt vermek örtük bir bahsetme sayılır. Bir bot mesajını alıntılamak da alıntı meta verilerini açığa çıkaran kanallarda örtük bir bahsetme sayılabilir. Mevcut yerleşik durumlar Telegram, WhatsApp, Slack, Discord, Microsoft Teams ve ZaloUser içerir.
Mention gating notes
Mention gating notes
mentionPatterns, büyük/küçük harfe duyarsız güvenli regex desenleridir; geçersiz desenler ve güvenli olmayan iç içe yineleme biçimleri yok sayılır.- Açık bahsetmeler sağlayan yüzeyler yine de geçer; desenler bir geri dönüştür.
- Ajan başına geçersiz kılma:
agents.list[].groupChat.mentionPatterns(birden fazla ajan bir grubu paylaştığında kullanışlıdır). - Bahsetme kapısı yalnızca bahsetme algılaması mümkün olduğunda (yerel bahsetmeler veya
mentionPatternsyapılandırıldığında) uygulanır. - Bir grubu veya göndereni izin listesine almak bahsetme kapısını devre dışı bırakmaz; tüm mesajların tetiklemesi gerektiğinde o grubun
requireMentiondeğerinifalseolarak ayarlayın. - Grup sohbeti istem bağlamı, çözümlenmiş sessiz yanıt talimatını her turda taşır; çalışma alanı dosyaları
NO_REPLYmekaniklerini çoğaltmamalıdır. - Sessiz yanıtlara izin verilen gruplar, temiz boş veya yalnızca akıl yürütme içeren model turlarını
NO_REPLYile eşdeğer biçimde sessiz kabul eder. Doğrudan sohbetler bunu yalnızca doğrudan sessiz yanıtlara açıkça izin verildiğinde yapar; aksi halde boş yanıtlar başarısız ajan turları olarak kalır. - Discord varsayılanları
channels.discord.guilds."*"içinde bulunur (lonca/kanal bazında geçersiz kılınabilir). - Grup geçmişi bağlamı kanallar arasında tek biçimde sarmalanır. Bahsetme kapılı gruplar bekleyen atlanmış mesajları tutar; her zaman açık gruplar, kanal desteklediğinde yakın zamanda işlenmiş oda mesajlarını da saklayabilir. 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ılabilir olduğunu kısıtlamayı destekler.tools: tüm grup için araçlara izin ver/araçları reddet.toolsBySender: grup içinde gönderen başına geçersiz kılmalar. Açık anahtar önekleri kullanın:channel:<channelId>:<senderId>,id:<senderId>,e164:<phone>,username:<handle>,name:<displayName>ve"*"joker karakteri. Kanal kimlikleri kanonik OpenClaw kanal kimliklerini kullanır;teamsgibi takma adlarmsteamsolarak normalize edilir. Eski öneksiz anahtarlar hâlâ kabul edilir ve yalnızcaid:olarak eşleştirilir.
Örnek (Telegram):
Grup/kanal araç kısıtlamaları global/ajan araç politikasına ek olarak uygulanır (reddetme yine de kazanır). Bazı kanallar odalar/kanallar için farklı iç içe yapılar kullanır (ör. Discord
guilds.*.channels.*, Slack channels.*, Microsoft Teams teams.*.channels.*).Grup izin listeleri
channels.whatsapp.groups, channels.telegram.groups veya channels.imessage.groups yapılandırıldığında, anahtarlar bir grup izin listesi görevi görür. Varsayılan bahsetme davranışını ayarlamaya devam ederken tüm gruplara izin vermek için "*" kullanın.
Yaygın amaçlar (kopyala/yapıştır):
- Disable all group replies
- Allow only specific groups (WhatsApp)
- Allow all groups but require mention
- Owner-only triggers (WhatsApp)
Etkinleştirme (yalnızca sahip)
Grup sahipleri, grup başına etkinleştirmeyi değiştirebilir:/activation mention/activation always
channels.whatsapp.allowFrom tarafından (veya ayarlanmamışsa botun kendi E.164 değeriyle) belirlenir. Komutu bağımsız bir mesaj olarak gönderin. Diğer yüzeyler şu anda /activation değerini yok sayar.
Bağlam alanları
Gelen grup yükleri şunları ayarlar:ChatType=groupGroupSubject(biliniyorsa)GroupMembers(biliniyorsa)WasMentioned(bahsetme kapısı sonucu)- Telegram forum konuları ayrıca
MessageThreadIdveIsForumiçerir.
\n dizileri yazmaktan kaçınmasını hatırlatır. Kanal kaynaklı grup adları ve katılımcı etiketleri satır içi sistem talimatları olarak değil, çitlenmiş güvenilmeyen meta veriler olarak işlenir.
iMessage ayrıntıları
- Yönlendirme veya izin listesine alma sırasında
chat_id:<id>tercih edin. - Sohbetleri listele:
imsg chats --limit 20. - Grup yanıtları her zaman aynı
chat_iddeğerine geri gider.