Discord

通过 Discord 机器人运行你的 CLI-JAW 代理。在 Discord 服务器中发送提示词、使用斜杠命令、接收转发结果并处理文件附件。

设置

1. 创建 Discord 机器人

  1. 前往 Discord Developer Portal
  2. 创建一个新应用程序并添加机器人
  3. 在 Privileged Gateway Intents 下启用 MESSAGE_CONTENT 意图
  4. 复制机器人令牌
  5. 使用适当的权限将机器人邀请到你的服务器

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 秒超时限制。

消息处理

转发

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)