用途:为 BastionClaw 接入 Discord 作为消息渠道,可替换 WhatsApp(设置 DISCORD_ONLY=true)或与其他渠道并存。基于 discord.js 实现。
主要能力:支持文本消息与 @提及触发翻译、附件描述(图片、视频、音频、文件占位)、回复上下文(含原作者)、按 Discord 2000 字符上限拆分消息、输入指示器、服务器与私信频道,以及基于 Webhook 的智能体身份(用于 Agent Teams/Swarm)。
必要用法:
- 预检:确认 src/channels/discord.ts 存在、src/index.ts 引入了 DiscordChannel、src/config.ts 含 DISCORD_BOT_TOKEN;失败则运行 /update。
- 在 Discord 创建私有服务器与私有 bot 频道。
- 在开发者门户创建应用,先在 Installation 标签把 Default Install Link 设为 None 并保存,再配置 Bot:关闭 Public Bot,启用 Message Content Intent(必需)与 Server Members Intent(可选)。
- 用 OAuth2 URL 生成器(scope 选 bot,权限选 View Channels、Send Messages、Send Messages in Threads、Create Public Threads、Read Message History)邀请机器人入服。
- 最后在 Bot 标签重置并复制 token,写入 .env:DISCORD_BOT_TOKEN=your_token_here;若替换 WhatsApp 则加 DISCORD_ONLY=true。
- 注册频道:JID 格式为 dc:<channelId>,通过 sqlite3 写入 registered_groups 表并创建 groups/FOLDER_NAME/logs 目录。
- 运行 ./scripts/restart.sh --build 重启,检查日志 tail -20 logs/bastionclaw.log | grep -i discord,并在频道 @机器人 测试。
适用场景:需要以 Discord 作为 BastionClaw 交互渠道,或希望让特定群组在独立频道中使用机器人。
限制与安全:任何能在机器人监控频道发言的人都能命令机器人,因其运行在用户 Claude API 凭证下并可访问智能体工具、记忆与定时任务。建议保持 bot 频道私有、@everyone 的 View Channel 设为拒绝、不要授予他人 Administrator 权限;若需共享访问,可建独立非主频道并以 requires_trigger: 1 注册,但无管理员权限。
其他说明:原文未提供收费、价格与平台支持范围等信息。