WhatsApp (Web kanalı)
Durum: WhatsApp Web (Baileys) üzerinden üretime hazır. Bağlı oturum(lar)ın sahibi ağ geçididir.Kurulum (gerektiğinde)
- Onboarding (
openclaw onboard) veopenclaw channels add --channel whatsapp, ilk kez seçtiğinizde WhatsApp eklentisini yüklemeyi önerir. openclaw channels login --channel whatsappda, eklenti henüz mevcut değilse kurulum akışını sunar.- Geliştirme kanalı + git checkout: varsayılan olarak yerel eklenti yolunu kullanır.
- Stable/Beta: varsayılan olarak
@openclaw/whatsappnpm paketini kullanır.
Eşleştirme
Bilinmeyen göndericiler için varsayılan DM ilkesi eşleştirmedir.
Kanal sorun giderme
Kanallar arası tanılama ve onarım kılavuzları.
Ağ geçidi yapılandırması
Tüm kanal yapılandırma desenleri ve örnekleri.
Hızlı kurulum
OpenClaw, mümkün olduğunda WhatsApp’ı ayrı bir numarada çalıştırmanızı önerir. (Kanal meta verileri ve kurulum akışı bu kurulum için optimize edilmiştir, ancak kişisel numara kurulumları da desteklenir.)
Dağıtım desenleri
Ayrı numara (önerilen)
Ayrı numara (önerilen)
Bu en temiz operasyonel kipidir:
- OpenClaw için ayrı WhatsApp kimliği
- daha net DM allowlist’leri ve yönlendirme sınırları
- kendinize sohbet karışıklığı yaşama olasılığının daha düşük olması
Kişisel numara yedeği
Kişisel numara yedeği
Onboarding kişisel numara kipini destekler ve self-chat dostu bir temel yapılandırma yazar:
dmPolicy: "allowlist"allowFromkişisel numaranızı içerirselfChatMode: true
allowFrom üzerinden çalışır.Yalnızca WhatsApp Web kanal kapsamı
Yalnızca WhatsApp Web kanal kapsamı
Mevcut OpenClaw kanal mimarisinde mesajlaşma platformu kanalı WhatsApp Web tabanlıdır (
Baileys).Yerleşik sohbet-kanalı kayıt defterinde ayrı bir Twilio WhatsApp mesajlaşma kanalı yoktur.Çalışma zamanı modeli
- WhatsApp soketi ve yeniden bağlanma döngüsünün sahibi ağ geçididir.
- Giden gönderimler, hedef hesap için etkin bir WhatsApp dinleyicisi gerektirir.
- Durum ve yayın sohbetleri yok sayılır (
@status,@broadcast). - Doğrudan sohbetler DM oturum kurallarını kullanır (
session.dmScope; varsayılanmain, DM’leri aracının ana oturumunda birleştirir). - Grup oturumları yalıtılmıştır (
agent:<agentId>:whatsapp:group:<jid>).
Erişim denetimi ve etkinleştirme
- DM ilkesi
- Grup ilkesi + allowlist'ler
- Mention'lar + /activation
channels.whatsapp.dmPolicy doğrudan sohbet erişimini denetler:pairing(varsayılan)allowlistopen(allowFromdeğerinin"*"içermesini gerektirir)disabled
allowFrom, E.164 biçimli numaraları kabul eder (dahili olarak normalize edilir).Çoklu hesap geçersiz kılması: channels.whatsapp.accounts.<id>.dmPolicy (ve allowFrom) o hesap için kanal düzeyindeki varsayılanların önüne geçer.Çalışma zamanı davranışı ayrıntıları:- eşleştirmeler kanal izin deposunda kalıcı olarak saklanır ve yapılandırılmış
allowFromile birleştirilir - herhangi bir allowlist yapılandırılmamışsa, bağlı self numarasına varsayılan olarak izin verilir
- giden
fromMeDM’leri hiçbir zaman otomatik eşleştirilmez
Kişisel numara ve self-chat davranışı
Bağlı self numarasıallowFrom içinde de bulunduğunda, WhatsApp self-chat korumaları etkinleşir:
- self-chat dönüşleri için okundu bilgilerini atlar
- aksi halde kendinize ping atacak mention-JID otomatik tetikleme davranışını yok sayar
messages.responsePrefixayarlanmamışsa, self-chat yanıtları varsayılan olarak[{identity.name}]veya[openclaw]olur
Mesaj normalizasyonu ve bağlam
Gelen zarfı + yanıt bağlamı
Gelen zarfı + yanıt bağlamı
Gelen WhatsApp mesajları, paylaşılan gelen zarfına sarılır.Alıntılanmış bir yanıt varsa, bağlam şu biçimde eklenir:Mevcut olduğunda yanıt meta veri alanları da doldurulur (
ReplyToId, ReplyToBody, ReplyToSender, gönderen JID/E.164).Medya yer tutucuları ve konum/kişi çıkarımı
Medya yer tutucuları ve konum/kişi çıkarımı
Yalnızca medya içeren gelen mesajlar şu tür yer tutucularla normalize edilir:
<media:image><media:video><media:audio><media:document><media:sticker>
Bekleyen grup geçmişi ekleme
Bekleyen grup geçmişi ekleme
Gruplarda, işlenmemiş mesajlar arabelleğe alınabilir ve bot sonunda tetiklendiğinde bağlam olarak eklenebilir.
- varsayılan sınır:
50 - yapılandırma:
channels.whatsapp.historyLimit - yedek:
messages.groupChat.historyLimit 0devre dışı bırakır
[Son yanıtınızdan bu yana sohbet mesajları - bağlam için][Geçerli mesaj - buna yanıt verin]
Okundu bilgileri
Okundu bilgileri
Kabul edilen gelen WhatsApp mesajları için okundu bilgileri varsayılan olarak etkindir.Genel olarak devre dışı bırakmak için:Hesap başına geçersiz kılma:Self-chat dönüşleri, genel olarak etkin olsa bile okundu bilgilerini atlar.
Teslimat, parçalama ve medya
Metin parçalama
Metin parçalama
- varsayılan parça sınırı:
channels.whatsapp.textChunkLimit = 4000 channels.whatsapp.chunkMode = "length" | "newline"newlinekipi paragraf sınırlarını (boş satırlar) tercih eder, ardından uzunluk açısından güvenli parçalamaya döner
Giden medya davranışı
Giden medya davranışı
- resim, video, ses (PTT sesli not) ve belge payload’larını destekler
audio/ogg, sesli not uyumluluğu içinaudio/ogg; codecs=opusolarak yeniden yazılır- hareketli GIF oynatımı, video gönderimlerinde
gifPlayback: trueile desteklenir - çoklu medya yanıt payload’ları gönderilirken başlıklar ilk medya öğesine uygulanır
- medya kaynağı HTTP(S),
file://veya yerel yollar olabilir
Medya boyutu sınırları ve yedek davranış
Medya boyutu sınırları ve yedek davranış
- gelen medya kaydetme sınırı:
channels.whatsapp.mediaMaxMb(varsayılan50) - giden medya gönderme sınırı:
channels.whatsapp.mediaMaxMb(varsayılan50) - hesap başına geçersiz kılmalar
channels.whatsapp.accounts.<accountId>.mediaMaxMbkullanır - resimler sınırlara sığması için otomatik olarak optimize edilir (yeniden boyutlandırma/kalite taraması)
- medya gönderme hatasında, sessizce yanıtı düşürmek yerine ilk öğe yedeği metin uyarısı gönderir
Tepki düzeyi
channels.whatsapp.reactionLevel, aracının WhatsApp’ta emoji tepkilerini ne kadar geniş kullandığını denetler:
| Düzey | Ack tepkileri | Aracının başlattığı tepkiler | Açıklama |
|---|---|---|---|
"off" | Hayır | Hayır | Hiç tepki yok |
"ack" | Evet | Hayır | Yalnızca ack tepkileri (yanıt öncesi alındı) |
"minimal" | Evet | Evet (temkinli) | Ack + temkinli yönlendirmeyle aracı tepkileri |
"extensive" | Evet | Evet (teşvik edilir) | Ack + teşvik edilen yönlendirmeyle aracı tepkileri |
"minimal".
Hesap başına geçersiz kılmalar channels.whatsapp.accounts.<id>.reactionLevel kullanır.
Alındı onay tepkileri
WhatsApp,channels.whatsapp.ackReaction aracılığıyla gelen alımında anında ack tepkilerini destekler.
Ack tepkileri reactionLevel ile geçitlenir — reactionLevel "off" olduğunda bastırılırlar.
- gelen kabul edildikten hemen sonra gönderilir (yanıt öncesi)
- hatalar günlüğe kaydedilir ancak normal yanıt teslimatını engellemez
- grup kipi
mentions, mention ile tetiklenen dönüşlerde tepki verir; grup etkinleştirmesialwaysise bu denetimi atlama görevi görür - WhatsApp,
channels.whatsapp.ackReactionkullanır (eskimessages.ackReactionburada kullanılmaz)
Çoklu hesap ve kimlik bilgileri
Hesap seçimi ve varsayılanlar
Hesap seçimi ve varsayılanlar
- hesap kimlikleri
channels.whatsapp.accountsiçinden gelir - varsayılan hesap seçimi: varsa
default, yoksa yapılandırılmış ilk hesap kimliği (sıralı) - hesap kimlikleri arama için dahili olarak normalize edilir
Kimlik bilgisi yolları ve eski uyumluluk
Kimlik bilgisi yolları ve eski uyumluluk
- geçerli kimlik doğrulama yolu:
~/.openclaw/credentials/whatsapp/<accountId>/creds.json - yedek dosya:
creds.json.bak ~/.openclaw/credentials/içindeki eski varsayılan kimlik doğrulama, varsayılan hesap akışları için hâlâ tanınır/taşınır
Çıkış yapma davranışı
Çıkış yapma davranışı
openclaw channels logout --channel whatsapp [--account <id>], o hesap için WhatsApp kimlik doğrulama durumunu temizler.Eski kimlik doğrulama dizinlerinde, Baileys kimlik doğrulama dosyaları kaldırılırken oauth.json korunur.Araçlar, eylemler ve yapılandırma yazımları
- Aracı araç desteği, WhatsApp tepki eylemini (
react) içerir. - Eylem geçitleri:
channels.whatsapp.actions.reactionschannels.whatsapp.actions.polls
- Kanal tarafından başlatılan yapılandırma yazımları varsayılan olarak etkindir (
channels.whatsapp.configWrites=falseile devre dışı bırakın).
Sorun giderme
Bağlı değil (QR gerekli)
Bağlı değil (QR gerekli)
Belirti: kanal durumu bağlı olmadığını bildiriyor.Düzeltme:
Bağlı ama bağlantısı kesilmiş / yeniden bağlanma döngüsü
Bağlı ama bağlantısı kesilmiş / yeniden bağlanma döngüsü
Belirti: bağlı hesapta tekrarlanan bağlantı kopmaları veya yeniden bağlanma denemeleri var.Düzeltme:Gerekirse
channels login ile yeniden bağlayın.Gönderim sırasında etkin dinleyici yok
Gönderim sırasında etkin dinleyici yok
Hedef hesap için etkin bir ağ geçidi dinleyicisi olmadığında giden gönderimler hızlıca başarısız olur.Ağ geçidinin çalıştığından ve hesabın bağlı olduğundan emin olun.
Grup mesajları beklenmedik şekilde yok sayılıyor
Grup mesajları beklenmedik şekilde yok sayılıyor
Şu sırayla kontrol edin:
groupPolicygroupAllowFrom/allowFromgroupsallowlist girdileri- mention geçitlemesi (
requireMention+ mention desenleri) openclaw.jsoniçindeki yinelenen anahtarlar (JSON5): sonraki girdiler öncekileri geçersiz kılar, bu yüzden kapsam başına tek birgroupPolicytutun
Bun çalışma zamanı uyarısı
Bun çalışma zamanı uyarısı
WhatsApp ağ geçidi çalışma zamanı Node kullanmalıdır. Bun, kararlı WhatsApp/Telegram ağ geçidi çalışması için uyumsuz olarak işaretlenmiştir.
Yapılandırma başvuru işaretçileri
Birincil başvuru: Yüksek sinyalli WhatsApp alanları:- erişim:
dmPolicy,allowFrom,groupPolicy,groupAllowFrom,groups - teslimat:
textChunkLimit,chunkMode,mediaMaxMb,sendReadReceipts,ackReaction,reactionLevel - çoklu hesap:
accounts.<id>.enabled,accounts.<id>.authDir, hesap düzeyi geçersiz kılmaları - işlemler:
configWrites,debounceMs,web.enabled,web.heartbeatSeconds,web.reconnect.* - oturum davranışı:
session.dmScope,historyLimit,dmHistoryLimit,dms.<id>.historyLimit