9.4. 멀티 채널 메시징¶
멀티 채널 메시징을 사용하면 에이전트가 외부 채팅 플랫폼(Telegram, Slack, Discord, WhatsApp)에서 오는 메시지에 응답할 수 있습니다. 설정이 완료되면 봇에 보낸 메시지가 처리를 위해 적절한 Squad 그룹으로 라우팅되고, 에이전트의 응답이 동일한 채널을 통해 전송됩니다.
아키텍처¶
flowchart LR
subgraph Channels["채널"]
TG[Telegram]
SL[Slack]
DC[Discord]
WA[WhatsApp]
end
subgraph Core["Backend.AI GO"]
CR[채널 레지스트리]
AL[발신자 허용 목록]
MR[메시지 라우터]
SQ[Squad 그룹]
end
TG & SL & DC & WA --> CR
CR --> AL
AL -- 허용 --> MR
AL -- 차단 --> X[거부됨]
MR --> SQ
SQ --> MR
MR --> TG & SL & DC & WA Telegram¶
Telegram 봇 생성¶
-
Telegram을 열고 @BotFather와 채팅을 시작합니다.
-
/newbot을 전송하고 안내를 따릅니다:- 표시 이름을 선택합니다 (예: "내 AI 어시스턴트")
bot으로 끝나는 사용자명을 선택합니다 (예:myai_assistant_bot)
-
BotFather가 봇 토큰을 답장합니다 (형식:
1234567890:ABCdef...). 복사합니다.
Backend.AI GO에서 Telegram 연결¶
-
설정 > 채널 > Telegram으로 이동합니다.
-
토큰 필드에 봇 토큰을 붙여넣습니다.
-
토큰 검증을 클릭합니다.
-
연결을 클릭합니다.
JID 형식¶
Telegram 채팅 식별자는 tg:{chat_id} 형식을 사용합니다 (예: tg:123456789).
Slack¶
Slack 앱 생성¶
-
api.slack.com/apps에서 새 앱 만들기를 클릭합니다.
-
처음부터를 선택하고, 앱 이름을 입력하고, 워크스페이스를 선택합니다.
-
왼쪽 사이드바에서 OAuth 및 권한을 클릭합니다.
-
봇 토큰 범위 아래에 다음 범위를 추가합니다:
app_mentions:read,channels:history,chat:writegroups:history,im:history,im:read,im:write
-
워크스페이스에 설치를 클릭하고 권한을 부여합니다. 봇 사용자 OAuth 토큰 (
xoxb-...)을 복사합니다. -
왼쪽 사이드바에서 소켓 모드를 클릭하고 활성화합니다.
connections:write범위로 앱 수준 토큰을 생성합니다. 앱 토큰 (xapp-...)을 복사합니다.
Backend.AI GO에서 Slack 연결¶
-
설정 > 채널 > Slack으로 이동합니다.
-
봇 토큰 (
xoxb-...)과 앱 토큰 (xapp-...)을 붙여넣습니다. -
토큰 검증을 클릭합니다.
-
연결을 클릭합니다.
JID 형식¶
Slack 채팅 식별자는 slack:{channel_id} 형식을 사용합니다 (예: slack:C01234567).
Discord¶
Discord 봇 생성¶
-
Discord 개발자 포털에서 새 애플리케이션을 클릭합니다.
-
이름을 지정하고 생성을 클릭합니다.
-
왼쪽 사이드바에서 봇을 클릭합니다.
-
봇 추가를 클릭하고 확인합니다.
-
토큰 아래에서 토큰 재설정을 클릭하고 복사합니다.
-
특권 게이트웨이 인텐트 아래에서 메시지 내용 인텐트를 활성화합니다.
-
OAuth2 > URL 생성기에서 범위로
bot을 선택하고, 봇 권한으로 다음을 선택합니다:메시지/채널 보기,메시지 보내기,메시지 기록 읽기
-
생성된 OAuth2 URL을 브라우저에서 열어 봇을 서버에 초대합니다.
Backend.AI GO에서 Discord 연결¶
-
설정 > 채널 > Discord로 이동합니다.
-
봇 토큰을 붙여넣습니다.
-
토큰 검증을 클릭합니다.
-
연결을 클릭합니다.
JID 형식¶
Discord 채팅 식별자는 discord:{channel_id} 형식을 사용합니다 (예: discord:123456789012345678).
WhatsApp Business¶
WhatsApp은 WhatsApp Business Cloud API를 사용하며 인증된 Meta 비즈니스 계정이 필요합니다.
사전 요구 사항¶
- Meta 개발자 계정
- WhatsApp Business 계정
- WhatsApp Business API 전용 전화번호
Backend.AI GO에서 WhatsApp 연결¶
-
설정 > 채널 > WhatsApp으로 이동합니다.
-
다음을 입력합니다:
- 전화번호 ID: WhatsApp 전화번호 ID
- 액세스 토큰: 영구 액세스 토큰
- 웹훅 검증 토큰: Meta 개발자 포털에 설정한 검증 토큰
-
설정 검증을 클릭합니다.
-
연결을 클릭합니다.
공개 웹훅 필요
WhatsApp은 공개적으로 접근 가능한 HTTPS 웹훅 URL이 필요합니다. 역방향 프록시(nginx, Caddy) 또는 터널링 서비스(ngrok, Cloudflare Tunnel)를 사용하여 Backend.AI GO의 Management API를 노출하세요.
JID 형식¶
WhatsApp 채팅 식별자는 wa:{phone_number} 형식을 사용합니다 (예: wa:15551234567).
발신자 허용 목록¶
발신자 허용 목록은 에이전트와 상호작용할 수 있는 외부 사용자를 제한합니다. 설정되면 목록에 없는 발신자의 메시지는 자동으로 삭제됩니다.
Management API를 통한 설정¶
curl -X PUT http://localhost:55765/api/v1/channels/sender-allowlist \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"entries": [
{"chatJid": "tg:123456789", "label": "Alice"},
{"chatJid": "slack:U01ABCDEF", "label": "Bob"}
]
}'
다음 단계¶
- 채널-Squad 매핑 — 메시지를 특정 Squad 그룹으로 라우팅
- 보안 모델 — 보안 레이어 이해