Skip to main content
QUICK REVIEW

[논문 리뷰] MarsCode Agent: AI-native Automated Bug Fixing

Yizhou Liu, Pengfei Gao|arXiv (Cornell University)|2024. 09. 02.
Scientific Computing and Data ManagementDecision Sciences인용 수 3
한 줄 요약

MarsCode Agent는 다중 에이전트 계획, 코드 지식 그래프, 언어 서버 프로토콜, 컨테이너 기반 디버깅을 결합하여 결함을 국소화하고 검증된 패치를 생성하는 LLM 기반의 프레임워크로, 종단 간 자동 소프트웨어 버그 수정을 구현한다. 이 프레임워크는 SWE-bench Lite 벤치마크에서 34%의 해결률을 기록하며, 파일 및 코드 스니펫 국소화 정확도에서 기존 도구를 능가했다.

ABSTRACT

Recent advances in large language models (LLMs) have shown significant potential to automate various software development tasks, including code completion, test generation, and bug fixing. However, the application of LLMs for automated bug fixing remains challenging due to the complexity and diversity of real-world software systems. In this paper, we introduce MarsCode Agent, a novel framework that leverages LLMs to automatically identify and repair bugs in software code. MarsCode Agent combines the power of LLMs with advanced code analysis techniques to accurately localize faults and generate patches. Our approach follows a systematic process of planning, bug reproduction, fault localization, candidate patch generation, and validation to ensure high-quality bug fixes. We evaluated MarsCode Agent on SWE-bench, a comprehensive benchmark of real-world software projects, and our results show that MarsCode Agent achieves a high success rate in bug fixing compared to most of the existing automated approaches.

연구 동기 및 목표

  • LLM을 활용하여 복잡하고 대규모 코드베이스에서 실제 소프트웨어 버그 수정을 자동화하는 데 도전한다.
  • 히우리스틱 기반 또는 규칙 기반 접근 방식에 대한 의존도를 줄이기 위해 자율적이고 맥락 인식 가능한 결함 국소화 및 패치 생성을 가능하게 한다.
  • 정적 및 동적 분석 워크플로우의 통합을 통해 자동 프로그램 복구의 신뢰성과 확장성을 향상시킨다.
  • 코드 지식 그래프와 언어 서버 프로토콜 통합을 통해 코드 이해도 및 수정 정확도를 향상시킨다.
  • 패치 검증을 포함한 격리된 환경에서의 실행을 포함하여 종단 간 인간 개입 없이 소프트웨어 복구 파이프라인을 완전히 자동화한다.

제안 방법

  • MarsCode Agent는 문제 특성에 따라 정적 또는 동적 복구 워크플로우를 동적으로 할당하는 다중 에이전트 협업 프레임워크를 사용한다.
  • 코드 지식 그래프와 언어 서버 프로토콜(LSP) 통합을 활용하여 정확한 코드 엔티티 검색, 정의/참조 이동, 맥락 기반 코드 이해를 가능하게 한다.
  • 충돌 기반 코드 편집 기술과 정적 구문 검사를 사용하여 잘 구성되고 문법적으로 올바른 코드 패치를 생성한다.
  • 동적 디버깅을 위해 도커 기반 사전 환경을 활용하여 결함을 재현하고, 로그를 삽입하며 테스트 프레임워크를 실행한다—실제 개발자의 디버깅 워크플로우를 모방한다.
  • 에이전트 파이프라인은 계획, 결함 재현, 장애 국소화, 후보 패치 생성, 검증 단계를 포함하며, 정확성과 버그 재발 방지를 최소화한다.
  • LLM 추론과 구조화된 도구 사용을 결합하여 코드베이스와 복구 전략에 대한 체계적 탐색을 이끈다.

실험 결과

연구 질문

  • RQ1LLM 기반 에이전트는 실제 소프트웨어 프로젝트에서 고정밀도 종단 간 자동 버그 수정을 달성할 수 있는가?
  • RQ2다중 에이전트 프레임워크는 다양한 버그 유형에 대해 정적 및 동적 복구 전략 간에 동적으로 전환하는 데 얼마나 효과적인가?
  • RQ3코드 지식 그래프와 LSP 통합은 복잡한 코드베이스에서 장애 국소화 정밀도를 얼마나 향상시킬 수 있는가?
  • RQ4순수 정적 복구에 비해 사전 환경에서의 동적 디버깅은 패치 성공률에 어떤 영향을 미치는가?
  • RQ5실제 벤치마크에서 MarsCode Agent는 기존 에이전트 대비 파일 및 코드 스니펫 국소화 정확도에서 어떤 수준의 성능을 보이는가?

주요 결과

  • MarsCode Agent는 SWE-bench Lite 벤치마크에서 34%의 해결률을 기록하여 300개의 실제 소프트웨어 엔지니어링 작업 중 102개를 성공적으로 해결했다.
  • 파일 국소화 정밀도가 88.3%로, 300개의 인스턴스 중 265개에서 대상 파일을 정확히 식별하여 이전 최고 성능 도구를 능가했다.
  • 코드 스니펫 국소화 정밀도는 68.7%로, 206개의 인스턴스에서 수정 대상이 정확히 식별되었다.
  • 300개의 인스턴스 중 28%가 동적 디버깅으로 라우팅되었으며, 이 중 38.1%인 32/84개가 성공적으로 해결되어 정적 복구보다 높은 성공률을 보였다.
  • 정적 복구는 216개의 케이스 중 70개에서 성공(32.4% 성공률)하여, 복잡하거나 맥락에 민감한 버그에 대해 동적 디버깅이 더 효과적임을 시사했다.
  • 비교 평가를 통해 MarsCode Agent의 코드 검색 및 국소화 능력은 CodeR, Moatless, Agentless와 같은 기존 추적 가능한 솔루션보다 뛰어났다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.