Discord
通过 Discord 机器人运行你的 CLI-JAW 代理。在 Discord 服务器中发送提示词、使用斜杠命令、接收转发结果并处理文件附件。
设置
1. 创建 Discord 机器人
- 前往 Discord Developer Portal
- 创建一个新应用程序并添加机器人
- 在 Privileged Gateway Intents 下启用 MESSAGE_CONTENT 意图
- 复制机器人令牌
- 使用适当的权限将机器人邀请到你的服务器
2. 配置 settings.json
{
"discord": {
"token": "YOUR_DISCORD_BOT_TOKEN",
"guildId": "YOUR_GUILD_ID",
"channelIds": ["CHANNEL_ID_1", "CHANNEL_ID_2"],
"forwardAll": true
}
}
需要启用 MESSAGE_CONTENT 特权意图。如果未启用,机器人将无法读取公会频道中的消息内容。
3. 替代方式:使用 jaw init
jaw init --channel discord \
--discord-token "YOUR_TOKEN" \
--discord-guild-id "GUILD_ID" \
--discord-channel-ids "CHANNEL_ID_1,CHANNEL_ID_2"
斜杠命令
Discord 斜杠命令注册为公会范围的命令。全部 27 个可见命令均可通过 Discord 原生的 /command 界面使用。命令执行使用 getVisibleCommands('discord') 和 makeCommandCtx('discord', ...)。
斜杠命令的回复采用延迟处理,以避免 Discord 对交互响应的 3 秒超时限制。
消息处理
- 文本消息 -- 允许频道中的消息将发送给代理
- 附件 -- 文件将被下载并处理
- 私信 -- 支持向机器人发送私信
- AllowedMentions -- 默认的 AllowedMentions 设置可防止机器人 @everyone
转发
当 forwardAll 设置为 true 时,代理结果将以分块消息的形式转发到活跃的 Discord 频道。
/forward on # Enable forwarding
/forward off # Disable forwarding
频道白名单
channelIds 数组限制机器人监听的频道。线程的父频道会与此列表进行比对,因此允许频道内的线程也可以正常使用。
环境变量
DISCORD_TOKEN=your_token_here
DISCORD_GUILD_ID=123456789
DISCORD_CHANNEL_IDS=111222333,444555666
发送 API
POST /api/discord/send # Direct Discord send
POST /api/channel/send # Unified channel send (preferred)