使用 Minara客户端与界面消息平台
Discord
单频道 Bot Token 配置,支持流式传输的网关,2000 字符限制,适合社区服务器。
🟢 运行时就绪:网关通过消息编辑接口支持流式传输编辑(暂无生产端调用,详见下文)。仅支持 Bot 模式;Discord Webhook 不提供流式传输所需的编辑 API。
功能概览
- 流式传输编辑:通过
PATCH /channels/{channel}/messages/{id}实现(限速 1 秒,以保持在每频道 5 次 / 5 秒的速率限制内)。由createStreamSink驱动;send_message本身为单次发送。 - 附件支持:通过单个 multipart
POST /channels/{cid}/messages接口发送图片、文件和音频,使用payload_json+files[n]格式。语音附件显示为带播放器的音频文件(原生语音消息波形 UI 为后续功能)。 - 2000 字符限制:
send_message在工具边界处拒绝超长文本;流式传输截断时附加… (truncated)标记。 - 每网关单频道:如需在多个频道发送,在
send_message中使用channel参数覆盖目标频道。
配置步骤
1. 创建 Bot 应用
- 打开 Discord Developer Portal,点击 New Application
- 进入 Bot → Reset Token,复制 token(仅显示一次)
- 在 Privileged Gateway Intents 下,将 Message Content 保持关闭。Minara 只发送消息,不读取消息
- 从 OAuth2 → URL Generator 复制 Bot 的安装链接:在 Scopes 中勾选
bot,在 Bot Permissions 中勾选Send Messages,将链接粘贴到浏览器中,把 Bot 添加到服务器
2. 获取目标频道 ID
在 Discord 客户端中:用户设置 → 高级 → 开发者模式 = 开启,然后右键点击频道 → 复制频道 ID。格式为纯数字雪花 ID,例如 1234567890123456789。
3. 配置 Minara
快捷方式:
"set up Discord notifications in channel 1234567890"
手动方式:
minara auth messaging add discord或直接编辑项目根目录的 .env 文件:
DISCORD_BOT_TOKEN=<bot token>
DISCORD_CHANNEL_ID=12345678901234567894. 测试
minara auth messaging test discord流式传输行为
Discord 的消息编辑接口每频道限速 5 次编辑 / 5 秒。DiscordGateway 将 streamDefaultIntervalMs 声明为 1000,因此 createStreamSink 在前五秒内最多触发约 5 次编辑,之后以 1 Hz 频率继续。调用方可通过 createStreamSink(gw, msg, { intervalMs: 1500 }) 放宽限速。这是调用方侧选项,不是 send_message 工具参数。流式传输本身已具备接入条件,尚未被任何生产代码路径调用。
超过 2000 字符的响应会直接截断,而非分段发送。Discord 将每个 chat.postMessage 视为原子操作,流式编辑链的分段拼接会导致阅读混乱。
覆盖目标频道
send_message({
provider: "discord",
channel: "9876543210987654321",
text: "Critical: position liquidation imminent",
})常见问题
"Missing Access (50001)"
- Bot 不在服务器中,或无权查看该频道。请重新检查 OAuth 安装链接及频道角色权限
"Missing Permissions (50013)"
- Bot 已在服务器中,但无法在该频道执行
Send Messages或Embed Links。请编辑频道权限,为 Bot 角色授予Send Messages
"Cannot send empty message (50006)"
- 消息内容在内容审核阶段被清空。Discord 会屏蔽部分看起来像标记语言的纯文本格式;可尝试稍微修改标点后重新发送
"Stream feels choppy"
- 默认限速为 1000 毫秒。Discord 的 5/5 速率限制是上限,超出此限速会触发临时 429 错误。接受当前节奏,或改用 Telegram 进行实时流式传输