Discord (Bot API)
स्थिति: आधिकारिक Discord बॉट गेटवे के माध्यम से DM और guild टेक्स्ट चैनलों के लिए तैयार।Pairing
Discord DMs डिफ़ॉल्ट रूप से pairing मोड में होते हैं।
Slash commands
नेटिव कमांड व्यवहार और कमांड कैटलॉग।
Channel troubleshooting
क्रॉस-चैनल डायग्नोस्टिक्स और रिपेयर फ़्लो।
त्वरित सेटअप
1
Create a Discord bot and enable intents
Discord Developer Portal में एक application बनाएं, एक bot जोड़ें, फिर सक्षम करें:
2
Configure token
3
Invite the bot and start gateway
अपने सर्वर पर संदेश अनुमतियों के साथ बॉट को आमंत्रित करें।
4
Approve first DM pairing
टोकन रेज़ोल्यूशन अकाउंट-अवेयर है। कॉन्फ़िग में दिए गए टोकन मान, env fallback पर प्राथमिकता लेते हैं।
DISCORD_BOT_TOKEN केवल डिफ़ॉल्ट अकाउंट के लिए उपयोग होता है।रनटाइम मॉडल
- Gateway, Discord कनेक्शन का स्वामित्व रखता है।
- रिप्लाई रूटिंग निर्धारक है: Discord से आने वाले संदेशों के उत्तर Discord पर ही भेजे जाते हैं।
- डिफ़ॉल्ट रूप से (
session.dmScope=main), डायरेक्ट चैट एजेंट के मुख्य सेशन (agent:main:main) को साझा करती हैं। - Guild चैनल अलग-थलग सेशन कीज़ होते हैं (
agent:<agentId>:discord:channel:<channelId>)। - Group DM डिफ़ॉल्ट रूप से अनदेखे किए जाते हैं (
channels.discord.dm.groupEnabled=false)। - नेटिव स्लैश कमांड अलग-थलग कमांड सेशन (
agent:<agentId>:discord:slash:<userId>) में चलते हैं, जबकि रूट की गई वार्तालाप सेशन के लिएCommandTargetSessionKeyभी साथ ले जाते हैं।
एक्सेस कंट्रोल और रूटिंग
- DM policy
- Guild policy
- Mentions and group DMs
channels.discord.dmPolicy DM एक्सेस को नियंत्रित करता है (लेगेसी: channels.discord.dm.policy):भूमिका-आधारित एजेंट रूटिंग
Discord guild सदस्यों को role ID के आधार पर विभिन्न एजेंटों की ओर रूट करने के लिएbindings[].match.roles का उपयोग करें। भूमिका-आधारित bindings केवल role IDs स्वीकार करते हैं और peer या parent-peer bindings के बाद तथा केवल-guild bindings से पहले मूल्यांकित किए जाते हैं। यदि कोई binding अन्य match फ़ील्ड्स भी सेट करता है (उदाहरण के लिए peer + guildId + roles), तो सभी कॉन्फ़िगर किए गए फ़ील्ड्स का मिलान होना आवश्यक है।
Developer Portal सेटअप
Create app and bot
Create app and bot
Privileged intents
Privileged intents
Bot -> Privileged Gateway Intents में, सक्षम करें:
OAuth scopes and baseline permissions
OAuth scopes and baseline permissions
OAuth URL जनरेटर:
Copy IDs
Copy IDs
Discord Developer Mode सक्षम करें, फिर कॉपी करें:
नेटिव कमांड्स और कमांड प्रमाणीकरण
commands.nativeडिफ़ॉल्ट रूप से"auto"होता है और Discord के लिए सक्षम रहता है।- प्रति-चैनल ओवरराइड:
channels.discord.commands.native। commands.native=falseपहले से पंजीकृत Discord नेटिव कमांड्स को स्पष्ट रूप से हटा देता है।- नेटिव कमांड प्रमाणीकरण सामान्य संदेश हैंडलिंग की तरह ही Discord allowlists/policies का उपयोग करता है।
- कमांड्स Discord UI में उन उपयोगकर्ताओं को दिखाई दे सकते हैं जो अधिकृत नहीं हैं; लेकिन निष्पादन के समय OpenClaw प्रमाणीकरण लागू होता है और “not authorized” लौटाया जाता है।
Retry policy
History, context, and thread behavior
History, context, and thread behavior
Guild history संदर्भ:
Reaction notifications
Reaction notifications
प्रति-guild reaction सूचना मोड:
Ack reactions
Ack reactions
ackReaction OpenClaw द्वारा इनबाउंड संदेश प्रोसेस करते समय एक acknowledgment emoji भेजता है।Config writes
Config writes
चैनल-प्रारंभित कॉन्फ़िग राइट्स डिफ़ॉल्ट रूप से सक्षम हैं।
Gateway proxy
Gateway proxy
channels.discord.proxy के साथ Discord gateway WebSocket ट्रैफ़िक को HTTP(S) प्रॉक्सी के माध्यम से रूट करें।PluralKit support
PluralKit support
प्रॉक्सी किए गए संदेशों को सिस्टम सदस्य पहचान से मैप करने के लिए PluralKit resolution सक्षम करें:
Presence configuration
Presence configuration
Presence अपडेट केवल तब लागू होते हैं जब आप status या activity फ़ील्ड सेट करते हैं।
Exec approvals in Discord
Exec approvals in Discord
Discord DMs में बटन-आधारित exec approvals का समर्थन करता है और वैकल्पिक रूप से मूल चैनल में approval prompts पोस्ट कर सकता है।
टूल्स और एक्शन गेट्स
Discord संदेश एक्शंस में messaging, channel admin, moderation, presence और metadata एक्शंस शामिल हैं। मुख्य उदाहरण:- messaging:
sendMessage,readMessages,editMessage,deleteMessage,threadReply - reactions:
react,reactions,emojiList - moderation:
timeout,kick,ban - presence:
setPresence
channels.discord.actions.* के अंतर्गत होते हैं।
डिफ़ॉल्ट गेट व्यवहार:
Components v2 UI
OpenClaw exec approvals और cross-context markers के लिए Discord components v2 का उपयोग करता है। Discord message actions कस्टम UI के लिएcomponents भी स्वीकार कर सकते हैं (उन्नत; Carbon component instances आवश्यक), जबकि legacy embeds अभी भी उपलब्ध हैं लेकिन अनुशंसित नहीं हैं।
channels.discord.ui.components.accentColorDiscord component containers द्वारा उपयोग किए जाने वाले accent color (hex) को सेट करता है।- प्रत्येक account के लिए
channels.discord.accounts.<id>.ui.components.accentColorसेट करें। - जब components v2 मौजूद हों तो
embedsको अनदेखा कर दिया जाता है।
Voice messages
Discord voice messages में waveform preview दिखाई देता है और OGG/Opus ऑडियो के साथ metadata आवश्यक होता है। OpenClaw waveform स्वतः उत्पन्न करता है, लेकिन ऑडियो फ़ाइलों की जाँच और रूपांतरण के लिए gateway host परffmpeg और ffprobe उपलब्ध होने चाहिए।
आवश्यकताएँ और सीमाएँ:
- स्थानीय फ़ाइल पथ प्रदान करें (URLs अस्वीकार किए जाते हैं)।
- टेक्स्ट सामग्री शामिल न करें (Discord एक ही payload में टेक्स्ट + voice message की अनुमति नहीं देता)।
- कोई भी ऑडियो फ़ॉर्मेट स्वीकार्य है; आवश्यकता होने पर OpenClaw इसे OGG/Opus में बदल देता है।
समस्या-निवारण
Used disallowed intents or bot sees no guild messages
Used disallowed intents or bot sees no guild messages
Guild messages blocked unexpectedly
Guild messages blocked unexpectedly
Require mention false but still blocked
Require mention false but still blocked
सामान्य कारण:
Permissions audit mismatches
Permissions audit mismatches
channels status --probe permission checks केवल numeric channel IDs के लिए काम करते हैं।DM and pairing issues
DM and pairing issues
Bot to bot loops
Bot to bot loops
डिफ़ॉल्ट रूप से bot द्वारा लिखे गए संदेशों को अनदेखा किया जाता है।
Configuration reference pointers
प्राथमिक संदर्भ: उच्च-प्राथमिकता वाले Discord फ़ील्ड्स:- startup/auth:
enabled,token,accounts.*,allowBots - policy:
groupPolicy,dm.*,guilds.*,guilds.*.channels.* - command:
commands.native,commands.useAccessGroups,configWrites - reply/history:
replyToMode,historyLimit,dmHistoryLimit,dms.*.historyLimit - delivery:
textChunkLimit,chunkMode,maxLinesPerMessage - media/retry:
mediaMaxMb,retry - actions:
actions.* - presence:
activity,status,activityType,activityUrl - UI:
ui.components.accentColor - features:
pluralkit,execApprovals,intents,agentComponents,heartbeat,responsePrefix
सुरक्षा और संचालन
- बॉट टोकन को सीक्रेट की तरह संभालें (सुपरवाइज़्ड वातावरण में
DISCORD_BOT_TOKENको प्राथमिकता दें)। - न्यूनतम-आवश्यक Discord अनुमतियाँ प्रदान करें।
- यदि command deploy/state पुराना है, तो gateway को पुनः शुरू करें और
openclaw channels status --probeके साथ दोबारा जाँच करें।