Envels 팀이 구축한 시스템은 두 가지 주요 에이전트로 구성된 ‘페어(pair)’ 형태의 멀티 에이전트 시스템입니다. 첫 번째는 ‘연구원 에이전트(Researcher Agent)’이고, 두 번째는 ‘작업 작성자 에이전트(Task Writer Agent)’입니다. 이 시스템은 Rails 애플리케이션 내에 Active Agent 젬을 활용하여 구축되었습니다. Active Agent 젬은 AI 에이전트를 Rails의 MVC(Model-View-Controller) 아키텍처에 매핑하여 에이전트 개발을 용이하게 합니다. rails generate active_agent install
명령어를 통해 설정 파일과 기본 클래스를 생성하고, 이를 상속받아 각 에이전트를 정의할 수 있습니다. 에이전트 디렉토리, 뷰 디렉토리, 설정 파일 등이 자동으로 생성되어 개발 구조를 제공합니다.
연구원 에이전트는 ‘웹 검색(Web Search)’ 도구를 사용합니다. 이 도구는 Tavi라는 AI 검색 제품의 API를 활용하여 웹에서 필요한 정보를 검색합니다. 에이전트는 주어진 쿼리를 기반으로 Tavi를 통해 검색을 수행하고, 관련 링크와 내용 요약을 반환합니다. 이 도구의 정의는 OpenAI의 JSON 형식에 맞춰 views
디렉토리 내의 G JSON ERB
템플릿에 정의됩니다. 연구원 에이전트는 ApplicationAgent
기본 클래스를 상속받아 OpenAI를 통해 생성되며, 시스템 프롬프트 역할을 하는 지침을 전달받아 웹 검색 메서드를 호출합니다.
작업 작성자 에이전트는 특정 JSON 형식의 출력을 보장하기 위한 유효성 검사 도구를 포함합니다. 이 도구는 생성된 응답이 사전에 정의된 JSON 구조에 부합하는지 확인하고, 필요 시 모델이 다시 시도하도록 지시합니다. 이 에이전트 또한 ApplicationAgent
를 상속받아 정의됩니다.
전체 시스템의 워크플로우는 다음과 같습니다. 먼저, 내부 지식 기반의 Rails 업그레이드 스토리(제목 및 설명)를 입력받아 ‘작업 프롬프트(Task Prompt)’를 생성합니다. 이 프롬프트는 시스템 전체를 구동시키는 역할을 합니다. 생성된 작업 프롬프트는 연구원 에이전트에게 전달되어 필요한 정보를 검색합니다. 연구원 에이전트가 반환한 연구 결과는 작업 작성자 에이전트에게 전달됩니다. 작업 작성자 에이전트는 이 정보를 바탕으로 Jira 티켓에 적합한 JSON 형식의 출력을 생성합니다. 이 JSON 출력은 Jira API를 통해 Jira ADF(Atlassian Document Format) 형식으로 변환되어 문제(Problem), 승인 기준(Acceptance Criteria), 리소스 목록(List of Resources)을 포함하는 완전한 Jira 티켓으로 생성됩니다. 이 자동화된 프로세스는 약 20초 만에 다수의 Jira 티켓을 생성할 수 있어, 수동 작성보다 훨씬 빠르고 효율적입니다.
결과적으로 이 시스템은 개발자들이 원치 않는 반복적이고 시간 소모적인 Jira 티켓 작성 업무를 자동화함으로써, 그들이 더 중요하고 가치 있는 개발 작업에 집중할 수 있도록 지원합니다. 이는 Rails 업그레이드 프로세스의 전반적인 생산성 향상에 기여합니다.