需开通Discord Bot的Message Content Intent和SERVER MEMBERS INTENT权限,配置DISCORD_BOT_TOKEN、DIFY_API_KEY、DIFY_APP_ID环境变量,修改messageCreate.ts和guildMemberAdd.ts实现关键词答疑与欢迎逻辑,在Dify中构建多语言工作流或优化对话应用,最后启动服务验证响应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

开通Discord Bot并启用必要Intent权限
要让Dify生成的AI能力实时读取用户发言、监听新成员加入并执行响应动作,必须先在Discord开发者门户中为Bot开启两项关键网关权限。进入Discord开发者门户 → 选择你的应用 → 左侧点击「Bot」→ 滚动至页面底部「Privileged Gateway Intents」区域。
勾选【Message Content Intent】——这是硬性前提,不开启则机器人完全无法获取普通用户发送的文本内容,所有关键词拦截、问答触发逻辑都会失效;同时勾选【SERVER MEMBERS INTENT】,否则无法捕获guildMemberAdd事件,自动打标签和欢迎消息功能将无法启动。
点击「Save Changes」保存。注意:该操作不可逆,关闭后再开启需重新提交Discord审核,通常耗时1–3个工作日。
部署dify-discord-starter并配置核心环境变量
克隆官方启动模板仓库:git clone https://github.com/perzeuss/dify-discord-starter.git,进入项目根目录后创建.env文件。
填入三项必填变量:
DISCORD_BOT_TOKEN=你在Discord开发者门户复制的Bot令牌(务必确认未混入空格或换行)
DIFY_API_KEY=你在Dify控制台「Settings → API Keys」中生成的密钥
DIFY_APP_ID=你在Dify中发布的工作流或对话应用的ID——不是工作区ID,也不是应用编辑页URL中的ID,而是发布后跳转链接末尾那一串字符,例如https://cloud.dify.ai/apps/<strong>abc123xyz</strong>/chat中的abc123xyz
这一步若填错DIFY_APP_ID,后续所有消息都不会被Dify处理,机器人将静默无响应。
修改事件处理器实现自动答疑逻辑
打开src/events/messageCreate.ts,在现有消息处理主逻辑前插入以下拦截块:
检测message.content是否包含“怎么用”“报错”“无法登录”“忘记密码”等高频答疑关键词;匹配成功后,立即调用await fetch(`${process.env.DIFY_API_URL}/v1/chat-messages`, { method: 'POST', body: JSON.stringify({ inputs: {}, query: message.content, response_mode: 'blocking', user: message.author.id }) }),将原始问题转发至Dify工作流。
在src/events/guildMemberAdd.ts中,使用member.send()推送结构化欢迎卡片,并同步调用member.roles.add('ROLE_ID_HERE')为其添加“新成员”角色——该角色可用于后续设置频道访问权限或触发专属答疑流程。
注意:Discord API对同一成员的send()调用有频率限制,若批量导入成员,需加await new Promise(r => setTimeout(r, 1000))防限流。
在Dify中构建面向海外用户的答疑工作流
方法一:使用「工作流(Workflow)」节点编排
新建工作流 → 拖入「开始」节点 → 接「HTTP请求」节点 → 设置URL为https://discord.com/api/v10/channels/{{channel_id}}/messages(channel_id从Discord开发者工具F12 Network中抓取)→ 方法选POST → Body填JSON格式:{"content":"{{dify_response}}","allowed_mentions":{"parse":[]}} → 最后接「结束」节点。
方法二:复用已有对话型应用
进入「Applications」→ 打开已配置知识库的客服应用 → 在「Prompt Engineering」中强化多语言适配指令:“你是一名英文客服助手,但能识别用户消息中的中文、西班牙语、法语词汇,并自动切换对应语言回复;若用户消息含中文字符,优先用中文作答,且保持后续对话语言一致。”
启用「Conversation History」并勾选「Retain context across messages」——否则用户追问“上一条说的步骤二在哪?”时,机器人会完全失忆。
启动服务并验证首条自动答疑响应
在dify-discord-starter项目根目录执行:npm install && npm run dev。
等待终端输出Bot is ready!后,前往Discord任意已添加该机器人的频道,发送测试消息:“How do I reset my password?”。
观察机器人是否在3秒内返回结构化回答,内容应来自Dify知识库中《密码重置指南》文档的检索结果,且消息末尾附带emoji图标和分步编号。


















