핵심 요약
Slack AI Assistants API로 흩어진 4개 봇 통합. 단일 어시스턴트가 컨텍스트·권한·라우팅 처리. 사용자 만족도 평균 6.2/10 → 8.5/10, 운영 비용 -38%. 권한 모델이 결정적.
1. Before — 봇 4개 흩어짐
- @hr-bot, @ops-bot, @sales-bot, @eng-bot
- 사용자가 어디서 무엇 묻는지 헤맴
- 봇별 메모리 분리, 같은 질문 반복
2. After — 단일 Assistant
Slack Assistants API의 routing tool — Assistant가 사용자 메시지를 4개 백엔드 중 하나로 위임. 결과는 thread에 통합. 컨텍스트는 user_id 기준으로 영속.
// app.ts
app.assistant.threadStarted(async ({ say }) => {
await say('무엇을 도와드릴까요? (HR/DevOps/Sales/Eng)')
})
app.assistant.userMessage(async ({ message, threadId }) => {
const route = await classifyIntent(message.text)
const result = await dispatch(route, message)
return result
})
3. 권한 모델
사용자 user_id로 봇이 백엔드 인증. HR 봇은 인사팀만, Sales 봇은 영업팀만. RBAC 매핑 테이블 별도.
4. 데이터
| 지표 | Before | After |
|---|---|---|
| 사용자 만족도 | 6.2 | 8.5 |
| 월 호출수 | 12K | 38K |
| 운영 비용 | $1,420 | $880 |
5. 함정
- intent 분류 오류 — HR 질문이 Eng로. 분류 confidence 임계값 + fallback 라우팅
- thread 컨텍스트 누수 — 다른 사람이 같은 thread 진입 시 PII 노출 가능, user_id 검증
- 3rd-party app 충돌 — 기존 @hr-bot 잔존 시 사용자 혼란, 단계적 제거
- rate limit — Assistants API 사용자별 분당 60, 대화 빠른 팀에서 도달

댓글 0