프로젝트 문의 ↗
← 모든 프로젝트
업무 자동화 · LLM / 2026 / 기획 · 설계 · 개발 · 운영

슬랙 대화를 업무 티켓으로 바꾸는 LLM 자동화

초안은 LLM이 쓰고, 확인은 사람이 합니다. 2인 팀이 매일 쓰는 사내 봇입니다.

슬랙 스레드에서 생성된 업무 티켓 초안 검토 화면
01OVERVIEW

프로젝트 개요

슬랙에서 결정된 내용을 업무 티켓으로 옮겨 주는 사내 봇입니다. 저희가 직접 만들어 매일 쓰고 있고, LLM은 초안 작성에만 쓰고 등록 여부는 사람이 정합니다.

02PROBLEM

풀어야 했던 문제

  • 슬랙에서 정해진 내용이 티켓으로 옮겨지지 않아 기록이 남지 않음
  • 티켓을 쓰려면 스레드 맥락을 사람이 다시 정리해야 해서 미뤄짐
  • LLM 초안을 그대로 등록하면 틀린 내용이 검토 없이 쌓임
  • 외부 API에 의존하는 구조라 호출이 실패하면 기능 전체가 멈춤
03SOLUTION

해결한 방식

  • 이모지 리액션을 트리거로 둬, 사람이 고른 스레드만 LLM에 보냄
  • 응답을 JSON 스키마로 강제해 받은 값을 바로 티켓 필드에 매핑
  • 생성 결과를 검토 모달로 띄워 수정한 뒤 제출하는 순서로 고정
  • 호출이 실패하면 규칙 기반 초안으로 자동 전환
04BUILD

주요 구현

  • 스레드 전문을 넘겨 유형(아이디어·작업·버그), 제목, 배경·요구사항·제약 3단 본문, 검증 항목 3~5개를 한 번에 생성
  • 제목은 60자 이내 명사형으로 고정해 목록에서 읽히도록 제한
  • 생성 호출과 상위 과제 목록 조회를 병렬로 돌려 모달 대기 시간을 줄임
  • 뉴스·논문·지원사업 후보를 한 번에 넣어 관련도 0~100점, 카테고리, 한국어 요약을 받고 50점 미만은 탈락시키는 배치 큐레이션
  • 용도별로 모델을 나눠 운영. 티켓 생성과 큐레이션이 서로 다른 모델을 쓰고 환경변수로 교체
  • 기능 단위 라우터 구조라 기능을 추가해도 엔드포인트는 그대로
05OPERATION

운영하며 고친 것

모델이 바뀌면 호출이 조용히 실패합니다. 쓰던 모델이 서비스 종료되면서 한 번 겪었고, 지금은 모델명을 환경변수로 빼고 실패 시 규칙 기반 초안으로 떨어지도록 해 뒀습니다. 폴백이 돌면 로그에 사유가 남습니다.

생성 품질보다 사람이 고치는 비용을 기준으로 프롬프트를 조정했습니다. 본문을 자유 서술로 받으면 매번 손봐야 해서, 섹션을 고정하고 검증 항목 개수를 정해 두는 쪽이 수정이 적었습니다.

06NOTE

참고

사내 운영 도구라 공개 화면의 텍스트와 지표는 더미로 교체했습니다.

STACK
TypeScriptGemini APISlack BoltJira RESTVercel
YOUR NEXT VERSION

당신의 다음 버전,
함께 만들어볼까요?

프로젝트 이야기하기 ↗