내부 데이터 분석 에이전트를 구축한 방법 (새 탭에서 열림)
GitHub는 사내 데이터 웨어하우스에 자연어로 질문하면 SQL을 작성하고 결과를 해석해 주는 GitHub Copilot 기반 분석 에이전트 ‘Qubot’을 구축했다. Qubot은 대시보드나 정기 리포트의 대체재가 아니라, 데이터 모델·필터·쿼리 작성법을 몰라도 탐색적 분석을 수행하도록 돕는 도구다. 핵심 성공 요인은 데이터에 대한 구조화된 컨텍스트와 자동화된 평가 체계이며, 이를 통해 분석 정확도뿐 아니라 응답 속도도 크게 향상됐다.
Qubot의 목적과 활용 범위
- GitHub의 여러 제품·엔지니어링 팀이 데이터 분석가의 도움 없이 제품 텔레메트리를 활용하도록 지원한다.
- 사용자는 다음과 같은 탐색적 질문을 자연어로 입력할 수 있다.
- 특정 기능의 유지율이 가장 높은 사용자 코호트는 무엇인가?
- 지난주 특정 지표의 변화에 가장 큰 영향을 준 제품은 무엇인가?
- 정기 보고서나 대시보드를 대체하지 않고, 데이터셋을 빠르게 이해하고 가설을 검증하는 데 초점을 둔다.
- 데이터 분석 지원 요청을 줄이고, 데이터 웨어하우스를 사용해 본 적이 적은 직원도 의사결정에 필요한 데이터를 직접 탐색할 수 있게 한다.
세 가지 핵심 구성 요소
Qubot은 사용자 인터페이스, 컨텍스트 계층, 쿼리 엔진으로 구성된다.
사용자 인터페이스
- Slack, VS Code, Copilot CLI에서 사용할 수 있다.
- Slack에서는 채널에 질문을 올리면 GitHub.com에서 Copilot Cloud Agent가 실행된다.
- 답변은 Slack에 바로 게시되며, 스레드에서 질문을 추가로 구체화할 수 있다.
- 분석 결과는 Markdown 보고서로 작성되어 Pull Request에 저장된다.
- VS Code와 Copilot CLI에서는 플러그인 설치 후 다른 에이전트·스킬·도구와 함께 사용할 수 있다.
컨텍스트 계층
- 데이터의 관리 수준에 따라 서로 다른 정보를 제공한다.
- Bronze 데이터에는 제품 팀이 제공한 이벤트 스키마와 메타데이터가 포함된다.
- Silver 데이터에는 예시 쿼리, 사용 지침, 필수 필터 등이 포함된다.
- Gold 데이터에는 해당 데이터셋을 소유한 팀이 정의한 비즈니스 규칙과 지표 정의가 포함된다.
- ETL 파이프라인이 추가 신호와 파생 메타데이터를 자동으로 보강한다.
- 에이전트는 실행 시점에 GitHub MCP Server를 통해 필요한 컨텍스트를 가져온다.
쿼리 엔진
- GitHub의 주요 분석 엔진인 Kusto와 Trino를 MCP 서버로 연결한다.
- Kusto는 최근 이벤트 데이터를 빠르게 탐색하는 데 적합하다.
- Trino는 복잡한 조인과 장기간의 이력 분석에 적합하다.
- 사용자가 엔진을 직접 선택하지 않아도 Qubot이 기본적으로 Kusto를 사용하고, 복잡한 질문에는 Trino로 자동 전환한다.
컨텍스트 에이전트와 지식 관리
- 컨텍스트 정보는 여러 저장소에 Markdown 형태로 관리된다.
- 팀은 표준 템플릿을 사용하거나 관련 컨텍스트가 있는 저장소를 참조해 지식을 기여할 수 있다.
- 컨텍스트 에이전트가 정보를 수집한 뒤 정리·정규화해 Qubot이 활용하기 쉬운 구조로 변환한다.
- 데이터 모델 자체보다 데이터의 의미, 올바른 필터, 지표 정의, 사용 사례를 함께 제공하는 것이 에이전트의 분석 품질을 높이는 핵심이다.
자동화된 평가 프레임워크
- 컨텍스트나 에이전트 설정이 변경될 때마다 배포 전에 오프라인 평가를 수행한다.
- 평가 대상은 정확도뿐 아니라 적절한 답을 찾는 데 걸리는 시간과 기존 기능의 회귀 여부다.
- 평가 프레임워크는 다음 세 부분으로 구성된다.
- 테스트 케이스: 정답, 기준 SQL, 도메인, 난이도를 포함한 표준 질문 집합
- 실행 오케스트레이션: GitHub CLI의
gh agent-task create를 이용해 테스트를 병렬 실행하고 JSON 결과를 저장 - 통계 집계: 테스트별 완료율, 정확도, 평균·최소·최대 소요 시간을 계산
- 전체 과정은 테스트 정의 → 여러 차례 실행 → 결과 수집 → 통계 집계 → 설정 비교 순서로 진행된다.
- 이를 통해 컨텍스트 추가나 에이전트 변경이 실제 품질 향상으로 이어지는지 검증할 수 있다.
도입 효과와 핵심 교훈
- Qubot은 수백 명의 사용자가 수천 건의 쿼리를 실행할 정도로 확산됐다.
- 데이터·분석 Slack 채널에 반복적으로 들어오던 질문이 크게 줄었다.
- 사용자는 간단한 질문을 직접 해결하고, 분석 전문가는 더 복잡한 문제에 집중할 수 있게 됐다.
- Slack, VS Code, Copilot CLI를 함께 제공해 기술 수준과 업무 방식에 따른 진입 장벽을 낮췄다.
- 실험 결과, 잘 구조화되고 큐레이션된 컨텍스트는 Qubot의 정확도를 높였을 뿐 아니라 올바른 답을 반환하는 속도도 약 3배 향상시켰다.
- 따라서 데이터 문서, 지표 정의, 사용 규칙 같은 컨텍스트 자산을 단순한 문서가 아니라 분석 시스템의 핵심 구성 요소로 관리해야 한다.
실무적으로는 처음부터 모든 데이터를 자동 분석하려 하기보다, 자주 묻는 도메인부터 표준화된 컨텍스트와 기준 테스트를 구축하는 접근이 적합하다. 또한 여러 쿼리 엔진을 사용한다면 사용자가 엔진을 선택하지 않아도 되도록 에이전트가 질문 특성에 따라 자동 라우팅하도록 설계하는 것이 좋다.