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) इनबाउंड संदर्भ बनाते समय नीति लागू करते हैं; अज्ञात नीति संयोजन सुरक्षित रूप से विफल होते हैं और संदर्भ को छोड़ देते हैं।
यदि आप चाहते हैं...
| लक्ष्य | क्या सेट करें |
|---|---|
| सभी समूहों को अनुमति दें, लेकिन केवल @mentions पर जवाब दें | 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: ["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: [ // होस्टपथ:कंटेनरपथ:मोड "/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"], // numeric Telegram user id (setup resolves @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मेंशन गेटिंग (जिसमें @मेंशन आवश्यक होते हैं) से अलग है।- 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 (खुला/अक्षम/अनुमति-सूची)।
समूह अनुमति-सूचियाँ
समूह अनुमति-सूचियाँ (*.groups, *.groupAllowFrom, चैनल-विशिष्ट अनुमति-सूची)।
मेंशन गेटिंग
मेंशन गेटिंग (requireMention, /activation)।
मेंशन गेटिंग (डिफ़ॉल्ट)
समूह संदेशों में मेंशन आवश्यक होता है, जब तक कि उसे प्रति समूह ओवरराइड न किया गया हो। डिफ़ॉल्ट प्रत्येक सबसिस्टम में *.groups."*" के अंतर्गत होते हैं।
जब चैनल उत्तर मेटाडेटा उपलब्ध कराता है, तब बॉट संदेश का उत्तर देना एक अंतर्निहित मेंशन माना जाता है; बॉट संदेश को उद्धृत करना भी उन चैनलों पर मेंशन माना जा सकता है जो उद्धरण मेटाडेटा उपलब्ध कराते हैं। वर्तमान अंतर्निहित मामले: Discord, Microsoft Teams, QQBot, Slack, Telegram, WhatsApp और Zalo व्यक्तिगत।
{ 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: { list: [ { id: "main", groupChat: { mentionPatterns: ["@openclaw", "openclaw", "\\+15555550123"], historyLimit: 50, }, }, ], },}कॉन्फ़िगर किए गए मेंशन पैटर्न का दायरा निर्धारित करें
कॉन्फ़िगर किए गए mentionPatterns regex फ़ॉलबैक ट्रिगर हैं। इनका उपयोग तब करें जब
प्लेटफ़ॉर्म कोई नेटिव बॉट मेंशन उपलब्ध नहीं कराता, या जब आप चाहते हैं कि
openclaw: जैसा सादा टेक्स्ट मेंशन माना जाए। नेटिव प्लेटफ़ॉर्म मेंशन अलग होते हैं:
जब Discord, Slack, Telegram, Matrix, Signal या कोई अन्य चैनल प्रमाणित कर सकता है कि संदेश में
बॉट का स्पष्ट रूप से मेंशन किया गया था, तो वह नेटिव मेंशन तब भी ट्रिगर होता है जब
कॉन्फ़िगर किए गए regex पैटर्न अस्वीकृत हों।
डिफ़ॉल्ट रूप से, कॉन्फ़िगर किए गए मेंशन पैटर्न उन सभी स्थानों पर लागू होते हैं जहाँ चैनल प्रदाता और वार्तालाप संबंधी तथ्य मेंशन पहचान को देता है। व्यापक पैटर्न को प्रत्येक समूह में एजेंट सक्रिय करने से रोकने के लिए, channels.<channel>.mentionPatterns के साथ प्रति चैनल उनका दायरा निर्धारित करें।
जब किसी चैनल के लिए regex मेंशन पैटर्न डिफ़ॉल्ट रूप से बंद होने चाहिए, तब mode: "deny" का उपयोग करें, फिर allowIn के साथ विशिष्ट रूम के लिए उन्हें चालू करें:
{ messages: { groupChat: { mentionPatterns: ["\\bopenclaw\\b", "\\bops bot\\b"], }, }, channels: { slack: { mentionPatterns: { mode: "deny", allowIn: ["C0123OPS"], }, }, },}जब regex मेंशन पैटर्न व्यापक रूप से लागू होने चाहिए, तब डिफ़ॉल्ट mode: "allow" का उपयोग करें (या mode को छोड़ दें), फिर denyIn के साथ शोर वाले रूम में उन्हें बंद करें:
{ messages: { groupChat: { mentionPatterns: ["\\bopenclaw\\b"], }, }, channels: { telegram: { mentionPatterns: { denyIn: ["-1001234567890", "-1001234567890:topic:42"], }, }, },}नीति समाधान:
| फ़ील्ड | प्रभाव |
|---|---|
mode: "allow" |
जब तक वार्तालाप आईडी denyIn में न हो, regex मेंशन पैटर्न सक्षम रहते हैं। यह डिफ़ॉल्ट है। |
mode: "deny" |
जब तक वार्तालाप आईडी allowIn में न हो, regex मेंशन पैटर्न अक्षम रहते हैं। |
allowIn |
वे वार्तालाप आईडी जहाँ अस्वीकार मोड में regex मेंशन पैटर्न सक्षम हैं। |
denyIn |
वे वार्तालाप आईडी जहाँ regex मेंशन पैटर्न अक्षम हैं। यदि दोनों में समान आईडी शामिल हो, तो denyIn, allowIn पर प्राथमिकता पाता है। |
वर्तमान में समर्थित दायरा-निर्धारित regex नीति:
| चैनल | allowIn / denyIn में उपयोग की जाने वाली आईडी |
|---|---|
| Discord | Discord चैनल आईडी। |
| Matrix | Matrix रूम आईडी। |
| Slack | Slack चैनल आईडी। |
| Telegram | समूह चैट आईडी, या फ़ोरम विषयों के लिए chatId:topic:threadId। |
123@g.us जैसी WhatsApp वार्तालाप आईडी। |
जब कोई चैनल एकाधिक अकाउंट का समर्थन करता है, तब अकाउंट-स्तरीय चैनल कॉन्फ़िगरेशन channels.<channel>.accounts.<accountId>.mentionPatterns के अंतर्गत समान नीति निर्धारित कर सकते हैं। उस अकाउंट के लिए अकाउंट नीति शीर्ष-स्तरीय चैनल नीति पर प्राथमिकता पाती है।
मेंशन गेटिंग संबंधी टिप्पणियाँ
mentionPatternsअक्षर-स्थिति की परवाह न करने वाले सुरक्षित regex पैटर्न हैं; अमान्य पैटर्न और असुरक्षित नेस्टेड-पुनरावृत्ति रूपों को चेतावनी के साथ अनदेखा किया जाता है।- पैटर्न प्राथमिकता:
agents.list[].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 से संबंधित व्यवहार (इतिहास इंजेक्शन, उल्लेख प्रबंधन का विवरण) के लिए समूह संदेश देखें।