क्रॉस-चैनल समूह मॉडल (Discord, iMessage, Matrix, Microsoft Teams, QQBot, Signal, Slack, Telegram, WhatsApp, Zalo) के लिए, समूह देखें। यह पृष्ठ उस मॉडल के अतिरिक्त WhatsApp-विशिष्ट व्यवहार को कवर करता है: सक्रियण, समूह अनुमति-सूचियाँ, प्रति-समूह सत्र कुंजियाँ और लंबित-संदेश संदर्भ अंतःक्षेपण।
लक्ष्य: OpenClaw को WhatsApp समूहों में उपस्थित रहने दें, केवल पिंग किए जाने पर सक्रिय करें और उस थ्रेड को व्यक्तिगत DM सत्र से अलग रखें।
agents.entries.*.groupChat.mentionPatterns अन्य चैनलों की उल्लेख-गेटिंग के साथ साझा किया जाता है। बहु-एजेंट सेटअप के लिए, इसे प्रति एजेंट सेट करें या वैश्विक फ़ॉलबैक के रूप में messages.groupChat.mentionPatterns का उपयोग करें। दोनों में से कोई भी सेट न होने पर, पैटर्न एजेंट की पहचान के नाम/इमोजी से प्राप्त किए जाते हैं।
व्यवहार
- सक्रियण मोड:
mention (डिफ़ॉल्ट) या always। mention के लिए पिंग आवश्यक है: वास्तविक WhatsApp @-उल्लेख (mentionedJids), कॉन्फ़िगर किया गया regex पैटर्न, टेक्स्ट में कहीं भी बॉट के E.164 अंक या बॉट के किसी संदेश का उद्धृत उत्तर (साझा-नंबर स्व-चैट सेटअप को छोड़कर)। always प्रत्येक संदेश पर एजेंट को सक्रिय करता है, लेकिन अंतःक्षेपित समूह प्रॉम्प्ट उसे केवल तभी उत्तर देने को कहता है जब उससे उपयोगिता बढ़ती हो और अन्यथा सटीक मौन टोकन NO_REPLY (केस-असंवेदी) लौटाने को कहता है। डिफ़ॉल्ट कॉन्फ़िगरेशन (channels.whatsapp.groups requireMention) से आते हैं और इन्हें /activation के माध्यम से प्रति समूह ओवरराइड किया जा सकता है।
- समूह अनुमति-सूची: जब
channels.whatsapp.groups सेट हो, तो केवल सूचीबद्ध समूह JID स्वीकार किए जाते हैं (सभी को अनुमति देने के लिए "*" शामिल करें); सूचीबद्ध न किए गए समूहों के संदेश लॉग संकेत के साथ छोड़ दिए जाते हैं।
- समूह नीति:
channels.whatsapp.groupPolicy नियंत्रित करता है कि समूह संदेश स्वीकार किए जाएँ या नहीं (open|disabled|allowlist)। allowlist, channels.whatsapp.groupAllowFrom का उपयोग करता है (फ़ॉलबैक: स्पष्ट channels.whatsapp.allowFrom)। डिफ़ॉल्ट allowlist है (जब तक आप प्रेषकों को नहीं जोड़ते, तब तक अवरुद्ध)।
- प्रति-समूह सत्र: सत्र कुंजियाँ
agent:<agentId>:whatsapp:group:<jid> जैसी दिखती हैं (गैर-डिफ़ॉल्ट खाते :thread:whatsapp-account-<accountId> जोड़ते हैं), इसलिए /verbose on, /trace on या /think high जैसे निर्देश (स्वतंत्र संदेशों के रूप में भेजे गए) उसी समूह तक सीमित रहते हैं; व्यक्तिगत DM स्थिति अप्रभावित रहती है।
- संदर्भ अंतःक्षेपण: केवल-लंबित समूह संदेश (डिफ़ॉल्ट 50), जिन्होंने रन ट्रिगर नहीं किया था,
[Chat messages since your last reply - for context] के अंतर्गत उपसर्गित किए जाते हैं और ट्रिगर करने वाली पंक्ति [Current message - respond to this] के अंतर्गत होती है। रन के बाद लंबित विंडो साफ़ कर दी जाती है; सत्र में पहले से मौजूद संदेश दोबारा अंतःक्षेपित नहीं किए जाते।
- प्रेषक श्रेयांकन: प्रत्येक समूह पंक्ति संदेश एनवेलप के भीतर प्रेषक लेबल रखती है, जैसे
[WhatsApp <groupJid> <timestamp>] Alice (+447700900123): text, और प्रेषक की पहचान तथा समूह का विषय/सदस्य अविश्वसनीय वार्तालाप-मेटाडेटा ब्लॉक में साथ भेजे जाते हैं।
- अल्पकालिक/एक-बार-दृश्य: टेक्स्ट/उल्लेख निकालने से पहले रैपर खोले जाते हैं, इसलिए उनके भीतर के पिंग अब भी ट्रिगर होते हैं।
- समूह सिस्टम प्रॉम्प्ट: समूह सत्र की पहली बारी (और
/activation द्वारा मोड बदलने के बाद की प्रत्येक बारी) सिस्टम प्रॉम्प्ट में सक्रियण मार्गदर्शन अंतःक्षेपित करती है (Activation: trigger-only ... या Activation: always-on ..., साथ में “विशिष्ट प्रेषक को संबोधित करें”)। स्थायी समूह-चैट वितरण मार्गदर्शन (“आप WhatsApp समूह चैट में हैं…”) हमेशा शामिल किया जाता है।
कॉन्फ़िगरेशन उदाहरण (WhatsApp)
जब WhatsApp टेक्स्ट बॉडी से दृश्य @ हटा दे, तब भी प्रदर्शन-नाम पिंग को काम करने दें:
टिप्पणियाँ:
- regex केस-असंवेदी हैं और अन्य कॉन्फ़िगरेशन regex सतहों के समान सुरक्षित-regex सुरक्षा-सीमाओं का उपयोग करते हैं; अमान्य पैटर्न और असुरक्षित नेस्टेड पुनरावृत्ति को अनदेखा किया जाता है।
- जब कोई संपर्क पर टैप करता है, तब WhatsApp अब भी
mentionedJids के माध्यम से कैनोनिकल उल्लेख भेजता है, इसलिए नंबर फ़ॉलबैक की शायद ही कभी आवश्यकता होती है, लेकिन यह एक उपयोगी सुरक्षा-जाल है।
- लंबित-संदर्भ विंडो का निर्धारण
channels.whatsapp.accounts.<id>.historyLimit → channels.whatsapp.historyLimit → messages.groupChat.historyLimit → 50 के रूप में होता है।
सक्रियण कमांड (केवल स्वामी)
समूह चैट कमांड का उपयोग करें:
/activation mention
/activation always
केवल स्वामी नंबर (channels.whatsapp.allowFrom से, या सेट न होने पर बॉट का अपना E.164) इसे बदल सकते हैं; किसी अन्य व्यक्ति का /activation अनदेखा किया जाता है और केवल संदर्भ के रूप में संग्रहीत होता है। वर्तमान सक्रियण मोड देखने के लिए समूह में /status को एक स्वतंत्र संदेश के रूप में भेजें।
उपयोग कैसे करें
- अपने WhatsApp खाते (जिस पर OpenClaw चल रहा है) को समूह में जोड़ें।
@openclaw ... कहें (या नंबर शामिल करें)। जब तक आप groupPolicy: "open" सेट नहीं करते, केवल अनुमति-सूचीबद्ध प्रेषक ही इसे ट्रिगर कर सकते हैं।
- एजेंट प्रॉम्प्ट में लंबित समूह संदर्भ के साथ प्रेषक-लेबल वाली पंक्तियाँ शामिल होती हैं, ताकि वह सही व्यक्ति को संबोधित कर सके।
- सत्र निर्देश (
/verbose on, /trace on, /think high, /new या /reset, /compact) केवल उस समूह के सत्र पर लागू होते हैं; उन्हें स्वतंत्र संदेशों के रूप में भेजें ताकि वे पंजीकृत हो सकें। आपका व्यक्तिगत DM सत्र स्वतंत्र रहता है।
परीक्षण / सत्यापन
- मैन्युअल स्मोक परीक्षण:
- समूह में
@openclaw पिंग भेजें और प्रेषक के नाम का संदर्भ देने वाले उत्तर की पुष्टि करें।
- दूसरा पिंग भेजें और सत्यापित करें कि इतिहास ब्लॉक शामिल किया गया है, फिर अगली बारी पर साफ़ कर दिया गया है।
- प्रेषक-लेबल वाली बॉडी और
from: <groupJid> दिखाने वाली inbound web message प्रविष्टियों के लिए Gateway लॉग जाँचें (--verbose के साथ चलाएँ)।
ज्ञात विचारणीय बिंदु
- Heartbeat एजेंट के मुख्य सत्र में चलते हैं; समूह सत्रों में कभी Heartbeat रन नहीं होते।
- प्रतिध्वनि दमन प्रत्येक सत्र के लिए संयुक्त प्रॉम्प्ट (इतिहास + वर्तमान संदेश) याद रखता है, ताकि बॉट के अपने वितरित संदेश उसे फिर से ट्रिगर न करें; एक समान दोहराया गया बैच प्रतिध्वनि मानकर छोड़ा जा सकता है।
- सत्र स्टोर प्रविष्टियाँ प्रति-एजेंट SQLite सत्र स्टोर में
agent:<agentId>:whatsapp:group:<jid> के रूप में दिखाई देती हैं; प्रविष्टि न होने का अर्थ केवल यह है कि समूह ने अभी तक कोई रन ट्रिगर नहीं किया है।
- टाइपिंग संकेतक
agents.entries.*.typingMode / agents.defaults.typingMode का अनुसरण करते हैं। जब दृश्य उत्तरों के लिए केवल-संदेश-टूल मोड चुना जाता है, तो डिफ़ॉल्ट रूप से टाइपिंग तुरंत शुरू हो जाती है, ताकि कोई स्वचालित अंतिम उत्तर पोस्ट न होने पर भी समूह के सदस्य एजेंट को काम करते देख सकें। स्पष्ट टाइपिंग-मोड कॉन्फ़िगरेशन को फिर भी प्राथमिकता मिलती है।
संबंधित