Configuration
समूह
OpenClaw समूह-सक्षम चैनलों में समान समूह नियम लागू करता है, जिनमें Discord, iMessage, Matrix, Microsoft Teams, QQBot, Signal, Slack, Telegram, WhatsApp और Zalo शामिल हैं।
हमेशा सक्रिय रहने वाले उन रूम के लिए, जिन्हें एजेंट द्वारा स्पष्ट रूप से दृश्यमान संदेश भेजे जाने तक शांत संदर्भ प्रदान करना चाहिए, परिवेशी रूम इवेंट देखें।
शुरुआती परिचय (2 मिनट)
OpenClaw आपके अपने मैसेजिंग खातों पर "रहता" है। कोई अलग WhatsApp बॉट उपयोगकर्ता नहीं होता: यदि आप किसी समूह में हैं, तो OpenClaw उस समूह को देख सकता है और वहाँ जवाब दे सकता है।
डिफ़ॉल्ट व्यवहार:
- समूह प्रतिबंधित होते हैं (
groupPolicy: "allowlist"); समूह के प्रेषकों को अनुमति-सूची में जोड़े जाने तक ब्लॉक किया जाता है। - जब तक आप किसी समूह के लिए उल्लेख गेटिंग अक्षम नहीं करते, जवाबों के लिए उल्लेख आवश्यक होता है।
- अंतिम जवाब का टेक्स्ट रूम में अपने-आप पोस्ट होता है (
visibleReplies: "automatic")।
अर्थात: अनुमति-सूची में शामिल प्रेषक OpenClaw का उल्लेख करके उसे ट्रिगर कर सकते हैं।
त्वरित प्रवाह (समूह संदेश के साथ क्या होता है):
groupPolicy? disabled -> छोड़ेंgroupPolicy? allowlist -> समूह अनुमत है? नहीं -> छोड़ेंrequireMention? yes -> उल्लेख किया गया? नहीं -> केवल संदर्भ के लिए संग्रहीत करेंउल्लेख/जवाब/कमांड/DM -> उपयोगकर्ता अनुरोधहमेशा सक्रिय समूह की बातचीत -> उपयोगकर्ता अनुरोध, या कॉन्फ़िगर होने पर रूम इवेंटदृश्यमान जवाब
सामान्य समूह/चैनल अनुरोधों के लिए, OpenClaw डिफ़ॉल्ट रूप से messages.groupChat.visibleReplies: "automatic" का उपयोग करता है: अंतिम सहायक टेक्स्ट दृश्यमान जवाब के रूप में रूम में पोस्ट होता है।
जब किसी साझा रूम में एजेंट को message(action=send) कॉल करके यह तय करने देना हो कि कब बोलना है, तब messages.groupChat.visibleReplies: "message_tool" का उपयोग करें। यह टूल का विश्वसनीय रूप से उपयोग करने वाले मॉडल (उदाहरण के लिए GPT-5.6 Sol) के साथ सबसे अच्छा काम करता है। यदि मॉडल टूल का उपयोग करना चूक जाता है और सार्थक अंतिम टेक्स्ट लौटाता है, तो OpenClaw उस टेक्स्ट को रूम में पोस्ट करने के बजाय निजी रखता है।
उन मॉडल या रनटाइम के लिए "automatic" का उपयोग करें जो केवल-टूल डिलीवरी का विश्वसनीय रूप से पालन नहीं करते: सामान्य अंतिम टेक्स्ट सीधे रूम में पोस्ट होता है और एजेंट अब भी उन फ़ाइलों, इमेज या अन्य अटैचमेंट के लिए message(action=send) कॉल कर सकता है जिन्हें अंतिम टेक्स्ट के साथ नहीं भेजा जा सकता।
यदि सक्रिय टूल नीति के अंतर्गत संदेश टूल उपलब्ध नहीं है, तो OpenClaw जवाब को चुपचाप दबाने के बजाय स्वचालित दृश्यमान जवाबों पर वापस जाता है। openclaw doctor इस असंगति के बारे में चेतावनी देता है।
प्रत्यक्ष चैट और किसी भी अन्य स्रोत इवेंट के लिए, messages.visibleReplies: "message_tool" समान केवल-टूल व्यवहार को वैश्विक रूप से लागू करता है; messages.groupChat.visibleReplies समूह/चैनल रूम के लिए अधिक विशिष्ट ओवरराइड बना रहता है। आंतरिक WebChat के प्रत्यक्ष टर्न डिफ़ॉल्ट रूप से स्वचालित अंतिम-जवाब डिलीवरी का उपयोग करते हैं, ताकि Pi और Codex को समान दृश्यमान-जवाब अनुबंध मिले।
केवल-टूल मोड, छिपकर देखने वाले मोड के अधिकांश टर्न के लिए मॉडल को NO_REPLY से जवाब देने के लिए बाध्य करने वाले पुराने पैटर्न की जगह लेता है। केवल-टूल मोड में प्रॉम्प्ट किसी NO_REPLY अनुबंध को परिभाषित नहीं करता; कुछ भी दृश्यमान न करने का अर्थ केवल संदेश टूल को कॉल न करना है।
Plugin के स्वामित्व वाली वार्तालाप बाइंडिंग इसका अपवाद हैं। जब कोई Plugin किसी थ्रेड को बाइंड करके इनबाउंड टर्न पर दावा कर लेता है, तो Plugin द्वारा लौटाया गया जवाब दृश्यमान बाइंडिंग जवाब होता है; उसे message(action=send) की आवश्यकता नहीं होती। वह जवाब Plugin रनटाइम आउटपुट है, निजी मॉडल का अंतिम टेक्स्ट नहीं।
प्रत्यक्ष समूह अनुरोधों के लिए टाइपिंग संकेतक अब भी भेजे जाते हैं। सक्षम होने पर परिवेशी हमेशा सक्रिय रूम इवेंट तब तक पूरी तरह शांत रहते हैं, जब तक एजेंट संदेश टूल को कॉल नहीं करता।
सेशन डिफ़ॉल्ट रूप से विस्तृत टूल/प्रगति सारांशों को दबाते हैं। डीबगिंग के दौरान वर्तमान सेशन के लिए उन्हें दिखाने हेतु /verbose on (या /verbose full) और केवल-अंतिम-जवाब व्यवहार पर लौटने के लिए /verbose off का उपयोग करें। विस्तृत स्थिति प्रत्येक सेशन के लिए अलग होती है और प्रत्यक्ष चैट, समूहों, चैनलों तथा फ़ोरम विषयों में समान रूप से काम करती है।
उल्लेख-रहित हमेशा सक्रिय समूह वार्तालाप को उपयोगकर्ता अनुरोधों के बजाय शांत रूम संदर्भ के रूप में सबमिट करने के लिए परिवेशी रूम इवेंट का उपयोग करें:
{ messages: { groupChat: { unmentionedInbound: "room_event", }, },}डिफ़ॉल्ट unmentionedInbound: "user_request" है। उल्लेखित संदेश, कमांड, निरस्तीकरण अनुरोध और DM उपयोगकर्ता अनुरोध ही रहते हैं।
समूह/चैनल अनुरोधों के दृश्यमान आउटपुट को संदेश टूल के माध्यम से भेजना आवश्यक बनाने के लिए:
{ messages: { groupChat: { visibleReplies: "message_tool", }, },}प्रत्येक स्रोत चैट के लिए इसे आवश्यक बनाने हेतु:
{ messages: { visibleReplies: "message_tool", },}फ़ाइल सहेजे जाने के बाद Gateway, messages कॉन्फ़िगरेशन परिवर्तनों को रीस्टार्ट के बिना अपना लेता है। केवल तभी रीस्टार्ट करें जब कॉन्फ़िगरेशन रीलोड अक्षम हो (gateway.reload.mode: "off")।
कमांड टर्न visibleReplies: "message_tool" को बायपास करते हैं और हमेशा दृश्यमान रूप से जवाब देते हैं: नेटिव स्लैश कमांड (Discord, Telegram और नेटिव कमांड समर्थन वाले अन्य इंटरफ़ेस) तथा अधिकृत टेक्स्ट /... कमांड, दोनों अपना जवाब स्रोत चैट में पोस्ट करते हैं। समूहों में अनधिकृत टेक्स्ट /... टर्न केवल-संदेश-टूल बने रहते हैं; सामान्य चैट टर्न कॉन्फ़िगर किए गए डिफ़ॉल्ट का पालन करते हैं।
संदर्भ दृश्यता और अनुमति-सूचियाँ
समूह सुरक्षा में दो अलग-अलग नियंत्रण शामिल होते हैं:
- ट्रिगर प्राधिकरण: एजेंट को कौन ट्रिगर कर सकता है (
groupPolicy,groups,groupAllowFrom, चैनल-विशिष्ट अनुमति-सूचियाँ)। - संदर्भ दृश्यता: मॉडल में कौन-सा पूरक संदर्भ डाला जाता है (जवाब/उद्धरण टेक्स्ट, थ्रेड इतिहास, फ़ॉरवर्ड किया गया मेटाडेटा)।
डिफ़ॉल्ट रूप से OpenClaw संदर्भ को प्राप्त रूप में ही रखता है: अनुमति-सूचियाँ तय करती हैं कि कार्रवाइयाँ कौन ट्रिगर कर सकता है, न कि मॉडल को कौन-से उद्धृत या ऐतिहासिक अंश दिखाई देते हैं। पूरक संदर्भ को भी फ़िल्टर करने के लिए contextVisibility सेट करें:
| मोड | व्यवहार |
|---|---|
"all" (डिफ़ॉल्ट) |
पूरक संदर्भ को प्राप्त रूप में रखें। |
"allowlist" |
केवल अनुमति-सूची में शामिल प्रेषकों का इतिहास/थ्रेड/उद्धरण/फ़ॉरवर्ड किया गया संदर्भ डालें। |
"allowlist_quote" |
allowlist, साथ ही किसी भी प्रेषक के स्पष्ट रूप से उद्धृत/जवाब दिए गए संदेश को रखें। |
इसे प्रत्येक चैनल (channels.<channel>.contextVisibility), प्रत्येक खाते (channels.<channel>.accounts.<accountId>.contextVisibility) या वैश्विक रूप से (channels.defaults.contextVisibility) सेट करें। पूरक संदर्भ प्राप्त करने वाले चैनल (Discord, Feishu, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp) इनबाउंड संदर्भ बनाते समय यह नीति लागू करते हैं; अज्ञात नीति संयोजन सुरक्षित रूप से विफल होते हैं और संदर्भ को छोड़ देते हैं।
ये मोड केवल चैनल द्वारा दिए गए पूरक संदर्भ को फ़िल्टर करते हैं। टूल नीति और केवल-स्वामी टूल सूची अब भी वर्तमान टर्न के मूल अनुरोधकर्ता के आधार पर चुनी जाती हैं, न कि प्रॉम्प्ट में दर्शाए गए प्रत्येक प्रेषक के आधार पर। अनुरोधकर्ता-स्कोप वाले नियंत्रण और प्रॉम्प्ट संदर्भ देखें।
यदि आप चाहते हैं...
| लक्ष्य | क्या सेट करें |
|---|---|
| सभी समूहों को अनुमति दें, लेकिन केवल @उल्लेखों पर जवाब दें | groups: { "*": { requireMention: true } } |
| समूह के सभी जवाब अक्षम करें | groupPolicy: "disabled" |
| केवल विशिष्ट समूह | groups: { "<group-id>": { ... } } (कोई "*" कुंजी नहीं) |
| समूहों में केवल आप ट्रिगर कर सकें | groupPolicy: "allowlist", groupAllowFrom: ["+1555..."] |
| सभी चैनलों में विश्वसनीय प्रेषकों के एक सेट का पुनः उपयोग करें | groupAllowFrom: ["accessGroup:operators"] |
पुनः उपयोग योग्य प्रेषक अनुमति-सूचियों के लिए एक्सेस समूह देखें।
सेशन कुंजियाँ
- समूह सेशन
agent:<agentId>:<channel>:group:<id>सेशन कुंजियों का उपयोग करते हैं (रूम/चैनलagent:<agentId>:<channel>:channel:<id>का उपयोग करते हैं)। - Telegram फ़ोरम विषय समूह आईडी में
:topic:<threadId>जोड़ते हैं, ताकि प्रत्येक विषय का अपना सेशन हो। - प्रत्यक्ष चैट मुख्य सेशन का उपयोग करती हैं (या यदि
session.dmScopeकॉन्फ़िगर किया गया है, तो प्रत्येक प्रेषक के लिए अलग सेशन)। - Heartbeats कॉन्फ़िगर किए गए Heartbeat सेशन में चलते हैं (डिफ़ॉल्ट: एजेंट का मुख्य सेशन); समूह सेशन अपने Heartbeats नहीं चलाते।
पैटर्न: निजी DM + सार्वजनिक समूह (एक एजेंट)
हाँ — यदि आपका "निजी" ट्रैफ़िक DM है और आपका "सार्वजनिक" ट्रैफ़िक समूह है, तो यह अच्छी तरह काम करता है।
कारण: एकल-एजेंट मोड में, DM सामान्यतः मुख्य सेशन कुंजी (agent:main:main) में पहुँचते हैं, जबकि समूह हमेशा गैर-मुख्य सेशन कुंजियों (agent:main:<channel>:group:<id>) का उपयोग करते हैं। यदि आप mode: "non-main" के साथ सैंडबॉक्सिंग सक्षम करते हैं, तो वे समूह सेशन कॉन्फ़िगर किए गए सैंडबॉक्स बैकएंड में चलते हैं, जबकि आपका मुख्य DM सेशन होस्ट पर रहता है। यदि आप कोई बैकएंड नहीं चुनते, तो Docker डिफ़ॉल्ट बैकएंड होता है।
इससे आपको एजेंट का एक "मस्तिष्क" (साझा वर्कस्पेस + मेमोरी), लेकिन निष्पादन की दो स्थितियाँ मिलती हैं:
- DM: पूर्ण टूल (होस्ट)
- समूह: सैंडबॉक्स + प्रतिबंधित टूल
होस्ट पर DM, सैंडबॉक्स में समूह
{ agents: { defaults: { sandbox: { mode: "non-main", // समूह/चैनल गैर-मुख्य हैं -> सैंडबॉक्स किए गए scope: "session", // सबसे मजबूत पृथक्करण (प्रत्येक समूह/चैनल के लिए एक कंटेनर) workspaceAccess: "none", }, }, }, tools: { sandbox: { tools: { // यदि allow रिक्त नहीं है, तो बाकी सब कुछ ब्लॉक होता है (deny की प्राथमिकता फिर भी रहती है)। allow: ["group:messaging", "group:sessions"], deny: ["group:runtime", "group:fs", "group:ui", "nodes", "cron", "gateway"], }, }, },}समूहों को केवल अनुमति-सूची वाला फ़ोल्डर दिखाई देता है
"होस्ट एक्सेस नहीं" के बजाय "समूह केवल फ़ोल्डर X देख सकते हैं" चाहिए? workspaceAccess: "none" बनाए रखें और केवल अनुमति-सूची वाले पाथ सैंडबॉक्स में माउंट करें:
{ agents: { defaults: { sandbox: { mode: "non-main", scope: "session", workspaceAccess: "none", docker: { binds: [ // hostPath:containerPath:mode "/home/user/FriendsShared:/data:ro", ], }, }, }, },}संबंधित:
- कॉन्फ़िगरेशन कुंजियाँ और डिफ़ॉल्ट: Gateway कॉन्फ़िगरेशन
- टूल के ब्लॉक होने का कारण डीबग करना: सैंडबॉक्स बनाम टूल नीति बनाम उन्नत
- बाइंड माउंट का विवरण: सैंडबॉक्सिंग
प्रदर्शन लेबल
- उपलब्ध होने पर UI लेबल
displayNameका उपयोग करते हैं, जिसे<channel>:<token>के रूप में फ़ॉर्मैट किया जाता है। #roomरूम/चैनल के लिए आरक्षित है; समूह चैटg-<slug>का उपयोग करती हैं (लोअरकेस, रिक्त स्थान ->-,#@+._-बनाए रखें)। बहुत लंबी अपारदर्शी आईडी को UI में पूर्ण रूट आईडी उजागर करने के बजाय एक स्थिर टोकन में छोटा किया जाता है।
समूह नीति
प्रत्येक चैनल के लिए समूह/रूम संदेशों के प्रबंधन का तरीका नियंत्रित करें:
{ channels: { whatsapp: { groupPolicy: "disabled", // "open" | "disabled" | "allowlist" groupAllowFrom: ["+15551234567"], }, telegram: { groupPolicy: "disabled", groupAllowFrom: ["123456789"], // संख्यात्मक Telegram उपयोगकर्ता आईडी (सेटअप @username को हल करता है) }, signal: { groupPolicy: "disabled", groupAllowFrom: ["+15551234567"], }, imessage: { groupPolicy: "disabled", groupAllowFrom: ["chat_id:123"], }, msteams: { groupPolicy: "disabled", groupAllowFrom: ["user@org.com"], }, discord: { groupPolicy: "allowlist", guilds: { GUILD_ID: { channels: { help: { enabled: true } } }, }, }, slack: { groupPolicy: "allowlist", channels: { "#general": { enabled: true } }, }, matrix: { groupPolicy: "allowlist", groupAllowFrom: ["@owner:example.org"], groups: { "!roomId:example.org": { enabled: true }, "#alias:example.org": { enabled: true }, }, }, },}| नीति | व्यवहार |
|---|---|
"open" |
समूह अनुमति-सूचियों को दरकिनार करते हैं; उल्लेख-गेटिंग फिर भी लागू होती है। |
"disabled" |
सभी समूह संदेशों को पूरी तरह अवरुद्ध करें। |
"allowlist" |
केवल कॉन्फ़िगर की गई अनुमति-सूची से मेल खाने वाले समूहों/कक्षों को अनुमति दें। |
प्रति-चैनल टिप्पणियाँ
groupPolicyउल्लेख-गेटिंग (जिसके लिए @mentions आवश्यक हैं) से अलग है।- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo:
groupAllowFromका उपयोग करें (फ़ॉलबैक: स्पष्टallowFrom)। - Signal:
groupAllowFromआने वाले Signal समूह आईडी या प्रेषक के फ़ोन/UUID में से किसी से भी मेल खा सकता है। - DM पेयरिंग अनुमोदन (
*-allowFromस्टोर प्रविष्टियाँ) केवल DM पहुँच पर लागू होते हैं; समूह प्रेषक प्राधिकरण समूह अनुमति-सूचियों में स्पष्ट रूप से निर्धारित रहता है। - Discord: अनुमति-सूची
channels.discord.guilds.<id>.channelsका उपयोग करती है। - Slack: अनुमति-सूची
channels.slack.channelsका उपयोग करती है। - Matrix: अनुमति-सूची
channels.matrix.groupsका उपयोग करती है। कक्ष आईडी (!room:server) या उपनाम (#alias:server) का उपयोग करें; कक्ष-नाम कुंजियाँ केवलchannels.matrix.dangerouslyAllowNameMatching: trueके साथ मेल खाती हैं, और अनसुलझी प्रविष्टियों को रनटाइम पर अनदेखा किया जाता है। प्रेषकों को प्रतिबंधित करने के लिएchannels.matrix.groupAllowFromका उपयोग करें; प्रति-कक्षusersअनुमति-सूचियाँ भी समर्थित हैं। - समूह DM अलग से नियंत्रित होते हैं (
channels.discord.dm.*,channels.slack.dm.*:groupEnabled,groupChannels)। - Telegram: प्रेषक अनुमति-सूचियाँ केवल संख्यात्मक उपयोगकर्ता आईडी स्वीकार करती हैं (
"123456789";telegram:/tg:उपसर्गों को केस-असंवेदी ढंग से हटा दिया जाता है)।@usernameप्रविष्टियाँ रनटाइम पर मेल नहीं खातीं और चेतावनी लॉग करती हैं; सेटअप@usernameको आईडी में हल करता है। ऋणात्मक चैट आईडी प्रेषक अनुमति-सूचियों में नहीं, बल्किchannels.telegram.groupsके अंतर्गत रखी जाती हैं। - डिफ़ॉल्ट
groupPolicy: "allowlist"है; यदि आपकी समूह अनुमति-सूची खाली है, तो समूह संदेश अवरुद्ध कर दिए जाते हैं। - रनटाइम सुरक्षा: जब कोई प्रदाता ब्लॉक पूरी तरह अनुपस्थित होता है (
channels.<provider>अनुपस्थित), तो समूह नीतिchannels.defaults.groupPolicyको इनहेरिट करने के बजाय सुरक्षित रूप सेallowlistपर विफल होती है, और Gateway प्रत्येक खाते के लिए फ़ॉलबैक को एक बार लॉग करता है।
त्वरित मानसिक मॉडल (समूह संदेशों के लिए मूल्यांकन क्रम):
groupPolicy
groupPolicy (open/disabled/allowlist)।
समूह अनुमति-सूचियाँ
समूह अनुमति-सूचियाँ (*.groups, *.groupAllowFrom, चैनल-विशिष्ट अनुमति-सूची)।
उल्लेख-गेटिंग
उल्लेख-गेटिंग (requireMention, /activation)।
उल्लेख-गेटिंग (डिफ़ॉल्ट)
समूह संदेशों के लिए उल्लेख आवश्यक है, जब तक कि प्रति समूह इसे ओवरराइड न किया गया हो। डिफ़ॉल्ट प्रत्येक उपतंत्र के लिए *.groups."*" के अंतर्गत होते हैं।
समर्थित अंतर्निहित उल्लेख तथ्य चैनल-विशिष्ट हैं:
| तथ्य | वर्तमान अंतर्निर्मित उत्पादक |
|---|---|
| बॉट को उत्तर | Discord, Microsoft Teams, QQBot, Slack, Telegram |
| बॉट का उद्धरण | WhatsApp, Zalo personal |
| बॉट थ्रेड में शामिल हुआ | Mattermost, Slack, Tlon |
चैनल द्वारा प्रत्येक तथ्य उत्पन्न किए जाने पर वह डिफ़ॉल्ट रूप से सक्षम होता है। उस तथ्य को उल्लेख-गेटिंग दरकिनार करने से रोकने के लिए संबंधित implicitMentions फ़्लैग को false पर सेट करें; मूल स्पष्ट उल्लेख अप्रभावित रहते हैं। जो चैनल उस तथ्य को उत्पन्न नहीं करते, उन पर फ़्लैग का कोई प्रभाव नहीं होता।
{ channels: { whatsapp: { groups: { "*": { requireMention: true }, "123@g.us": { requireMention: false }, }, }, telegram: { groups: { "*": { requireMention: true }, "123456789": { requireMention: false }, }, }, imessage: { groups: { "*": { requireMention: true }, "123": { requireMention: false }, }, }, }, agents: { entries: { main: { groupChat: { mentionPatterns: ["@openclaw", "openclaw", "\\+15555550123"], historyLimit: 50, }, }, }, },}कॉन्फ़िगर किए गए उल्लेख पैटर्न का दायरा
कॉन्फ़िगर किए गए mentionPatterns रेगेक्स फ़ॉलबैक ट्रिगर हैं। उनका उपयोग तब करें जब
प्लेटफ़ॉर्म मूल बॉट उल्लेख उपलब्ध नहीं कराता, या जब आप चाहते हैं कि
openclaw: जैसा सामान्य टेक्स्ट उल्लेख माना जाए। मूल प्लेटफ़ॉर्म उल्लेख अलग होते हैं:
जब Discord, Slack, Telegram, Matrix, Signal या कोई अन्य चैनल यह प्रमाणित कर सकता है कि संदेश में
बॉट का स्पष्ट रूप से उल्लेख हुआ है, तब कॉन्फ़िगर किए गए रेगेक्स पैटर्न अस्वीकृत होने पर भी
वह मूल उल्लेख ट्रिगर करता है।
डिफ़ॉल्ट रूप से, कॉन्फ़िगर किए गए उल्लेख पैटर्न हर उस स्थान पर लागू होते हैं जहाँ चैनल प्रदाता और वार्तालाप तथ्यों को उल्लेख पहचान में भेजता है। व्यापक पैटर्न से एजेंट को प्रत्येक समूह में सक्रिय होने से रोकने के लिए, channels.<channel>.mentionPatterns के साथ प्रति चैनल उनका दायरा निर्धारित करें।
जब किसी चैनल के लिए रेगेक्स उल्लेख पैटर्न डिफ़ॉल्ट रूप से बंद होने चाहिए, तब mode: "deny" का उपयोग करें और फिर allowIn के साथ विशिष्ट कक्षों को शामिल करें:
{ messages: { groupChat: { mentionPatterns: ["\\bopenclaw\\b", "\\bops bot\\b"], }, }, channels: { slack: { mentionPatterns: { mode: "deny", allowIn: ["C0123OPS"], }, }, },}जब रेगेक्स उल्लेख पैटर्न व्यापक रूप से लागू होने चाहिए, तब डिफ़ॉल्ट mode: "allow" का उपयोग करें (या mode को छोड़ दें), फिर denyIn के साथ शोरगुल वाले कक्षों में उन्हें बंद करें:
{ messages: { groupChat: { mentionPatterns: ["\\bopenclaw\\b"], }, }, channels: { telegram: { mentionPatterns: { denyIn: ["-1001234567890", "-1001234567890:topic:42"], }, }, },}नीति समाधान:
| फ़ील्ड | प्रभाव |
|---|---|
mode: "allow" |
रेगेक्स उल्लेख पैटर्न तब तक सक्षम रहते हैं, जब तक वार्तालाप आईडी denyIn में न हो। यह डिफ़ॉल्ट है। |
mode: "deny" |
रेगेक्स उल्लेख पैटर्न तब तक अक्षम रहते हैं, जब तक वार्तालाप आईडी allowIn में न हो। |
allowIn |
वे वार्तालाप आईडी जहाँ अस्वीकार मोड में रेगेक्स उल्लेख पैटर्न सक्षम होते हैं। |
denyIn |
वे वार्तालाप आईडी जहाँ रेगेक्स उल्लेख पैटर्न अक्षम होते हैं। यदि दोनों में समान आईडी शामिल हो, तो denyIn, allowIn पर प्राथमिकता लेता है। |
वर्तमान में समर्थित दायरा-निर्धारित रेगेक्स नीति:
| चैनल | allowIn / denyIn में उपयोग की जाने वाली आईडी |
|---|---|
| Discord | Discord चैनल आईडी। |
| Matrix | Matrix कक्ष आईडी। |
| Slack | Slack चैनल आईडी। |
| Telegram | समूह चैट आईडी, या फ़ोरम विषयों के लिए chatId:topic:threadId। |
123@g.us जैसी WhatsApp वार्तालाप आईडी। |
जब वह चैनल एकाधिक खातों का समर्थन करता है, तब खाता-स्तरीय चैनल कॉन्फ़िगरेशन channels.<channel>.accounts.<accountId>.mentionPatterns के अंतर्गत वही नीति सेट कर सकते हैं। उस खाते के लिए खाता नीति शीर्ष-स्तरीय चैनल नीति पर प्राथमिकता लेती है।
उल्लेख-गेटिंग टिप्पणियाँ
mentionPatternsकेस-असंवेदी सुरक्षित रेगेक्स पैटर्न हैं; अमान्य पैटर्न और असुरक्षित नेस्टेड-पुनरावृत्ति रूपों को चेतावनी के साथ अनदेखा किया जाता है।- पैटर्न प्राथमिकता:
agents.entries.*.groupChat.mentionPatterns(जब एकाधिक एजेंट एक समूह साझा करते हैं तब उपयोगी)messages.groupChat.mentionPatternsको ओवरराइड करता है; जब दोनों में से कोई सेट न हो, तब पैटर्न एजेंट की पहचान के नाम/इमोजी से निकाले जाते हैं। - उल्लेख-गेटिंग केवल तभी लागू की जाती है जब उल्लेख पहचान संभव हो (मूल उल्लेख या
mentionPatternsकॉन्फ़िगर किए गए हों)। - किसी समूह या प्रेषक को अनुमति-सूची में शामिल करने से उल्लेख-गेटिंग अक्षम नहीं होती; जब सभी संदेशों को ट्रिगर करना चाहिए, तब उस समूह के
requireMentionकोfalseपर सेट करें। - स्वचालित समूह चैट प्रॉम्प्ट संदर्भ प्रत्येक टर्न पर हल किया गया मौन-उत्तर निर्देश साथ रखता है; कार्यस्थान फ़ाइलों को
NO_REPLYकार्यविधि की नकल नहीं करनी चाहिए। - वे समूह जहाँ स्वचालित मौन उत्तरों की अनुमति है, साफ़ खाली या केवल-रीज़निंग मॉडल टर्न को
NO_REPLYके समकक्ष मौन मानते हैं। प्रत्यक्ष चैट को कभीNO_REPLYमार्गदर्शन नहीं मिलता, और केवल-संदेश-टूल समूह उत्तरmessage(action=send)को कॉल न करके शांत रहते हैं। - परिवेशी सदैव-सक्रिय समूह वार्तालाप डिफ़ॉल्ट रूप से उपयोगकर्ता-अनुरोध सिमेंटिक्स का उपयोग करता है। इसके बजाय इसे शांत संदर्भ के रूप में सबमिट करने के लिए
messages.groupChat.unmentionedInbound: "room_event"सेट करें। सेटअप उदाहरणों के लिए परिवेशी कक्ष घटनाएँ देखें। - कक्ष घटनाएँ नकली उपयोगकर्ता अनुरोधों के रूप में संग्रहीत नहीं की जातीं, और बिना-संदेश-टूल वाली कक्ष घटनाओं का निजी सहायक टेक्स्ट चैट इतिहास के रूप में दोबारा नहीं चलाया जाता।
- Discord के डिफ़ॉल्ट
channels.discord.guilds."*"में होते हैं (प्रति गिल्ड/चैनल ओवरराइड किए जा सकते हैं)। - समूह इतिहास संदर्भ सभी चैनलों में एकसमान रूप से लपेटा जाता है। उल्लेख-गेटेड समूह लंबित छोड़े गए संदेश रखते हैं; सदैव-सक्रिय समूह भी हाल के संसाधित कक्ष संदेश रख सकते हैं, यदि चैनल इसका समर्थन करता हो। वैश्विक डिफ़ॉल्ट के लिए
messages.groupChat.historyLimitऔर ओवरराइड के लिएchannels.<channel>.historyLimit(याchannels.<channel>.accounts.*.historyLimit) का उपयोग करें। अक्षम करने के लिए0सेट करें।
समूह/चैनल टूल प्रतिबंध (वैकल्पिक)
कुछ चैनल कॉन्फ़िगरेशन यह प्रतिबंधित करने का समर्थन करते हैं कि किसी विशिष्ट समूह/कक्ष/चैनल के भीतर कौन-से टूल उपलब्ध हैं।
tools: पूरे समूह के लिए टूल को अनुमति दें/अस्वीकार करें (allow,alsoAllow,deny; अस्वीकार को प्राथमिकता मिलती है)।toolsBySender: समूह के भीतर प्रति-प्रेषक ओवरराइड। स्पष्ट कुंजी उपसर्गों का उपयोग करें:channel:<channelId>:<senderId>,id:<senderId>,e164:<phone>,username:<handle>,name:<displayName>, और"*"वाइल्डकार्ड। चैनल आईडी प्रामाणिक OpenClaw चैनल आईडी का उपयोग करती हैं;teamsजैसे उपनामmsteamsमें सामान्यीकृत होते हैं। पुराने उपसर्ग-रहित कुंजी रूप अभी भी स्वीकार किए जाते हैं, केवलid:के रूप में मिलाए जाते हैं, और एक अप्रचलन चेतावनी लॉग करते हैं।
समाधान क्रम (सबसे विशिष्ट को प्राथमिकता):
समूह toolsBySender
समूह/चैनल toolsBySender मिलान।
समूह tools
समूह/चैनल tools।
डिफ़ॉल्ट toolsBySender
डिफ़ॉल्ट ("*") toolsBySender मिलान।
डिफ़ॉल्ट tools
डिफ़ॉल्ट ("*") tools।
उदाहरण (Telegram):
{ channels: { telegram: { groups: { "*": { tools: { deny: ["exec"] } }, "-1001234567890": { tools: { deny: ["exec", "read", "write"] }, toolsBySender: { "id:123456789": { alsoAllow: ["exec"] }, }, }, }, }, },}समूह अनुमति-सूचियाँ
जब channels.whatsapp.groups, channels.telegram.groups, या channels.imessage.groups कॉन्फ़िगर किया जाता है, तो कुंजियाँ समूह अनुमति-सूची के रूप में कार्य करती हैं। डिफ़ॉल्ट उल्लेख व्यवहार सेट रखते हुए सभी समूहों को अनुमति देने के लिए "*" का उपयोग करें।
सामान्य उद्देश्य (कॉपी/पेस्ट करें):
सभी समूह उत्तर अक्षम करें
{ channels: { whatsapp: { groupPolicy: "disabled" } },}केवल विशिष्ट समूहों को अनुमति दें (WhatsApp)
{ channels: { whatsapp: { groups: { "123@g.us": { requireMention: true }, "456@g.us": { requireMention: false }, }, }, },}सभी समूहों को अनुमति दें, लेकिन उल्लेख आवश्यक करें
{ channels: { whatsapp: { groups: { "*": { requireMention: true } }, }, },}केवल स्वामी के ट्रिगर (WhatsApp)
{ channels: { whatsapp: { groupPolicy: "allowlist", groupAllowFrom: ["+15551234567"], groups: { "*": { requireMention: true } }, }, },}सक्रियण (केवल स्वामी)
समूह स्वामी एक स्वतंत्र संदेश से प्रत्येक समूह के सक्रियण को टॉगल कर सकते हैं:
/activation mention/activation always
/activation एक मुख्य स्वामी-प्रतिबंधित कमांड है और केवल समूह चैट में लागू होता है। स्वामी का अर्थ है कि प्रेषक commands.ownerAllowFrom से मेल खाता है; चैनल allowFrom सूचियाँ केवल सामान्य चैनल और कमांड पहुँच नियंत्रित करती हैं। जो चैनल संग्रहीत मोड का उपयोग करते हैं (Google Chat, QQBot, Telegram, WhatsApp), उनमें यह मोड उस समूह के requireMention को ओवरराइड करता है, और समूह सिस्टम-प्रॉम्प्ट परिचय हर जगह सक्रिय मोड दर्शाता है।
संदर्भ फ़ील्ड
समूह के इनबाउंड पेलोड ये सेट करते हैं:
ChatType=groupGroupSubject(यदि ज्ञात हो)GroupMembers(यदि ज्ञात हो)WasMentioned(उल्लेख गेटिंग का परिणाम)- Telegram फ़ोरम विषयों में
MessageThreadIdऔरIsForumभी शामिल होते हैं।
एजेंट सिस्टम प्रॉम्प्ट में नए समूह सत्र के पहले टर्न पर (और /activation बदलने के बाद) समूह परिचय शामिल होता है। यह मॉडल को मनुष्य की तरह उत्तर देने, खाली पंक्तियाँ न्यूनतम रखने और सामान्य चैट रिक्ति का पालन करने तथा अक्षरशः \n अनुक्रम टाइप करने से बचने की याद दिलाता है। जिन चैनलों का घोषित तालिका मोड नेटिव या रॉ तालिकाओं को बनाए नहीं रखता, वे Markdown तालिकाओं को भी हतोत्साहित करते हैं। चैनल से प्राप्त समूह नाम और प्रतिभागी लेबल इनलाइन सिस्टम निर्देशों के रूप में नहीं, बल्कि फ़ेंस किए गए अविश्वसनीय मेटाडेटा के रूप में रेंडर होते हैं।
iMessage की विशिष्टताएँ
- रूटिंग या अनुमति-सूची बनाते समय
chat_id:<id>को प्राथमिकता दें। - चैट सूचीबद्ध करें:
imsg chats --limit 20। - समूह उत्तर हमेशा उसी
chat_idपर वापस जाते हैं।
WhatsApp सिस्टम प्रॉम्प्ट
समूह और प्रत्यक्ष प्रॉम्प्ट समाधान, वाइल्डकार्ड व्यवहार तथा खाता ओवरराइड अर्थविज्ञान सहित प्रामाणिक WhatsApp सिस्टम प्रॉम्प्ट नियमों के लिए WhatsApp देखें।
WhatsApp की विशिष्टताएँ
केवल WhatsApp के व्यवहार (इतिहास अंतःक्षेपण, उल्लेख प्रबंधन विवरण) के लिए समूह संदेश देखें।