Configuration
Gruplar
OpenClaw; Discord, iMessage, Matrix, Microsoft Teams, QQBot, Signal, Slack, Telegram, WhatsApp ve Zalo dahil olmak üzere grup destekli kanalların tümünde aynı grup kurallarını uygular.
Temsilci açıkça görünür bir mesaj göndermedikçe sessiz bağlam sağlaması gereken sürekli etkin odalar için Ortam odası etkinlikleri bölümüne bakın.
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 bulunuyorsanız OpenClaw bu grubu görebilir ve orada yanıt verebilir.
Varsayılan davranış:
- Gruplar kısıtlanmıştır (
groupPolicy: "allowlist"); grup gönderenleri izin verilenler listesine eklenene kadar engellenir. - Bir grup için bahsetme denetimini devre dışı bırakmadığınız sürece yanıtlar bir bahsetme gerektirir.
- Son yanıt metni odaya otomatik olarak gönderilir (
visibleReplies: "automatic").
Başka bir deyişle: izin verilenler listesindeki gönderenler, OpenClaw'dan bahsederek onu tetikleyebilir.
Hızlı akış (bir grup mesajına ne olur):
groupPolicy? disabled -> bırakgroupPolicy? allowlist -> gruba izin veriliyor mu? hayır -> bırakrequireMention? evet -> bahsedildi mi? hayır -> yalnızca bağlam için saklabahsetme/yanıt/komut/DM -> kullanıcı isteğisürekli etkin grup konuşması -> kullanıcı isteği veya yapılandırıldığında oda etkinliğiGörünür yanıtlar
Normal grup/kanal isteklerinde OpenClaw varsayılan olarak messages.groupChat.visibleReplies: "automatic" kullanır: son asistan metni görünür yanıt olarak odaya gönderilir.
Paylaşılan bir odada temsilcinin ne zaman konuşacağına message(action=send) çağrısı yaparak karar vermesi gerekiyorsa messages.groupChat.visibleReplies: "message_tool" kullanın. Bu, araçları güvenilir biçimde kullanan modellerle (örneğin GPT-5.6 Sol) en iyi şekilde çalışır. Model aracı kullanmaz ve anlamlı bir son metin döndürürse OpenClaw bu metni odaya göndermek yerine gizli tutar.
Yalnızca araçla teslim talimatını güvenilir biçimde izlemeyen modeller veya çalışma zamanları için "automatic" kullanın: normal son metinler doğrudan odaya gönderilir ve temsilci, son metinle birlikte gönderilemeyen dosyalar, görseller veya diğer ekler için yine de message(action=send) çağrısı yapabilir.
Mesaj aracı etkin araç politikası kapsamı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 etkinlikleri için messages.visibleReplies: "message_tool" aynı yalnızca araç davranışını genel olarak uygular; messages.groupChat.visibleReplies, grup/kanal odaları için daha özel geçersiz kılma olarak kalır. Dahili WebChat doğrudan turları varsayılan olarak otomatik son yanıt teslimini kullanır; böylece Pi ve Codex aynı görünür yanıt sözleşmesini alır.
Yalnızca araç modu, çoğu sessiz izleme modu turunda modeli NO_REPLY yanıtını vermeye zorlama şeklindeki eski kalıbın yerini alır. Yalnızca araç modunda istem bir NO_REPLY sözleşmesi tanımlamaz; görünür hiçbir şey yapmamak, yalnızca mesaj aracını çağırmamak anlamına gelir.
Plugin'e ait konuşma bağlamaları istisnadır. Bir Plugin, bir iş parçacığını bağlayıp gelen turun sahipliğini aldıktan sonra Plugin'in döndürdüğü yanıt görünür bağlama yanıtıdır; message(action=send) gerektirmez. Bu yanıt gizli model son metni değil, Plugin çalışma zamanı çıktısıdır.
Doğrudan grup istekleri için yazıyor göstergeleri yine gönderilir. Etkinleştirildiğinde ortam niteliğindeki sürekli etkin oda etkinlikleri, temsilci mesaj aracını çağırmadıkça kesinlikle sessiz kalır.
Oturumlar varsayılan olarak ayrıntılı araç/ilerleme özetlerini bastırır. Hata ayıklama sırasında geçerli oturum için bunları göstermek üzere /verbose on (veya /verbose full), yalnızca son yanıt davranışına dönmek için /verbose off kullanın. Ayrıntı durumu oturum başınadır ve doğrudan sohbetlerde, gruplarda, kanallarda ve forum konularında aynı şekilde çalışır.
Bahsedilmemiş sürekli etkin grup konuşmalarını kullanıcı istekleri yerine sessiz oda bağlamı olarak göndermek için Ortam odası etkinlikleri özelliğini kullanın:
{ messages: { groupChat: { unmentionedInbound: "room_event", }, },}Varsayılan değer unmentionedInbound: "user_request" şeklindedir. Bahsetme içeren mesajlar, komutlar, iptal istekleri ve DM'ler kullanıcı isteği olarak kalır.
Grup/kanal isteklerinde görünür çıktının mesaj aracı üzerinden gönderilmesini zorunlu tutmak için:
{ messages: { groupChat: { visibleReplies: "message_tool", }, },}Bunu her kaynak sohbet için zorunlu tutmak üzere:
{ messages: { visibleReplies: "message_tool", },}Gateway, dosya kaydedildikten sonra messages yapılandırma değişikliklerini yeniden başlatılmadan uygular. Yalnızca yapılandırmayı yeniden yükleme devre dışı bırakıldığında (gateway.reload.mode: "off") yeniden başlatın.
Komut turları visibleReplies: "message_tool" ayarını atlar ve her zaman görünür biçimde yanıt verir: yerel eğik çizgi komutları (Discord, Telegram ve yerel komut desteği sunan diğer yüzeyler) ile yetkilendirilmiş metin /... komutlarının ikisi de yanıtlarını kaynak sohbete gönderir. Gruplardaki yetkilendirilmemiş metin /... turları yalnızca mesaj aracı modunda kalır; sıradan sohbet turları yapılandırılan varsayılanı izler.
Bağlam görünürlüğü ve izin verilenler listeleri
Grup güvenliğinde iki farklı denetim kullanılır:
- Tetikleme yetkilendirmesi: temsilciyi kimlerin tetikleyebileceği (
groupPolicy,groups,groupAllowFrom, kanala özgü izin verilenler listeleri). - Bağlam görünürlüğü: modele hangi ek bağlamın eklendiği (yanıt/alıntı metni, iş parçacığı geçmişi, iletilen meta veriler).
OpenClaw varsayılan olarak bağlamı alındığı hâliyle korur: izin verilenler listeleri modelin hangi alıntılanmış veya geçmiş parçacıkları gördüğünü değil, kimlerin eylemleri tetikleyebileceğini belirler. Ek bağlamı da filtrelemek için contextVisibility ayarını belirleyin:
| Mod | Davranış |
|---|---|
"all" (varsayılan) |
Ek bağlamı alındığı hâliyle korur. |
"allowlist" |
Yalnızca izin verilenler listesindeki gönderenlerden gelen geçmiş/iş parçacığı/alıntı/iletilmiş bağlamı ekler. |
"allowlist_quote" |
allowlist; ayrıca herhangi bir gönderenden açıkça alıntılanan/yanıtlanan mesajı korur. |
Bunu kanal başına (channels.<channel>.contextVisibility), hesap başına (channels.<channel>.accounts.<accountId>.contextVisibility) veya genel olarak (channels.defaults.contextVisibility) ayarlayın. Ek bağlamı getiren kanallar (Discord, Feishu, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp), gelen bağlamı oluştururken politikayı uygular; bilinmeyen politika birleşimleri güvenli biçimde başarısız olur ve bağlamı dışarıda bırakır.
Bu modlar yalnızca kanal tarafından sağlanan ek bağlamı filtreler. Araç politikası ve yalnızca sahibin kullanabildiği araç envanteri, istemde temsil edilen her gönderene göre değil, yine geçerli turun kaynak istekte bulunan kişisine göre seçilir. İstekte bulunan kişi kapsamlı denetimler ve istem bağlamı bölümüne bakın.
İstediğiniz...
| Hedef | Ayarlanacak değer |
|---|---|
| Tüm gruplara izin verip yalnızca @bahsetmelerine yanıt verme | groups: { "*": { requireMention: true } } |
| Tüm grup yanıtlarını devre dışı bırakma | groupPolicy: "disabled" |
| Yalnızca belirli gruplar | groups: { "<group-id>": { ... } } ("*" anahtarı olmadan) |
| Gruplarda yalnızca sizin tetikleyebilmeniz | groupPolicy: "allowlist", groupAllowFrom: ["+1555..."] |
| Güvenilen tek bir gönderen kümesini kanallar arasında yeniden kullanma | groupAllowFrom: ["accessGroup:operators"] |
Yeniden kullanılabilir gönderen izin listeleri için Erişim grupları bölümüne bakın.
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
session.dmScopeyapılandırılmışsa gönderen başına oturumları). - Heartbeat'ler yapılandırılan Heartbeat oturumunda çalışır (varsayılan: temsilcinin ana oturumu); grup oturumları kendi Heartbeat'lerini çalıştırmaz.
Kalıp: kişisel DM'ler + herkese açık gruplar (tek temsilci)
Evet — "kişisel" trafiğiniz DM'lerden, "herkese açık" trafiğiniz ise gruplardan oluşuyorsa bu yaklaşım iyi çalışır.
Nedeni: tek temsilci modunda DM'ler genellikle ana oturum anahtarına (agent:main:main) ulaşırken gruplar her zaman ana olmayan oturum anahtarlarını (agent:main:<channel>:group:<id>) kullanır. Korumalı alan kullanımını mode: "non-main" ile etkinleştirirseniz bu grup oturumları yapılandırılan korumalı alan arka ucunda çalışırken ana DM oturumunuz ana makinede kalır. Bir arka uç seçmezseniz varsayılan arka uç Docker'dır.
Böylece tek bir temsilci "beyniniz" (paylaşılan çalışma alanı + bellek), ancak iki farklı yürütme biçiminiz olur:
- DM'ler: tüm araçlar (ana makine)
- Gruplar: korumalı alan + kısıtlı araçlar
DM'ler ana makinede, gruplar korumalı alanda
{ agents: { defaults: { sandbox: { mode: "non-main", // gruplar/kanallar ana değildir -> korumalı alanda scope: "session", // en güçlü yalıtım (grup/kanal başına bir kapsayıcı) workspaceAccess: "none", }, }, }, tools: { sandbox: { tools: { // allow boş değilse diğer her şey engellenir (deny yine önceliklidir). allow: ["group:messaging", "group:sessions"], deny: ["group:runtime", "group:fs", "group:ui", "nodes", "cron", "gateway"], }, }, },}Gruplar yalnızca izin verilenler listesindeki bir klasörü görür
"Ana makine erişimi yok" yerine "gruplar yalnızca X klasörünü görebilir" mi istiyorsunuz? workspaceAccess: "none" değerini koruyun ve korumalı alana yalnızca izin verilenler listesindeki yolları bağlayın:
{ agents: { defaults: { sandbox: { mode: "non-main", scope: "session", workspaceAccess: "none", docker: { binds: [ // hostPath:containerPath:mode "/home/user/FriendsShared:/data:ro", ], }, }, }, },}İlgili:
- Yapılandırma anahtarları ve varsayılanlar: Gateway yapılandırması
- Bir aracın neden engellendiğini hata ayıklama: Korumalı Alan ile Araç Politikası ile Yükseltilmiş Yetki Karşılaştırması
- Bağlama noktası ayrıntıları: Korumalı alan kullanımı
Görünen etiketler
- Kullanılabilir olduğunda kullanıcı arabirimi etiketleri
displayNamedeğerini,<channel>:<token>biçiminde kullanır. #room, odalar/kanallar için ayrılmıştır; grup sohbetlerig-<slug>kullanır (küçük harf, boşluklar ->-,#@+._-değerini koruyun). Çok uzun ve anlaşılmaz kimlikler, tam rota kimliklerini kullanıcı arabirimine sızdırmak yerine kararlı bir belirteç olarak kısaltılır.
Grup politikası
Grup/oda mesajlarının kanal başına nasıl işleneceğini denetleyin:
{ channels: { whatsapp: { groupPolicy: "disabled", // "open" | "disabled" | "allowlist" groupAllowFrom: ["+15551234567"], }, telegram: { groupPolicy: "disabled", groupAllowFrom: ["123456789"], // sayısal Telegram kullanıcı kimliği (kurulum @username değerini çözümler) }, signal: { groupPolicy: "disabled", groupAllowFrom: ["+15551234567"], }, imessage: { groupPolicy: "disabled", groupAllowFrom: ["chat_id:123"], }, msteams: { groupPolicy: "disabled", groupAllowFrom: ["user@org.com"], }, discord: { groupPolicy: "allowlist", guilds: { GUILD_ID: { channels: { help: { enabled: true } } }, }, }, slack: { groupPolicy: "allowlist", channels: { "#general": { enabled: true } }, }, matrix: { groupPolicy: "allowlist", groupAllowFrom: ["@owner:example.org"], groups: { "!roomId:example.org": { enabled: true }, "#alias:example.org": { enabled: true }, }, }, },}| İlke | Davranış |
|---|---|
"open" |
Gruplar izin listelerini atlar; bahsetme geçidi uygulanmaya devam eder. |
"disabled" |
Tüm grup mesajlarını tamamen engeller. |
"allowlist" |
Yalnızca yapılandırılmış izin listesiyle eşleşen gruplara/odalara izin verir. |
Kanal bazında notlar
groupPolicy, bahsetme geçidinden (@bahsetmeler gerektirir) ayrıdır.- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo:
groupAllowFromkullanın (geri dönüş: açıkça belirtilmişallowFrom). - Signal:
groupAllowFrom, gelen Signal grup kimliğiyle veya gönderenin telefon numarası/UUID değeriyle eşleşebilir. - DM eşleştirme onayları (
*-allowFromdeposu girdileri) yalnızca DM erişimi için geçerlidir; grup göndereni yetkilendirmesi açıkça grup izin listeleriyle belirlenmeye devam eder. - 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 (!room:server) veya diğer adları (#alias:server) kullanın; oda adı anahtarları yalnızcachannels.matrix.dangerouslyAllowNameMatching: trueile eşleşir ve çözümlenemeyen girdiler çalışma zamanında yok sayılır. Gönderenleri kısıtlamak içinchannels.matrix.groupAllowFromkullanın; oda bazındausersizin listeleri de desteklenir. - Grup DM'leri ayrı olarak denetlenir (
channels.discord.dm.*,channels.slack.dm.*:groupEnabled,groupChannels). - Telegram: gönderen izin listeleri yalnızca sayısal kullanıcı kimliklerini kabul eder (
"123456789";telegram:/tg:önekleri büyük/küçük harfe duyarsız biçimde kaldırılır).@usernamegirdileri çalışma zamanında eşleşmez ve bir uyarı günlüğe kaydedilir; kurulum@usernamedeğerlerini kimliklere çözümler. Negatif sohbet kimlikleri gönderen izin listelerinde değil,channels.telegram.groupsaltında yer almalıdır. - Varsayılan değer
groupPolicy: "allowlist"; 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 güvenli biçimdeallowlistolarak kapanır ve Gateway geri dönüşü hesap başına bir kez günlüğe kaydeder.
Hızlı zihinsel model (grup mesajları için değerlendirme sırası):
groupPolicy
groupPolicy (açık/devre dışı/izin listesi).
Grup izin listeleri
Grup izin listeleri (*.groups, *.groupAllowFrom, kanala özgü izin listesi).
Bahsetme geçidi
Bahsetme geçidi (requireMention, /activation).
Bahsetme geçidi (varsayılan)
Grup bazında geçersiz kılınmadığı sürece grup mesajları bir bahsetme gerektirir. Varsayılanlar her alt sistem için *.groups."*" altında bulunur.
Desteklenen örtük bahsetme olguları kanala özgüdür:
| Olgu | Mevcut yerleşik üreticiler |
|---|---|
| Bota verilen yanıt | Discord, Microsoft Teams, QQBot, Slack, Telegram |
| Bottan yapılan alıntı | WhatsApp, Zalo personal |
| Bot ileti dizisine katıldı | Mattermost, Slack, Tlon |
Kanal ilgili olguyu ürettiğinde her olgu varsayılan olarak etkinleştirilir. İlgili olgunun bahsetme geçidini atlamasını engellemek için karşılık gelen implicitMentions bayrağını false olarak ayarlayın; yerel açık bahsetmeler bundan etkilenmez. Bir bayrak, ilgili olguyu üretmeyen kanalları etkilemez.
{ channels: { whatsapp: { groups: { "*": { requireMention: true }, "123@g.us": { requireMention: false }, }, }, telegram: { groups: { "*": { requireMention: true }, "123456789": { requireMention: false }, }, }, imessage: { groups: { "*": { requireMention: true }, "123": { requireMention: false }, }, }, }, agents: { entries: { main: { groupChat: { mentionPatterns: ["@openclaw", "openclaw", "\\+15555550123"], historyLimit: 50, }, }, }, },}Yapılandırılmış bahsetme kalıplarının kapsamı
Yapılandırılmış mentionPatterns, regex geri dönüş tetikleyicileridir. Platform
yerel bir bot bahsetmesi sunmadığında veya openclaw: gibi düz metnin
bahsetme olarak sayılmasını istediğinizde bunları kullanın. Yerel platform bahsetmeleri ayrıdır:
Discord, Slack, Telegram, Matrix, Signal veya başka bir kanal mesajda
bottan açıkça bahsedildiğini kanıtlayabildiğinde, yapılandırılmış regex kalıpları
reddedilmiş olsa bile bu yerel bahsetme tetiklemeye devam eder.
Varsayılan olarak yapılandırılmış bahsetme kalıpları, kanalın sağlayıcı ve konuşma olgularını bahsetme algılamasına ilettiği her yerde uygulanır. Geniş kapsamlı kalıpların agent'ı her grupta uyandırmasını önlemek için bunları channels.<channel>.mentionPatterns ile kanal bazında kapsamlandırın.
Regex bahsetme kalıplarının bir kanal için varsayılan olarak kapalı olması gerektiğinde mode: "deny" kullanın, ardından belirli odaları allowIn ile etkinleştirin:
{ messages: { groupChat: { mentionPatterns: ["\\bopenclaw\\b", "\\bops bot\\b"], }, }, channels: { slack: { mentionPatterns: { mode: "deny", allowIn: ["C0123OPS"], }, }, },}Regex bahsetme kalıplarının geniş kapsamda uygulanması gerektiğinde varsayılan mode: "allow" değerini kullanın (veya mode değerini atlayın), ardından gürültülü odalarda bunları denyIn ile kapatın:
{ messages: { groupChat: { mentionPatterns: ["\\bopenclaw\\b"], }, }, channels: { telegram: { mentionPatterns: { denyIn: ["-1001234567890", "-1001234567890:topic:42"], }, }, },}İlke çözümleme:
| Alan | Etki |
|---|---|
mode: "allow" |
Konuşma kimliği denyIn içinde olmadığı sürece regex bahsetme kalıpları etkindir. Bu varsayılan davranıştır. |
mode: "deny" |
Konuşma kimliği allowIn içinde olmadığı sürece regex bahsetme kalıpları devre dışıdır. |
allowIn |
Reddetme modunda regex bahsetme kalıplarının etkin olduğu konuşma kimlikleri. |
denyIn |
Regex bahsetme kalıplarının devre dışı olduğu konuşma kimlikleri. Her ikisi de aynı kimliği içeriyorsa denyIn, allowIn değerine üstün gelir. |
Bugün desteklenen kapsamlı regex ilkesi:
| Kanal | allowIn / denyIn içinde kullanılan kimlikler |
|---|---|
| Discord | Discord kanal kimlikleri. |
| Matrix | Matrix oda kimlikleri. |
| Slack | Slack kanal kimlikleri. |
| Telegram | Grup sohbeti kimlikleri veya forum konuları için chatId:topic:threadId. |
123@g.us gibi WhatsApp konuşma kimlikleri. |
Hesap düzeyindeki kanal yapılandırmaları, ilgili kanal birden fazla hesabı desteklediğinde aynı ilkeyi channels.<channel>.accounts.<accountId>.mentionPatterns altında ayarlayabilir. Hesap ilkesi, ilgili hesap için üst düzey kanal ilkesine göre önceliklidir.
Bahsetme geçidi notları
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 yineleme biçimleri yok sayılır (bir uyarıyla).- Kalıp önceliği:
agents.entries.*.groupChat.mentionPatterns(birden fazla agent aynı grubu paylaştığında kullanışlıdır),messages.groupChat.mentionPatternsdeğerini geçersiz kılar; hiçbiri ayarlanmadığında kalıplar agent kimliğinin adından/emojisinden türetilir. - Bahsetme geçidi 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 eklemek bahsetme geçidini devre dışı bırakmaz; tüm mesajların tetiklemesi gerektiğinde ilgili grubun
requireMentiondeğerinifalseolarak ayarlayın. - Otomatik grup sohbeti istem bağlamı, çözümlenmiş sessiz yanıt talimatını her turda taşır; çalışma alanı dosyaları
NO_REPLYişleyişini yinelememelidir. - Otomatik 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 hiçbir zamanNO_REPLYyönlendirmesi almaz ve yalnızca mesaj aracı kullanan grup yanıtlarımessage(action=send)çağrılmayarak sessiz kalır. - Ortamda sürekli etkin grup sohbetleri varsayılan olarak kullanıcı isteği semantiğini kullanır. Bunun yerine sessiz bağlam olarak göndermek için
messages.groupChat.unmentionedInbound: "room_event"değerini ayarlayın. Kurulum örnekleri için Ortam oda olayları bölümüne bakın. - Oda olayları sahte kullanıcı istekleri olarak saklanmaz ve mesaj aracı kullanılmayan oda olaylarındaki özel asistan metni sohbet geçmişi olarak yeniden oynatılmaz.
- Discord varsayılanları
channels.discord.guilds."*"içinde bulunur (sunucu/kanal bazında geçersiz kılınabilir). - Grup geçmişi bağlamı tüm kanallarda tek tip olarak sarmalanır. Bahsetme geçitli gruplar bekleyen atlanmış mesajları tutar; sürekli etkin gruplar, kanal desteklediğinde yakın zamanda işlenmiş oda mesajlarını da tutabilir. 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çin0olarak ayarlayın.
Grup/kanal aracı 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ğinin kısıtlanmasını destekler.
tools: grubun tamamı için araçlara izin verin/reddedin (allow,alsoAllow,deny; reddetme üstün gelir).toolsBySender: grup içinde gönderen bazında 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, standart OpenClaw kanal kimliklerini kullanır;teamsgibi diğer adlarmsteamsdeğerine normalleştirilir. Öneksiz eski anahtarlar hâlâ kabul edilir, yalnızcaid:olarak eşleştirilir ve kullanımdan kaldırma uyarısı günlüğe kaydedilir.
Çözümleme sırası (en belirgin olan üstün gelir):
Grup toolsBySender
Grup/kanal toolsBySender eşleşmesi.
Grup araçları
Grup/kanal tools.
Varsayılan toolsBySender
Varsayılan ("*") toolsBySender eşleşmesi.
Varsayılan araçlar
Varsayılan ("*") tools.
Örnek (Telegram):
{ channels: { telegram: { groups: { "*": { tools: { deny: ["exec"] } }, "-1001234567890": { tools: { deny: ["exec", "read", "write"] }, toolsBySender: { "id:123456789": { alsoAllow: ["exec"] }, }, }, }, }, },}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 amaçlar (kopyala/yapıştır):
Tüm grup yanıtlarını devre dışı bırak
{ channels: { whatsapp: { groupPolicy: "disabled" } },}Yalnızca belirli gruplara izin ver (WhatsApp)
{ channels: { whatsapp: { groups: { "123@g.us": { requireMention: true }, "456@g.us": { requireMention: false }, }, }, },}Tüm gruplara izin ver ancak bahsetmeyi zorunlu tut
{ channels: { whatsapp: { groups: { "*": { requireMention: true } }, }, },}Yalnızca sahip tetikleyicileri (WhatsApp)
{ channels: { whatsapp: { groupPolicy: "allowlist", groupAllowFrom: ["+15551234567"], groups: { "*": { requireMention: true } }, }, },}Etkinleştirme (yalnızca sahip)
Grup sahipleri, bağımsız bir mesajla grup başına etkinleştirmeyi açıp kapatabilir:
/activation mention/activation always
/activation, sahip denetimine tabi bir çekirdek komuttur ve yalnızca grup sohbetlerinde geçerlidir. Sahip, gönderenin commands.ownerAllowFrom ile eşleşmesi anlamına gelir; kanal allowFrom listeleri yalnızca sıradan kanal ve komut erişimini denetler. Depolanan mod, bunu dikkate alan kanallarda (Google Chat, QQBot, Telegram, WhatsApp) ilgili grubun requireMention değerini geçersiz kılar ve grup sistem istemi girişi her yerde etkin modu yansıtır.
Bağlam alanları
Gelen grup yükleri şunları ayarlar:
ChatType=groupGroupSubject(biliniyorsa)GroupMembers(biliniyorsa)WasMentioned(bahsetme geçidi sonucu)- Telegram forum konuları ayrıca
MessageThreadIdveIsForumiçerir.
Ajan sistem istemi, yeni bir grup oturumunun ilk turunda (ve /activation değiştikten sonra) bir grup girişi içerir. Modele bir insan gibi yanıt vermesini, boş satırları en aza indirip normal sohbet aralıklarına uymasını ve değişmez \n dizilerini yazmaktan kaçınmasını hatırlatır. Bildirilen tablo modu yerel veya ham tabloları korumayan kanallar, Markdown tablolarının kullanılmasını da önermez. Kanal kaynaklı grup adları ve katılımcı etiketleri, satır içi sistem talimatları olarak değil, kod çiti içinde güvenilmeyen meta veriler olarak işlenir.
iMessage ayrıntıları
- Yönlendirme veya izin listesine ekleme sırasında
chat_id:<id>tercih edin. - Sohbetleri listeleme:
imsg chats --limit 20. - Grup yanıtları her zaman aynı
chat_idöğesine geri gönderilir.
WhatsApp sistem istemleri
Grup ve doğrudan istem çözümleme, joker karakter davranışı ve hesap geçersiz kılma anlamları dâhil olmak üzere standart WhatsApp sistem istemi kuralları için WhatsApp bölümüne bakın.
WhatsApp ayrıntıları
Yalnızca WhatsApp'a özgü davranışlar (geçmiş ekleme, bahsetme işleme ayrıntıları) için Grup mesajları bölümüne bakın.