SSG.COM 내부 Agent 개발기
Confluence 문서를 자연어로 찾는 사내 Agent를 워크플로우와 CQL로 구현했다.
SSG.COM AI팀은 내부 위키인 Confluence를 더 쉽게 검색하기 위해, 문서 검색과 담당자·사내 규정 검색을 돕는 Agent를 직접 만들었다. 외부 AI 서비스는 보안상 쓸 수 없고, 기존 키워드 검색은 표현이 조금만 달라도 결과를 놓치기 쉬워서 자연어 기반 검색이 필요했다.
핵심 접근은 사용자의 질문을 대화형 검색 경험으로 바꾸는 것이었다. "로그인 관련 정책이 어떻게 되어 있지?", "우리 인프라에서 Kafka가 쓰이는 부분이 어디지?" 같은 질문을 입력하면, 문서에서 답을 찾고 필요하면 추가 질문으로 이어갈 수 있게 설계했다.
구현 전반은 workflow 기반으로 운영했다. 전체 흐름은 다음과 같다.
- 사용자 질문 입력
- CQL 검색 쿼리 생성
- Confluence REST API 호출
- 문서 내용 요약 및 적절성 평가
- 최종 응답 생성
문서 검색에서는 LLM이 CQL을 만들도록 하되, few-shot 예시로 문법을 유도하고 Evaluator-Optimizer 구조로 쿼리 유효성과 검색 결과를 반복 검증했다. CQL의 대소문자 비구분 검색과 text~ 기반 fuzzy 매칭을 활용해, "Kafka", "kafka", "KAFKA"처럼 다양한 표기를 포괄하도록 했다.
검색된 문서는 곧바로 쓰지 않고, 먼저 LLM으로 요약한 뒤 질문과의 관련성을 다시 평가했다. 질문과 맞는 문서만 메모리에 저장해 다음 대화의 context로 쓰면서, 토큰 효율성과 응답 품질을 함께 높였다.
실제 운영에서 가장 큰 난관은 문서 전처리였다. Confluence 문서는 단순 텍스트가 아니라 테이블, 매크로, 사용자 태그, Jira 연동이 섞여 있어 그대로는 LLM이 이해하기 어려웠다. 그래서 중첩 테이블은 마크다운으로 바꾸고, 해시값으로 표시된 태그와 담당자 정보는 사람이 읽을 수 있게 복원하고, 불필요한 태그는 제거했다.
성능 문제도 컸다. 응답 속도를 줄이기 위해 TTFT(Time To First Token), TPOT(Time Per Output Token), 총 응답 시간의 구조를 기준으로 출력 토큰 수를 줄이고, 간단한 질문은 빠른 모델, 복잡한 질문은 고성능 모델로 분기했다. 동시에 진행 단계 표시와 로딩 애니메이션을 넣어 체감 대기 시간을 낮췄다.
문서 검색 외에도 특화 에이전트를 만들었다. R&R(업무 분장) 에이전트는 OCR로 이미지 속 텍스트를 읽고, 하위 페이지를 재귀 탐색하며, 표와 자연어를 함께 분석해 프로젝트 담당자를 정리한다. 사내 규정 에이전트는 계층적 규정 문서와 PDF·이미지 첨부 파일을 처리하고, 자주 바뀌지 않는 context는 캐싱해 system prompt에 포함시켜 응답 속도를 높였다.
향후에는 Microsoft Teams 연동으로 사용자가 채팅창에서 바로 검색하게 만들고, 현재의 workflow 중심 구조를 더 유연한 agent-based 구조로 발전시킬 계획이다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.