Skip to main content
QUICK REVIEW

[논문 리뷰] AgentFL: Scaling LLM-based Fault Localization to Project-Level Context

Yihao Qin, Shangwen Wang|arXiv (Cornell University)|2024. 03. 25.
Software Engineering Research인용 수 4
한 줄 요약

AgentFL은 장애 탐지 과정을 세 단계로 분해함으로써 프로젝트 수준의 코드베이스로 장애 위치 특정을 확장하는 다중 에이전트 LLM 시스템입니다: 장애 이해, 코드베이스 탐색, 장애 확인. 테스트 동작 추적 및 문서 기반 검색과 같은 도구를 갖춘 전문화된 에이전트를 사용함으로써 최신 기술 수준의 성능을 달성하며, 395개의 버그 중 157개를 Top-1에서 저비용($평균 0.074 및 97초/버그)으로 특정합니다.

ABSTRACT

Fault Localization (FL) is an essential step during the debugging process. With the strong capabilities of code comprehension, the recent Large Language Models (LLMs) have demonstrated promising performance in diagnosing bugs in the code. Nevertheless, due to LLMs' limited performance in handling long contexts, existing LLM-based fault localization remains on localizing bugs within a small code scope (i.e., a method or a class), which struggles to diagnose bugs for a large code scope (i.e., an entire software system). To address the limitation, this paper presents AgentFL, a multi-agent system based on ChatGPT for automated fault localization. By simulating the behavior of a human developer, AgentFL models the FL task as a three-step process, which involves comprehension, navigation, and confirmation. Within each step, AgentFL hires agents with diversified expertise, each of which utilizes different tools to handle specific tasks. Particularly, we adopt a series of auxiliary strategies such as Test Behavior Tracking, Document-Guided Search, and Multi-Round Dialogue to overcome the challenges in each step. The evaluation on the widely used Defects4J-V1.2.0 benchmark shows that AgentFL can localize 157 out of 395 bugs within Top-1, which outperforms the other LLM-based approaches and exhibits complementarity to the state-of-the-art learning-based techniques. Additionally, we confirm the indispensability of the components in AgentFL with the ablation study and demonstrate the usability of AgentFL through a user study. Finally, the cost analysis shows that AgentFL spends an average of only 0.074 dollars and 97 seconds for a single bug.

연구 동기 및 목표

  • 기존의 LLM 기반 장애 위치 특정 방법은 컨텍스트 길이 제약으로 인해 작은 코드 범위(예: 단일 메서드)에 국한되어 있다는 한계를 해결하기 위해.
  • 개발자가 디버깅할 때 보이는 행동(장애 이해, 코드베이스 탐색, 버그 위치 확인)을 시뮬레이션함으로써 프로젝트 수준의 장애 위치 특정을 가능하게 하기 위해.
  • 장기 컨텍스트에서 LLM 성능 저하 문제를 해결하기 위해 작업을 제어 가능한 다단계 단계로 분해하고 전문화된 에이전트를 활용하기 위해.
  • 테스트 동작 추적 및 다중 라운드 대화와 같은 보조 전략을 통해 LLM 기반 장애 위치 특정의 정확도와 사용성을 향상시키기 위해.
  • 비용 분석과 사용자 연구를 통해 실용적 사용성과 비용 효율성을 입증하기 위해.

제안 방법

  • 장애 위치 특정을 세 단계로 분해: 장애 이해(실패 트레이스 분석), 코드베이스 탐색(관련 코드 경로 탐색), 장애 확인(의심되는 버그 위치 검증).
  • 각 단계에 맞는 전문화된 LLM 기반 에이전트를 도입하며, 각 에이전트는 테스트 실행, 코드 검색, 의미적 유사도 매칭 등 맞춤형 도구를 갖춤.
  • 실패하는 테스트의 실행 경로를 추적하고 에이전트의 탐색을 관련 코드로 이끌기 위해 테스트 동작 추적을 통합.
  • 임beddings와 RAG 유사 검색 기반의 방식을 활용해 프로젝트 내에서 의미적으로 관련성이 높은 코드 스니펫을 검색하기 위해 문서 기반 검색을 적용.
  • 반복적인 명확화와 검증을 통해 에이전트의 추론을 개선하고 예측 정확도를 높이기 위해 다중 라운드 대화를 활용.
  • 데이터 泄露를 방지하면서도 성능을 유지하기 위해 프ompt 엔지니어링과 입력 필터링을 적용한 GPT-3.5-turbo-16k-0613을 활용.

실험 결과

연구 질문

  • RQ1다중 에이전트 LLM 시스템은 메서드 수준에서 프로젝트 수준의 코드베이스로 장애 위치 특정을 효과적으로 확장할 수 있는가?
  • RQ2AgentFL의 세 단계 아키텍처(이해, 탐색, 확인)는 기존의 LLM 프롬프팅 대비 정확도 향상에 어떤 영향을 미치는가?
  • RQ3보조 전략(테스트 동작 추적, 문서 기반 검색, 다중 라운드 대화)이 장애 위치 특정 성능에 미치는 영향은 무엇인가?
  • RQ4실제로 AgentFL은 사용자에게 얼마나 유용한가? 그리고 개발자가 버그를 식별하는 데 도움이 되는 의미 있는 설명을 제공하는가?
  • RQ5스케일업 시 AgentFL의 계산 및 재정적 비용은 어떠한가?

주요 결과

  • AgentFL은 Defects4J-V1.2.0의 395개 버그 중 157개를 Top-1 예측으로 특정하며, 기존의 LLM 기반 접근법을 능가합니다.
  • 시스템은 최신 기술 수준의 학습 기반 기법과 상호 보완적임을 보이며, 하이브리드 장애 위치 특정 파이프라인의 잠재력을 시사합니다.
  • 사용자 연구에서 참가자들은 AgentFL의 설명이 유용하다고 평가했으며, 80% 이상의 실패 사례에서 정확한 예측 이전에 3개 이하의 잘못된 예측만을 경험했습니다.
  • AgentFL은 저비용 및 저소모를 달성하여, 평균 $0.074 및 97초/버그를 기록했으며, 95%의 경우 비용이 $0.20 이하, 시간이 200초 이내였습니다.
  • 제거 실험을 통해 테스트 동작 추적 및 다중 라운드 대화와 같은 핵심 구성 요소가 최적 성능 유지를 위해 필수적임을 확인했습니다.
  • 사례 연구에서 상위 예측이 잘못되었더라도 AgentFL은 종종 정확한 근본 원인을 식별하고 관련 메서드(예: 호출자)를 제안함으로써 개발자의 노력을 줄였습니다.

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

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

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

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