گروپ پیغامات (WhatsApp ویب چینل)¶
مقصد: Clawd کو WhatsApp گروپس میں موجود رہنے دینا، صرف پنگ ہونے پر بیدار کرنا، اور اس تھریڈ کو ذاتی DM سیشن سے الگ رکھنا۔
نوٹ: agents.list[].groupChat.mentionPatterns اب Telegram/Discord/Slack/iMessage میں بھی استعمال ہوتا ہے؛ یہ دستاویز WhatsApp کے مخصوص رویّے پر مرکوز ہے۔ ملٹی ایجنٹ سیٹ اپس کے لیے، ہر ایجنٹ کے مطابق agents.list[].groupChat.mentionPatterns سیٹ کریں (یا عالمی متبادل کے طور پر messages.groupChat.mentionPatterns استعمال کریں).
کیا نافذ ہے (2025-12-03)¶
- فعالیت کے طریقے:
mention(ڈیفالٹ) یاalways۔mentionکے لیے پنگ ضروری ہے (حقیقی WhatsApp @-مینشنز بذریعہmentionedJids، regex پیٹرنز، یا متن میں کہیں بھی بوٹ کا E.164)۔alwaysہر پیغام پر ایجنٹ کو بیدار کرتا ہے لیکن اسے صرف تب جواب دینا چاہیے جب وہ بامعنی قدر شامل کر سکے؛ بصورتِ دیگر وہ خاموش ٹوکنNO_REPLYواپس کرے۔ ڈیفالٹس config میں (channels.whatsapp.groups) سیٹ کیے جا سکتے ہیں اور ہر گروپ کے لیے/activationکے ذریعے اووررائیڈ کیے جا سکتے ہیں۔ جبchannels.whatsapp.groupsسیٹ ہو تو یہ گروپ الاو لسٹ کے طور پر بھی کام کرتا ہے (سب کو اجازت دینے کے لیے"*"شامل کریں). - گروپ پالیسی:
channels.whatsapp.groupPolicyیہ کنٹرول کرتا ہے کہ آیا گروپ پیغامات قبول کیے جائیں (open|disabled|allowlist)۔allowlist،channels.whatsapp.groupAllowFromاستعمال کرتا ہے (متبادل: واضحchannels.whatsapp.allowFrom)۔ ڈیفالٹallowlistہے (جب تک آپ بھیجنے والوں کو شامل نہ کریں، بلاک رہتا ہے). - ہر گروپ کے لیے علیحدہ سیشنز: سیشن کیز اس طرح نظر آتی ہیں
agent:<agentId>:whatsapp:group:<jid>لہٰذا/verbose onیا/think highجیسے کمانڈز (جو علیحدہ پیغامات کے طور پر بھیجے جائیں) اسی گروپ تک محدود رہتے ہیں؛ ذاتی DM اسٹیٹ متاثر نہیں ہوتی۔ گروپ تھریڈز کے لیے ہارٹ بیٹس چھوڑ دیے جاتے ہیں. - سیاق و سباق کا اندراج: صرف زیرِ التواء گروپ پیغامات (ڈیفالٹ 50) جو رن کو ٹرگر نہیں کرتے، انہیں
[Chat messages since your last reply - for context]کے تحت شامل کیا جاتا ہے، جبکہ ٹرگر کرنے والی سطر[Current message - respond to this]کے تحت ہوتی ہے۔ جو پیغامات پہلے ہی سیشن میں موجود ہوں انہیں دوبارہ شامل نہیں کیا جاتا۔ - بھیجنے والے کی نمایاں شناخت: ہر گروپ بیچ اب
[from: Sender Name (+E164)]پر ختم ہوتا ہے تاکہ Pi کو معلوم ہو کہ کون بول رہا ہے۔ - عارضی/ویو-ونس: متن/مینشن نکالنے سے پہلے ہم انہیں اَن ریپ کر دیتے ہیں، اس لیے ان کے اندر موجود پنگز بھی ٹرگر کریں گے۔
- گروپ سسٹم پرامپٹ: گروپ سیشن کے پہلے مرحلے پر (اور جب بھی
/activationموڈ تبدیل کرے) ہم سسٹم پرامپٹ میں ایک مختصر نوٹ شامل کرتے ہیں جیسےYou 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.اگر میٹا ڈیٹا دستیاب نہ ہو تب بھی ہم ایجنٹ کو بتاتے ہیں کہ یہ گروپ چیٹ ہے۔
کنفیگ مثال (WhatsApp)¶
~/.openclaw/openclaw.json میں groupChat بلاک شامل کریں تاکہ ڈسپلے-نام پنگز اس وقت بھی کام کریں جب WhatsApp متن کے باڈی میں بصری @ ہٹا دے:
{
channels: {
whatsapp: {
groups: {
"*": { requireMention: true },
},
},
},
agents: {
list: [
{
id: "main",
groupChat: {
historyLimit: 50,
mentionPatterns: ["@?openclaw", "\\+?15555550123"],
},
},
],
},
}
نوٹس:
- regex پیٹرنز کیس اِن سینسِٹو ہیں؛ یہ
@openclawجیسا ڈسپلے-نام پنگ اور+/اسپیسز کے ساتھ یا بغیر خام نمبر دونوں کو کور کرتے ہیں۔ - جب کوئی رابطہ ٹیپ کرتا ہے تو WhatsApp اب بھی
mentionedJidsکے ذریعے کینونیکل مینشنز بھیجتا ہے، اس لیے نمبر فال بیک شاذ و نادر ہی درکار ہوتا ہے مگر ایک مفید حفاظتی جال ہے۔
ایکٹیویشن کمانڈ (صرف مالک)¶
گروپ چیٹ کمانڈ استعمال کریں:
/activation mention/activation always
صرف مالک کا نمبر (جو channels.whatsapp.allowFrom میں ہو، یا اگر سیٹ نہ ہو تو بوٹ کا اپنا E.164) اسے تبدیل کر سکتا ہے۔ موجودہ ایکٹیویشن موڈ دیکھنے کے لیے گروپ میں علیحدہ پیغام کے طور پر /status بھیجیں۔
استعمال کیسے کریں¶
- اپنے WhatsApp اکاؤنٹ (جس پر OpenClaw چل رہا ہو) کو گروپ میں شامل کریں۔
@openclaw …کہیں (یا نمبر شامل کریں)۔ جب تک آپgroupPolicy: "open"سیٹ نہ کریں، صرف الاو لسٹ میں شامل بھیجنے والے ہی اسے ٹرگر کر سکتے ہیں۔- ایجنٹ پرامپٹ میں حالیہ گروپ سیاق شامل ہوگا اور آخر میں
[from: …]مارکر ہوگا تاکہ وہ درست شخص کو مخاطب کر سکے۔ - سیشن لیول ہدایات (
/verbose on,/think high,/newیا/reset,/compact) صرف اسی گروپ کے سیشن پر لاگو ہوتی ہیں؛ انہیں علیحدہ پیغامات کے طور پر بھیجیں تاکہ وہ رجسٹر ہو سکیں۔ آپ کا ذاتی DM سیشن آزاد اور علیحدہ رہتا ہے۔
جانچ / تصدیق¶
- دستی اسموک:
- گروپ میں
@openclawپنگ بھیجیں اور اس بات کی تصدیق کریں کہ جواب بھیجنے والے کے نام کا حوالہ دیتا ہے۔ - دوسرا پنگ بھیجیں اور تصدیق کریں کہ ہسٹری بلاک شامل ہوتا ہے پھر اگلی باری پر صاف ہو جاتا ہے۔
- گیٹ وے لاگز چیک کریں (
--verboseکے ساتھ چلائیں) تاکہfrom: <groupJid>اور[from: …]سفکس دکھانے والیinbound web messageانٹریز نظر آئیں۔
معلوم امور¶
- شور سے بھرپور براڈکاسٹس سے بچنے کے لیے گروپس کے لیے ہارٹ بیٹس جان بوجھ کر چھوڑ دیے جاتے ہیں۔
- ایکو سپریشن مشترکہ بیچ اسٹرنگ استعمال کرتی ہے؛ اگر آپ بغیر مینشن کے ایک ہی متن دو بار بھیجیں تو صرف پہلی بار جواب آئے گا۔
- سیشن اسٹور میں اندراجات
agent:<agentId>:whatsapp:group:<jid>کے طور پر ظاہر ہوں گی (بطورِ طے شدہ~/.openclaw/agents/<agentId>/sessions/sessions.json)؛ اندراج کا نہ ہونا صرف یہ معنی رکھتا ہے کہ گروپ نے ابھی تک رن ٹرگر نہیں کیا۔ - گروپس میں ٹائپنگ اشارے
agents.defaults.typingModeکی پیروی کرتے ہیں (ڈیفالٹ: بغیر مینشنmessage)۔