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 슬래시 명령어는 길드 범위 명령어로 등록됩니다. Discord 기본 /command 인터페이스에서 37개 명령어가 표시됩니다(전체 51개 등록). 명령어 실행은 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)