Meet NanoCo, maintainers of NanoClaw: we raised $12M to give every member of your team a professional assistant →
技能
消息通讯 官方

Discord

将 Discord 添加为消息通道。支持文字频道的附件发送和回复上下文。

功能特性

  • 通过 Bot API 将 NanoClaw 连接到 Discord
  • 支持文字频道、附件和回复上下文
  • 可与其他通道并行使用,也可独立运行
  • Message Content Intent 实现完整的消息访问
  • OAuth2 机器人邀请流程

前置条件

  • 已安装并运行 NanoClaw
  • 一个 Discord 账号
  • Discord Developer Portal 访问权限
  • Bot token 已获取且 Message Content Intent 已启用

安装

/add-discord

工作原理

/add-discord 技能将 NanoClaw 设置为 Discord 机器人,能够在你的服务器中读取和回复消息。该技能会完成代码变更,引导你在 Discord Developer Portal 中创建机器人,并向你展示如何将频道接入到某个智能体组(agent group)。

技能首先检查你的 NanoClaw 安装,然后从 channels 分支拷入 Discord 适配器(src/channels/discord.ts),向 src/channels/index.ts 追加一条自注册导入语句,并安装固定版本的 @chat-adapter/discord 包。该适配器通过 Chat SDK 桥接自行注册,并集成到 NanoClaw 的消息处理管道中,与你已有的其他通道共同运行。

接下来你需要在 Discord Developer Portal 中创建一个机器人。技能会引导你完成每一步:创建新应用、从 General Information 中复制 Application ID 和 Public Key、生成 bot token、启用 Message Content Intent(读取消息文本所必需),以及构建具有正确权限的 OAuth2 邀请链接。你将邀请链接粘贴到浏览器中,选择服务器,机器人即加入。这三个凭据都要写入 .env——DISCORD_BOT_TOKENDISCORD_APPLICATION_IDDISCORD_PUBLIC_KEY 均为必填项,缺少它们适配器将无法启动。

机器人加入服务器后,你需要获取服务器(Guild)ID 以及你希望 NanoClaw 监听的文字频道的 Channel ID。在 Discord 的开发者模式下(在设置中启用),你可以右键点击服务器和频道来复制这两个 ID——注册时使用平台 ID 格式 discord:{guildId}:{channelId}

技能最后会验证构建并运行频道注册测试。随后你需要使用 /manage-channels 将该频道接入到某个智能体组(如果这是你的第一个智能体,则使用 /init-first-agent)。

功能特性

Discord 设置完成后,NanoClaw 支持以下平台特有的功能:

  • 附件 — 机器人可以接收和处理频道中发送的文件、图片及其他附件。
  • 回复上下文 — 当你回复某条消息时,机器人能看到原始消息作为上下文。
  • @提及转换 — Discord 的用户提及会被转换为可读的名称,便于智能体理解。
  • 消息拆分 — 较长的智能体回复会自动拆分,以符合 Discord 的字符限制。
  • 输入指示器 — 智能体处理消息时,机器人会显示”正在输入…”。

接入频道

与其他 NanoClaw 通道一样,Discord 频道通过 /manage-channels 接入到智能体组。每次接入都有一个会话模式——sharedagent-sharedper-thread——因此 Discord 频道既可以与你的其他通道共享同一段对话,也可以保留自己独立的线程。

你可以为个人服务器使用同一个智能体组,而为社区或信息边界不同的服务器使用单独的智能体组。

使用建议

  • Message Content Intent 是一项特权 Intent,必须在 Developer Portal 中明确启用。未启用时,机器人对非命令和非提及的消息只能收到空内容。
  • 机器人可在服务器频道和私信中工作。向机器人发送一次私信,也是第一个智能体流程(/init-first-agent)解析你私信平台 ID 的方式。
  • 如果机器人在服务器中显示为离线,请检查 token 是否正确以及机器人在该频道是否拥有所需权限。
  • Discord 对单服务器机器人的速率限制非常宽松,在正常的个人使用场景下基本不会触及。