message टूल को कॉल नहीं करता।
हमेशा चालू रहने वाली समूह चैट के लिए, यह अनुशंसित मोड है: messages.groupChat.unmentionedInbound: "room_event" को messages.groupChat.visibleReplies: "message_tool" के साथ मिलाएं। इसका उपयोग तब करें जब एजेंट को सुनना चाहिए, तय करना चाहिए कि उत्तर कब उपयोगी है, और NO_REPLY का उत्तर देने वाले पुराने प्रॉम्प्ट पैटर्न से बचना चाहिए।
आज समर्थित: Discord गिल्ड चैनल, Slack चैनल और निजी चैनल, Slack मल्टी-पर्सन DM, और Telegram समूह या सुपरग्रुप। अन्य समूह चैनल अपना मौजूदा समूह व्यवहार बनाए रखते हैं, जब तक कि उनके चैनल पेज पर यह न कहा गया हो कि वे एम्बिएंट रूम इवेंट का समर्थन करते हैं।
अनुशंसित सेटअप
वैश्विक समूह-चैट व्यवहार सेट करें:groupPolicy, रूम allowlist, और sender allowlist द्वारा अनुमति मिलनी चाहिए।
कॉन्फ़िग सहेजने के बाद, Gateway messages सेटिंग्स को hot-reload करता है। केवल तब restart करें जब file watching या config reload अक्षम हो।
क्या बदलता है
messages.groupChat.unmentionedInbound: "room_event" के साथ:
- उल्लेख न किए गए, अनुमति प्राप्त समूह या चैनल संदेश शांत रूम इवेंट बन जाते हैं
- उल्लेखित संदेश उपयोगकर्ता अनुरोध बने रहते हैं
- टेक्स्ट कमांड और नेटिव कमांड उपयोगकर्ता अनुरोध बने रहते हैं
- abort या stop अनुरोध उपयोगकर्ता अनुरोध बने रहते हैं
- direct messages उपयोगकर्ता अनुरोध बने रहते हैं
message(action=send) कॉल करना होगा।
Discord उदाहरण
Slack उदाहरण
Slack चैनल allowlist ID-first होते हैं।#channel-name नहीं, बल्कि C12345678 जैसे चैनल ID का उपयोग करें।
Telegram उदाहरण
Telegram समूहों के लिए, bot को सामान्य समूह संदेश देखने में सक्षम होना चाहिए। यदिrequireMention: false है, तो BotFather privacy mode अक्षम करें या कोई दूसरा Telegram सेटअप उपयोग करें जो पूरा समूह traffic bot तक पहुंचाता हो।
-1001234567890 जैसी negative संख्याएं होती हैं। openclaw logs --follow से chat.id पढ़ें, किसी समूह संदेश को ID helper bot पर forward करें, या Bot API getUpdates जांचें।
एजेंट-विशिष्ट नीति
जब कई एजेंट एक ही रूम साझा करते हैं लेकिन केवल एक को उल्लेख न की गई बातचीत को एम्बिएंट संदर्भ के रूप में लेना चाहिए, तब agent override का उपयोग करें:agents.list[].groupChat.unmentionedInbound मान उस एजेंट के लिए messages.groupChat.unmentionedInbound को override करता है।
दिखने वाले उत्तर मोड
सामान्य समूह/चैनल उपयोगकर्ता अनुरोधों के लिएmessages.groupChat.visibleReplies का default "automatic" होता है। जब आप चाहते हैं कि अंतिम assistant टेक्स्ट स्पष्ट message-tool कॉल की आवश्यकता के बिना दिखाई देता हुआ पोस्ट हो, तब वह default रखें।
एम्बिएंट हमेशा चालू रूम के लिए, messages.groupChat.visibleReplies: "message_tool" अभी भी अनुशंसित है, खासकर GPT 5.5 जैसे नवीनतम पीढ़ी के, tool-reliable models के साथ। यह एजेंट को message tool कॉल करके तय करने देता है कि कब बोलना है। यदि model tool कॉल किए बिना अंतिम टेक्स्ट लौटाता है, तो OpenClaw उस अंतिम टेक्स्ट को private रखता है और suppressed delivery metadata लॉग करता है।
जब अन्य समूह अनुरोध automatic replies का उपयोग करते हैं, तब भी रूम इवेंट strict रहते हैं। उल्लेख न किए गए एम्बिएंट रूम इवेंट को visible output के लिए फिर भी message(action=send) की आवश्यकता होती है।
इतिहास
messages.groupChat.historyLimit वैश्विक समूह history default नियंत्रित करता है। चैनल इसे channels.<channel>.historyLimit के साथ override कर सकते हैं, और कुछ चैनल per-account history limits का भी समर्थन करते हैं।
समूह history context अक्षम करने के लिए historyLimit: 0 सेट करें।
समर्थित room-event चैनल हाल के एम्बिएंट रूम संदेशों को संदर्भ के रूप में रखते हैं। Discord room-event history को तब तक रखता है जब तक कोई visible Discord send सफल न हो जाए, इसलिए message-tool delivery से पहले शांत संदर्भ खोता नहीं है।
समस्या निवारण
यदि रूम typing या token usage दिखाता है लेकिन कोई visible message नहीं है:- पुष्टि करें कि रूम को channel allowlist और sender allowlist द्वारा अनुमति दी गई है।
- पुष्टि करें कि अपेक्षित रूम स्तर पर
requireMention: falseसेट है। - जांचें कि
messages.groupChat.unmentionedInboundया agent override"room_event"है या नहीं। - suppressed final payload metadata या
didSendViaMessagingTool: falseके लिए logs देखें। - सामान्य समूह अनुरोधों के लिए, यदि आप चाहते हैं कि अंतिम replies अपने आप पोस्ट हों, तो
messages.groupChat.visibleReplies: "automatic"रखें या restore करें।message_toolका उपयोग करने वाले एम्बिएंट रूम के लिए, ऐसा model/runtime उपयोग करें जो विश्वसनीय रूप से tools कॉल करता हो।
channels:history या groups:history scope है।