discord-bot-architect
构建生产就绪Discord机器人的专业技能。涵盖Discord.js(JavaScript)与Pycord(Python),包括网关意图、斜杠命令、交互组件、速率限制与分片技术。
作者
分类
开发工具安装
热度:3
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-discord-bot-architect&locale=zh&source=copy
Discord Bot Architect - Discord 机器人开发架构指南
技能概述
Discord Bot Architect 是一个专用于构建生产级 Discord 机器人的技能,提供 Discord.js (JavaScript) 和 Pycord (Python) 框架的完整开发模板,涵盖 slash 命令、交互组件、rate limiting 和分片架构等核心功能。
适用场景
1. 使用 JavaScript/TypeScript 构建 Discord 机器人
当你需要使用现代 JavaScript 或 TypeScript 开发 Discord bot 时,Discord.js v14 提供了完整的 gateway 连接、事件处理和 slash commands 支持。该模式包含命令加载器、事件处理系统和生产级 intents 配置。
2. 使用 Python 开发 Discord 机器人
当团队更熟悉 Python 或需要利用 Python 生态系统时,Pycord 提供了优秀的 async/await 模式和 slash command 支持。技能包含完整的 bot 设置、cogs 架构和命令同步最佳实践。
3. 需要处理大规模 Discord 服务器和分片部署
当 Discord 机器人服务于大型服务器(25万+成员)或需要在数千个服务器中运行时,需要实现分片架构来处理 gateway 连接限制。技能涵盖了 sharding 策略和 rate limiting 处理。
核心功能
1. Discord.js v14 和 Pycord 框架模板
提供开箱即用的 bot 基础架构,包括命令/事件加载器、最小权限 intents 配置、环境变量管理和 cog 扩展系统。模板遵循 Discord 官方最佳实践,避免使用已弃用的 Message Content Intent。
2. Slash 命令和交互组件模式
完整的 slash command 开发指南,包括命令构建器、选项处理、响应策略(reply vs defer),以及按钮、选择菜单和模态框的交互式组件实现。包含组件收集器模式和用户输入验证。
3. Rate Limiting 和生产部署指南
涵盖 Discord API rate limiting 处理、全局命令 vs guild 命令的传播延迟、命令同步的最佳实践(避免每次启动同步),以及 token 安全和分片架构的生产环境配置。
常见问题
Discord bot 开发应该用什么框架?
选择 Discord.js(JavaScript/TypeScript)还是 Pycord(Python)主要取决于团队技术栈和项目需求。Discord.js 拥有最大的社区和最完整的文档,适合 JS/TS 开发者。Pycord 是 discord.py 的现代分支,提供更好的 slash command 支持,适合 Python 开发者。两者都支持 production-ready 的功能,关键选择依据是团队熟悉度和现有技术栈。
如何创建 Discord slash command?
Slash commands 是 Discord 推荐的命令方式,替代传统的基于消息的命令。在 Discord.js 中使用
SlashCommandBuilder 构建命令,注册为 /command 形式。在 Pycord 中使用 @bot.slash_command() 装饰器。重要注意:全局命令需要通过专门的部署脚本注册(而非每次 bot 启动时),因为它们需要最多 1 小时传播到所有服务器。开发阶段建议使用 guild commands 进行测试。为什么我的 Discord bot 命令没有同步?
命令同步问题通常有几个原因:(1)全局命令需要等待 Discord API 传播,可能需要 1 小时;(2)每次启动时同步命令会触发 rate limiting,应使用单独的部署脚本;(3)确保 bot 有
applications.commands scope;(4)开发环境使用 guild commands 可以即时同步。最佳实践是将命令部署与 bot 启动分离,只在代码变更时运行部署脚本。