Configuration
WhatsApp grup mesajları
Kanallar arası gruplar modeli (Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo) için bkz. Gruplar. Bu sayfa, bu modelin üzerindeki WhatsApp'a özgü davranışı kapsar: etkinleştirme, grup izin listeleri, grup başına oturum anahtarları ve bekleyen ileti bağlamı ekleme.
Amaç: OpenClaw'ın WhatsApp gruplarında bulunmasını, yalnızca ping atıldığında uyanmasını ve bu yazışmayı kişisel DM oturumundan ayrı tutmasını sağlamak.
Davranış
- Etkinleştirme modları:
mention(varsayılan) veyaalways.mentionbir ping gerektirir (mentionedJidsüzerinden gerçek WhatsApp @-bahsetmeleri, güvenli regex kalıpları veya metnin herhangi bir yerindeki botun E.164 numarası).alwaysaracıyı her iletide uyandırır, ancak yalnızca anlamlı değer katabildiğinde yanıt vermelidir; aksi halde tam sessiz token olanNO_REPLY/no_replydeğerini döndürür. Varsayılanlar yapılandırmada (channels.whatsapp.groups) ayarlanabilir ve grup başına/activationile geçersiz kılınabilir.channels.whatsapp.groupsayarlandığında, grup izin listesi olarak da davranır (tümüne izin vermek için"*"ekleyin). - Grup ilkesi:
channels.whatsapp.groupPolicy, grup iletilerinin kabul edilip edilmeyeceğini denetler (open|disabled|allowlist).allowlist,channels.whatsapp.groupAllowFromkullanır (yedek: açıkchannels.whatsapp.allowFrom). Varsayılanallowlistdeğeridir (gönderenleri ekleyene kadar engellenir). - Grup başına oturumlar: oturum anahtarları
agent:<agentId>:whatsapp:group:<jid>biçimindedir; böylece/verbose on,/trace onveya/think highgibi komutlar (bağımsız iletiler olarak gönderildiklerinde) o gruba kapsamlanır; kişisel DM durumu değişmez. Heartbeat'ler grup yazışmaları için atlanır. - Bağlam ekleme: bir çalıştırmayı tetiklemeyen yalnızca bekleyen grup iletileri (varsayılan 50),
[Chat messages since your last reply - for context]altında öneklenir; tetikleyen satır ise[Current message - respond to this]altında yer alır. Oturumda zaten bulunan iletiler yeniden eklenmez. - Gönderenin gösterilmesi: her grup toplu iletisi artık
[from: Sender Name (+E164)]ile biter, böylece OpenClaw kimin konuştuğunu bilir. - Geçici/bir kez görüntüle: metin/bahsetme çıkarmadan önce bunları açarız; bu nedenle içlerindeki ping'ler yine de tetikler.
- Grup sistem istemi: bir grup oturumunun ilk turunda (ve
/activationmodu değiştirdiğinde) sistem istemineYou are replying inside the WhatsApp group "<subject>". Group members: Alice (+44...), Bob (+43...), ... Activation: trigger-only ... Address the specific sender noted in the message context.benzeri kısa bir açıklama ekleriz. Meta veri yoksa da aracıya bunun bir grup sohbeti olduğunu söyleriz.
Yapılandırma örneği (WhatsApp)
WhatsApp metin gövdesindeki görsel @ işaretini kaldırdığında bile görünen ad ping'lerinin çalışması için ~/.openclaw/openclaw.json dosyasına bir groupChat bloğu ekleyin:
{ channels: { whatsapp: { groups: { "*": { requireMention: true }, }, }, }, agents: { list: [ { id: "main", groupChat: { historyLimit: 50, mentionPatterns: ["@?openclaw", "\\+?15555550123"], }, }, ], },}Notlar:
- Regex'ler büyük/küçük harfe duyarsızdır ve diğer yapılandırma regex yüzeyleriyle aynı güvenli-regex korumalarını kullanır; geçersiz kalıplar ve güvenli olmayan iç içe tekrarlar yok sayılır.
- Birisi kişiye dokunduğunda WhatsApp hâlâ
mentionedJidsüzerinden kanonik bahsetmeler gönderir; bu yüzden numara yedeği nadiren gerekir, ancak kullanışlı bir güvenlik ağıdır.
Etkinleştirme komutu (yalnızca sahip)
Grup sohbeti komutunu kullanın:
/activation mention/activation always
Bunu yalnızca sahip numarası (channels.whatsapp.allowFrom içinden veya ayarlanmamışsa botun kendi E.164 numarası) değiştirebilir. Geçerli etkinleştirme modunu görmek için grupta bağımsız ileti olarak /status gönderin.
Nasıl kullanılır
- WhatsApp hesabınızı (OpenClaw'ı çalıştıran hesap) gruba ekleyin.
@openclaw …deyin (veya numarayı ekleyin).groupPolicy: "open"ayarlamadığınız sürece yalnızca izin listesindeki gönderenler bunu tetikleyebilir.- Aracı istemi, doğru kişiye hitap edebilmesi için son grup bağlamını ve sondaki
[from: …]işaretçisini içerir. - Oturum düzeyi yönergeler (
/verbose on,/trace on,/think high,/newveya/reset,/compact) yalnızca o grubun oturumuna uygulanır; kaydedilmeleri için bunları bağımsız iletiler olarak gönderin. Kişisel DM oturumunuz bağımsız kalır.
Test / doğrulama
- Manuel duman testi:
- Grupta bir
@openclawping'i gönderin ve gönderen adına referans veren bir yanıtı doğrulayın. - İkinci bir ping gönderin ve geçmiş bloğunun eklendiğini, ardından sonraki turda temizlendiğini doğrulayın.
- Grupta bir
from: <groupJid>ve[from: …]son ekini göstereninbound web messagegirdilerini görmek için Gateway günlüklerini kontrol edin (--verboseile çalıştırın).
Bilinen noktalar
- Gürültülü yayınları önlemek için Heartbeat'ler gruplarda kasıtlı olarak atlanır.
- Yankı bastırma birleşik toplu ileti dizesini kullanır; aynı metni bahsetme olmadan iki kez gönderirseniz yalnızca ilki yanıt alır.
- Oturum deposu girdileri oturum deposunda varsayılan olarak
agent:<agentId>:whatsapp:group:<jid>biçiminde görünür (~/.openclaw/agents/<agentId>/sessions/sessions.json); eksik bir girdi yalnızca grubun henüz bir çalıştırma tetiklemediği anlamına gelir. - Gruplardaki yazıyor göstergeleri
agents.defaults.typingModeayarını izler. Görünür yanıtlar yalnızca ileti aracı moduna dahil edildiğinde, varsayılan olarak yazıyor göstergesi hemen başlar; böylece otomatik nihai yanıt gönderilmese bile grup üyeleri aracının çalıştığını görebilir. Açık yazıyor modu yapılandırması yine de önceliklidir.