Skip to content

Discord

GolemBot 通过 Gateway WebSocket 连接 Discord——无需公网 IP。Bot 可以响应私信(DM)和服务器频道中的消息。

前置条件

  • Discord 账号
  • Node.js ≥ 18
  • 一个带 Bot 用户的 Discord 应用

安装 SDK

bash
npm install discord.js

创建 Bot

  1. 打开 Discord Developer Portal,点击 New Application
  2. Bot 选项卡下,点击 Add Bot。复制 Bot Token,后面配置时会用到。
  3. Privileged Gateway Intents 下,启用 Message Content Intent(Bot 读取消息文本必须开启)。
  4. OAuth2 → URL Generator 下,选择 bot scope 和以下权限:
    • Read Messages/View Channels
    • Send Messages
    • Read Message History
  5. 复制生成的 URL,在浏览器中打开,将 Bot 邀请进你的服务器。

配置 golem.yaml

yaml
name: my-assistant
engine: claude-code

channels:
  discord:
    botToken: ${DISCORD_BOT_TOKEN}
    botName: my-assistant  # 可选,详见下文

运行前设置环境变量:

bash
export DISCORD_BOT_TOKEN=your-token-here
golembot gateway

botName 字段

botName可选的。Discord 消息内容中使用内部用户 ID(<@12345678>)而非名字来标记 @mention,适配器通过原生 token 检测 mention——即使不设置 botName,mention 检测也能正常工作

设置 botName 后,适配器会额外将 <@userId> token 替换为 @botName,让引擎看到可读的 mention 名称。建议与 golem.yaml 中的 name 字段保持一致。

工作方式

聊天类型行为
私信(DM)始终响应
服务器频道 @mention(@YourBot 消息检测到 mention,正常回复
服务器频道普通消息(未 @mention)取决于 groupPolicy(默认:忽略)

每个私信会话和每个服务器频道分别维护独立的会话上下文。

消息格式

Discord 原生支持 Markdown,无需格式转换。GolemBot 直接发送 AI 回复原文,Discord 自动渲染加粗、斜体、代码块、链接等 Markdown 格式。

消息限制

Discord 单条消息上限为 2,000 字符。超出时 GolemBot 自动拆分为多条发送。

群聊行为

Discord 服务器频道被视为群聊。通过 golem.yaml 中的 groupChat 字段配置响应策略:

yaml
groupChat:
  groupPolicy: mention-only  # mention-only(默认)| smart | always
  historyLimit: 20
  maxTurns: 10

详见通道概览

基于 MIT 协议 发布。