समूह
OpenClaw सभी प्लेटफ़ॉर्म्स पर समूह चैट को एक समान तरीके से संभालता है: WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Microsoft Teams।शुरुआती परिचय (2 मिनट)
OpenClaw आपके अपने मैसेजिंग अकाउंट्स पर ही “रहता” है। कोई अलग WhatsApp बॉट यूज़र नहीं है। यदि आप किसी समूह में हैं, तो OpenClaw उस समूह को देख सकता है और वहीं उत्तर दे सकता है। डिफ़ॉल्ट व्यवहार:- समूह प्रतिबंधित होते हैं (
groupPolicy: "allowlist")। - उत्तर देने के लिए मेंशन आवश्यक है, जब तक कि आप मेंशन गेटिंग को स्पष्ट रूप से अक्षम न करें।
TL;DRत्वरित प्रवाह (किसी समूह संदेश के साथ क्या होता है):
- DM पहुँच
*.allowFromद्वारा नियंत्रित होती है।- समूह पहुँच
*.groupPolicy+ allowlists (*.groups,*.groupAllowFrom) द्वारा नियंत्रित होती है।- उत्तर ट्रिगर करना मेंशन गेटिंग (
requireMention,/activation) द्वारा नियंत्रित होता है।
| लक्ष्य | क्या सेट करें |
|---|---|
| सभी समूहों को अनुमति दें, लेकिन केवल @mentions पर उत्तर दें | groups: { "*": { requireMention: true } } |
| सभी समूह उत्तर अक्षम करें | groupPolicy: "disabled" |
| केवल विशिष्ट समूह | groups: { "<group-id>": { ... } } (कोई "*" कुंजी नहीं) |
| समूहों में केवल आप ही ट्रिगर कर सकें | groupPolicy: "allowlist", groupAllowFrom: ["+1555..."] |
सत्र कुंजियाँ
- समूह सत्र
agent:<agentId>:<channel>:group:<id>सत्र कुंजियों का उपयोग करते हैं (rooms/channelsagent:<agentId>:<channel>:channel:<id>का उपयोग करते हैं)। - Telegram फ़ोरम विषय समूह आईडी में
:topic:<threadId>जोड़ते हैं ताकि प्रत्येक विषय का अपना सत्र हो। - डायरेक्ट चैट मुख्य सत्र का उपयोग करती हैं (या यदि कॉन्फ़िगर किया गया हो तो प्रति-प्रेषक)।
- समूह सत्रों के लिए हार्टबीट्स छोड़े जाते हैं।
पैटर्न: व्यक्तिगत DMs + सार्वजनिक समूह (एकल एजेंट)
हाँ — यदि आपका “व्यक्तिगत” ट्रैफ़िक DMs है और आपका “सार्वजनिक” ट्रैफ़िक समूह है, तो यह अच्छी तरह काम करता है। क्यों: सिंगल-एजेंट मोड में, DMs आम तौर पर main सेशन की (agent:main:main) में जाते हैं, जबकि समूह हमेशा non-main सेशन कीज़ (agent:main:<channel>:group:<id>) का उपयोग करते हैं। यदि आप mode: "non-main" के साथ सैंडबॉक्सिंग सक्षम करते हैं, तो वे समूह सेशन Docker में चलते हैं जबकि आपका मुख्य DM सेशन होस्ट पर ही रहता है।
इससे आपको एक एजेंट “मस्तिष्क” (साझा कार्यक्षेत्र + मेमोरी) मिलता है, लेकिन दो निष्पादन स्थितियाँ:
- DMs: पूर्ण टूल्स (होस्ट)
- समूह: sandbox + प्रतिबंधित टूल्स (Docker)
यदि आपको वास्तव में अलग वर्कस्पेस/पर्सोना चाहिए (“personal” और “public” कभी मिश्रित नहीं होने चाहिए), तो दूसरा एजेंट + बाइंडिंग्स उपयोग करें। Multi-Agent Routing देखें।उदाहरण (DMs होस्ट पर, समूह sandboxed + केवल मैसेजिंग टूल्स):
workspaceAccess: "none" रखें और केवल allowlist किए गए पाथ्स को सैंडबॉक्स में माउंट करें:
- कॉन्फ़िगरेशन कुंजियाँ और डिफ़ॉल्ट्स: Gateway configuration
- यह डिबग करना कि कोई टूल क्यों ब्लॉक है: Sandbox vs Tool Policy vs Elevated
- Bind mounts विवरण: Sandboxing
डिस्प्ले लेबल
- UI लेबल उपलब्ध होने पर
displayNameका उपयोग करते हैं, और<channel>:<token>के रूप में फ़ॉर्मैट होते हैं। #roomrooms/channels के लिए आरक्षित है; समूह चैटg-<slug>का उपयोग करती हैं (लोअरकेस, स्पेस ->-,#@+._-बनाए रखें)।
समूह नीति
प्रति चैनल यह नियंत्रित करें कि समूह/रूम संदेश कैसे संभाले जाएँ:| नीति | व्यवहार |
|---|---|
"open" | समूह allowlists को बायपास करते हैं; मेंशन गेटिंग फिर भी लागू रहती है। |
"disabled" | सभी समूह संदेश पूरी तरह ब्लॉक करें। |
"allowlist" | केवल वे समूह/रूम अनुमति दें जो कॉन्फ़िगर की गई allowlist से मेल खाते हों। |
groupPolicyमेंशन-गेटिंग से अलग है (जिसके लिए @mentions आवश्यक हैं)।- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams:
groupAllowFromका उपयोग करें (फ़ॉलबैक: स्पष्टallowFrom)। - Discord: allowlist
channels.discord.guilds.<id>का उपयोग करती है.channels`. - Slack: allowlist
channels.slack.channelsका उपयोग करती है। - Matrix: allowlist
channels.matrix.groupsका उपयोग करती है (रूम IDs, एलियासेस, या नाम)। प्रेषकों को सीमित करने के लिएchannels.matrix.groupAllowFromका उपयोग करें; प्रति-रूमusersallowlists भी समर्थित हैं। - Group DMs अलग से नियंत्रित होते हैं (
channels.discord.dm.*,channels.slack.dm.*)। - Telegram allowlist उपयोगकर्ता IDs (
"123456789","telegram:123456789","tg:123456789") या उपयोगकर्ता नाम ("@alice"या"alice") से मेल खा सकती है; प्रीफ़िक्स केस-इनसेंसिटिव होते हैं। - डिफ़ॉल्ट
groupPolicy: "allowlist"है; यदि आपकी समूह allowlist खाली है, तो समूह संदेश ब्लॉक हो जाते हैं।
groupPolicy(open/disabled/allowlist)- समूह allowlists (
*.groups,*.groupAllowFrom, चैनल-विशिष्ट allowlist) - मेंशन गेटिंग (
requireMention,/activation)
मेंशन गेटिंग (डिफ़ॉल्ट)
समूह संदेशों के लिए एक mention आवश्यक है जब तक कि प्रति समूह ओवरराइड न किया जाए। डिफ़ॉल्ट्स प्रत्येक सबसिस्टम के अंतर्गत*.groups."*" में रहते हैं।
बॉट संदेश का उत्तर देना एक अप्रत्यक्ष mention माना जाता है (जब चैनल reply मेटाडेटा का समर्थन करता है)। यह Telegram, WhatsApp, Slack, Discord, और Microsoft Teams पर लागू होता है।
mentionPatternsकेस-इनसेंसिटिव regexes हैं।- जिन प्लेटफ़ॉर्म्स पर स्पष्ट mentions उपलब्ध हैं, वे हमेशा पास होते हैं; पैटर्न केवल फ़ॉलबैक हैं।
- प्रति-एजेंट ओवरराइड:
agents.list[].groupChat.mentionPatterns(जब कई एजेंट एक समूह साझा करते हों, तब उपयोगी)। - मेंशन गेटिंग केवल तब लागू होती है जब मेंशन डिटेक्शन संभव हो (नेटिव mentions या
mentionPatternsकॉन्फ़िगर हों)। - Discord के डिफ़ॉल्ट्स
channels.discord.guilds."*"में रहते हैं (प्रति guild/channel ओवरराइड योग्य)। - समूह इतिहास कॉन्टेक्स्ट सभी चैनलों में समान रूप से रैप किया जाता है और pending-only होता है (mention gating के कारण छोड़े गए संदेश); ग्लोबल डिफ़ॉल्ट के लिए
messages.groupChat.historyLimitऔर ओवरराइड्स के लिएchannels.<channel> .historyLimit(याchannels.<channel> .accounts.*.historyLimit) का उपयोग करें।0सेट करने पर अक्षम हो जाता है।toolsBySender: समूह के भीतर प्रति-प्रेषक ओवरराइड्स (कुंजियाँ चैनल के अनुसार sender IDs/usernames/emails/phone numbers होती हैं)। वाइल्डकार्ड के रूप में"*"का उपयोग करें।
समूह/चैनल टूल प्रतिबंध (वैकल्पिक)
कुछ चैनल कॉन्फ़िग्स किसी विशिष्ट समूह/रूम/चैनल के अंदर कौन से टूल उपलब्ध हों, यह सीमित करने का समर्थन करते हैं।tools: पूरे समूह के लिए टूल्स को allow/deny करें।- जब
channels.whatsapp.groups,channels.telegram.groups, याchannels.imessage.groupsकॉन्फ़िगर किया जाता है, तो कुंजियाँ एक समूह allowlist के रूप में कार्य करती हैं। Use"*"as a wildcard.
- समूह/चैनल
toolsBySenderमैच - समूह/चैनल
tools - डिफ़ॉल्ट (
"*")toolsBySenderमैच - डिफ़ॉल्ट (
"*")tools
- समूह/चैनल टूल प्रतिबंध वैश्विक/एजेंट टूल नीति के अतिरिक्त लागू होते हैं (deny को प्राथमिकता मिलती है)।
- कुछ चैनल rooms/channels के लिए अलग नेस्टिंग का उपयोग करते हैं (जैसे, Discord
guilds.*.channels.*, Slackchannels.*, MS Teamsteams.*.channels.*)।
समूह allowlists
Whenchannels.whatsapp.groups, channels.telegram.groups, or channels.imessage.groups is configured, the keys act as a group allowlist. 1. डिफ़ॉल्ट मेंशन व्यवहार सेट करते हुए सभी समूहों को अनुमति देने के लिए "*" का उपयोग करें।
सामान्य इरादे (कॉपी/पेस्ट):
- सभी समूह उत्तर अक्षम करें
- केवल विशिष्ट समूहों को अनुमति दें (WhatsApp)
- सभी समूहों को अनुमति दें लेकिन मेंशन आवश्यक करें (स्पष्ट)
- समूहों में केवल मालिक ही ट्रिगर कर सके (WhatsApp)
सक्रियण (केवल मालिक)
समूह मालिक प्रति-समूह सक्रियण टॉगल कर सकते हैं:/activation mention/activation always
- Owner का निर्धारण
channels.whatsapp.allowFromद्वारा किया जाता है (या यदि unset हो तो बॉट का स्वयं का E.164)। 3. कमांड को एक standalone संदेश के रूप में भेजें। 4. अन्य surfaces वर्तमान में/activationको अनदेखा करते हैं।
संदर्भ फ़ील्ड्स
समूह इनबाउंड पेलोड्स सेट करते हैं:ChatType=groupGroupSubject(यदि ज्ञात हो)GroupMembers(यदि ज्ञात हो)WasMentioned(मेंशन गेटिंग परिणाम)- Telegram फ़ोरम विषयों में अतिरिक्त रूप से
MessageThreadIdऔरIsForumशामिल होते हैं।
- एजेंट सिस्टम प्रॉम्प्ट में नए समूह सत्र के पहले टर्न पर एक समूह परिचय शामिल होता है। 6. यह मॉडल को इंसान की तरह जवाब देने, Markdown तालिकाओं से बचने, और literal
\nअनुक्रम टाइप करने से बचने की याद दिलाता है।
iMessage विशेषताएँ
- रूटिंग या allowlisting करते समय
chat_id:<id>को प्राथमिकता दें। - चैट्स सूचीबद्ध करें:
imsg chats --limit 20। - समूह उत्तर हमेशा उसी
chat_idपर वापस जाते हैं।