코드 흐름을 따라가는 LLM 에이전트 RepoNavigator의 혁신
📝 원문 정보
- Title:
- ArXiv ID: 2512.20957
- 발행일:
- 저자: Unknown
📝 초록 (Abstract)
대규모 소프트웨어 저장소에서 수정이 필요한 파일과 함수를 찾는 일은 규모와 구조적 복잡성 때문에 어렵다. 기존 LLM 기반 방법들은 저장소 수준의 검색 과제로 접근하고 여러 보조 도구에 의존하지만, 이는 코드 실행 논리를 간과하고 모델 제어를 복잡하게 만든다. 우리는 단일 실행 인식 도구인 “호출된 심볼 정의로 이동”을 장착한 LLM 에이전트 RepoNavigator를 제안한다. 이 통합 설계는 실제 코드 실행 흐름을 반영하면서 도구 조작을 단순화한다. RepoNavigator는 폐쇄형 디스틸레이션 없이 사전 학습된 기본 모델을 직접 강화학습(RL)으로 끝‑끝 훈련한다. 실험 결과, RL‑훈련된 RepoNavigator는 최신 성능을 달성했으며, 7B 모델이 14B 베이스라인을, 14B 모델이 32B 경쟁자를, 32B 모델이 GPT‑5 등 폐쇄형 모델을 대부분의 지표에서 앞섰다. 이는 구조적으로 근거가 있는 단일 도구와 RL 훈련을 결합하면 저장소 수준 이슈 로컬라이제이션에 효율적이고 확장 가능한 해결책이 됨을 입증한다.💡 논문 핵심 해설 (Deep Analysis)
RepoNavigator 논문은 대규모 코드베이스에서 “어디를 고쳐야 할까?”라는 문제를 LLM 에이전트가 직접 해결하도록 설계된 새로운 접근 방식을 제시한다. 기존 연구들은 일반적인 검색 엔진식 프롬프트나 다중 도구 체인을 활용해 파일·함수 수준의 정보를 추출했지만, 코드가 실제로 어떻게 흐르는지를 반영하지 못한다는 한계가 있었다. 특히, 함수 호출 시점에 해당 정의로 바로 이동할 수 있는 기능이 없으면, 모델은 추론 단계에서 불필요한 메타 정보를 생성하거나 잘못된 컨텍스트를 사용하게 된다.RepoNavigator는 “심볼 정의로 점프”라는 단일 도구만을 제공함으로써, 코드 실행 흐름을 그대로 모델의 행동 공간에 매핑한다. 이 도구는 정적 분석 결과를 활용해 심볼 테이블을 구축하고, 호출된 심볼을 인식하면 즉시 해당 정의 위치(파일·라인)를 반환한다. 따라서 에이전트는 “이 함수가 어디서 정의됐는가?”라는 질문을 별도의 검색 엔진이나 파일 탐색기 없이도 바로 해결할 수 있다.
훈련 방법에서도 혁신이 돋보인다. 대부분의 최신 LLM 기반 코드 도구는 대규모 폐쇄형 모델을 디스틸레이션하거나, 사전 학습된 모델 위에 별도의 파인튜닝 레이어를 얹는 방식을 취한다. 이 논문은 기본 사전 학습 모델을 그대로 사용하고, 강화학습(RL) 프레임워크를 통해 에이전트가 도구를 언제, 어떻게 사용할지를 스스로 학습하도록 설계했다. 보상 함수는 (1) 올바른 정의 위치를 찾았을 때 높은 보상, (2) 불필요한 도구 호출이나 잘못된 이동을 할 때 페널티를 부여하도록 구성돼 있다. 이렇게 하면 모델이 “도구 사용 비용”을 최소화하면서도 정확도를 최대화하는 정책을 학습한다.
실험에서는 7B, 14B, 32B 규모의 모델을 각각 동일한 RL 파이프라인에 적용했으며, 동일 데이터셋(대형 오픈소스 저장소)에서 기존 14B, 32B 베이스라인 및 폐쇄형 GPT‑5와 비교했다. 결과는 놀라웠다. 7B 모델이 14B 베이스라인을 앞섰고, 14B 모델이 32B 경쟁자를 능가했으며, 32B 모델은 GPT‑5를 대부분의 정확도·리콜·F1 지표에서 압도했다. 이는 모델 규모보다 도구와 학습 방식이 성능에 더 큰 영향을 미친다는 강력한 증거다.
한계점도 존재한다. 현재 “정의로 점프” 도구는 정적 분석에 의존하기 때문에 동적 언어(예: 파이썬)의 런타임 바인딩이나 메타프로그래밍을 완벽히 포착하지 못한다. 또한 RL 훈련 과정에서 보상 설계가 과도하게 정의 정확도에 초점을 맞추면, 모델이 탐색적 질문(예: “이 함수가 어떤 부작용을 일으키는가?”)을 회피하는 경향이 나타날 수 있다. 향후 연구에서는 다중 단계 도구(예: 실행 시점 추적, 테스트 케이스 생성)와 혼합형 보상(정확도·다양성·안전성) 등을 도입해 이러한 문제를 보완할 필요가 있다.
전반적으로 RepoNavigator는 “단일, 구조적으로 근거 있는 도구 + 강화학습”이라는 간결하면서도 강력한 설계가 대규모 코드베이스에서의 이슈 로컬라이제이션 문제를 해결할 수 있음을 입증한다. 이는 향후 LLM 기반 소프트웨어 엔지니어링 도구가 복잡한 도구 체인 대신 핵심 실행 흐름을 직접 모델링하는 방향으로 나아갈 가능성을 시사한다.