SWE-Adept: An LLM-Based Agentic Framework for Deep Codebase Analysis and Structured Issue Resolution

이 논문은 LLM 기반의 두 에이전트 (위치 파악 및 해결) 프레임워크인 SWE-Adept 를 제안하여, 에이전트 주도 심도 우선 탐색과 적응적 계획 및 버전 관리 도구를 통해 대규모 코드베이스 분석 및 문제 해결 성능을 향상시켰음을 보여줍니다.

Kang He, Kaushik Roy

게시일 2026-03-03
📖 4 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

🤖 SWE-Adept: 코딩 실수 해결을 위한 '명탐정'과 '수리공'의 팀워크

이 논문은 인공지능 (LLM) 이 복잡한 소프트웨어 코드베이스에서 버그를 찾고 고치는 문제를 해결하기 위해 개발한 새로운 시스템, SWE-Adept에 대해 설명합니다.

기존의 AI 는 간단한 코딩 문제에는 강하지만, 수천 개의 파일이 얽혀 있는 거대한 프로젝트 (예: Django 같은 웹 프레임워크) 에서는 길을 잃거나 엉뚱한 곳을 고쳐서 문제를 더 악화시키는 경우가 많았습니다.

SWE-Adept 는 이 문제를 해결하기 위해 **두 명의 전문 에이전트 (AI 에이전트)**가 팀을 이루어 일하는 방식을 도입했습니다. 마치 범죄 수사에서 **범인 추적 (명탐정)**과 **범행 현장 복구 (수리공)**가 분리되어 각자의 임무를 수행하는 것과 같습니다.


🕵️‍♂️ 1. 문제의 핵심: 왜 기존 AI 는 실패했을까?

기존 AI 는 거대한 도서관 (코드베이스) 에서 책 한 권을 찾으려 할 때, 모든 책장을 다 뒤져서 내용을 다 읽으려다 지쳐버리거나 (컨텍스트 창 초과), 관련 없는 책까지 가져와서 혼란을 겪는 문제가 있었습니다. 또한, 고치는 과정에서 실수를 하면 원래 상태로 되돌릴 수 있는 방법을 몰라 엉망진창이 되기도 했습니다.

🛠️ 2. SWE-Adept 의 해결책: 두 명의 전문가

SWE-Adept 는 이 문제를 해결하기 위해 두 명의 AI 에이전트를 만듭니다.

1 단계: 🕵️‍♂️ '명탐정' (Issue Localization Agent) - 버그의 위치 찾기

이 에이전트의 임무는 **"어디가 문제일까?"**를 찾는 것입니다.

  • 기존 방식: 도서관 전체를 무작위로 뒤짐.
  • SWE-Adept 의 방식 (지능적 탐색):
    • 나무 구조도 활용: 코드는 서로 연결되어 있습니다. 명탐정은 이 연결고리 (의존성) 를 따라 **깊이 있는 탐색 (Depth-First Search)**을 합니다.
    • 스마트 필터링: 먼저 책의 '목차'와 '줄거리 요약' (코드 스켈레톤) 만 먼저 봅니다. 관련성이 낮으면 바로 넘깁니다.
    • 정밀 타격: 정말 중요한 부분만 골라 전체 내용을 읽습니다.
    • 비유: 도서관에서 책을 찾을 때, 제목만 보고 관련 없는 책은 넘기고, 정말 필요한 책의 특정 장 (Page) 만 정확히 찾아내는 것과 같습니다.

2 단계: 🔧 '수리공' (Issue Resolution Agent) - 버그 고치기

명탐정이 "여기가 문제야!"라고 알려주면, 수리공이 실제 고침 작업을 시작합니다.

  • 기존 방식: "생각하고 고치고, 또 생각하고 고치고..."를 반복하다가 실수가 쌓여 원래 상태가 무엇인지 잊어버림.
  • SWE-Adept 의 방식 (체계적인 수리):
    • 가설 설정 (Hypothesis): "이게 문제일 수도 있고, 저게 문제일 수도 있어."라고 여러 가지 해결책을 세웁니다.
    • 작업 목록 (To-Do List): 고치는 과정을 작은 단계로 나누고, 하나씩 수행합니다.
    • 체크포인트 (Checkpoints) & 되돌리기:
      • 비유: 게임에서 '세이브 (Save)' 기능을 자주 사용합니다.
      • 수리공은 코드를 조금 고칠 때마다 자동으로 '세이브'를 합니다.
      • 만약 고치는 도중 실수가 발견되면, 이전 세이브 지점으로 즉시 되돌릴 수 있습니다.
      • 또한, A 라는 해결책이 실패하면, B 라는 해결책을 시도하기 위해 **새로운 갈라진 길 (Branch)**을 만들어서 A 와 B 를 동시에 관리할 수 있습니다.

🌟 3. 이 시스템의 핵심 기술 (쉬운 비유)

🗺️ 코드 구조 나무 (Code-Structure Tree)

코드를 단순한 텍스트가 아니라, 가족 관계도처럼 연결된 나무로 봅니다.

  • "이 함수는 저 함수를 부른다" -> "아빠가 아들을 부른다"
  • 명탐정은 이 관계도를 따라가며 문제의 뿌리를 찾습니다.

📝 공유 작업 메모리 (Shared Working Memory)

두 에이전트와 수리공이 사용하는 공유된 메모장입니다.

  • 여기에는 "어디까지 고쳤는지", "어떤 세이브 지점이 있는지", "어떤 가설이 실패했는지"가 기록됩니다.
  • 덕분에 AI 는 긴 작업을 하더라도 **"내가 지금 어디에 있었지?"**를 잊지 않고, 실수하면 원래대로 되돌릴 수 있습니다.

🔄 버전 관리 도구 (Git 기반)

실제 개발자들이 사용하는 'Git'이라는 도구를 AI 가 직접 다룰 수 있게 했습니다.

  • Branching (분기): 여러 가지 해결책을 동시에 시도해 봅니다. (예: A 길로 가보자, B 길로 가보자)
  • Reverting (되돌리기): 잘못된 길로 갔다면, 즉시 이전 상태로 돌아옵니다.

📊 4. 결과는 어떨까?

이 시스템은 유명한 테스트 (SWE-Bench) 에서 기존 AI 들보다 훨씬 좋은 성과를 냈습니다.

  • 버그 위치 찾기: 정확도가 **5.4%**까지 향상되었습니다.
  • 버그 해결: 전체 해결률이 4.7% 증가했습니다.
  • 비용 절감: 불필요한 코드를 읽지 않고 필요한 부분만 읽기 때문에, AI 가 사용하는 계산 자원 (토큰) 도 더 적게 들었습니다.

💡 결론

SWE-Adept 는 AI 가 복잡한 소프트웨어 문제를 해결할 때, 혼자서 모든 것을 하려 하지 않고, **명확한 역할 분담 (찾기 vs 고치기)**과 **체계적인 관리 (체크포인트, 되돌리기)**를 통해 인간 개발자처럼 신중하고 정확하게 일할 수 있게 만든 혁신적인 프레임워크입니다.

이는 마치 수천 권의 책이 있는 도서관에서, 한 명은 정확한 책을 찾아내고 (명탐정), 다른 한 명은 그 책의 특정 페이지를 고쳐서 다시 정리하는 (수리공) 완벽한 팀워크를 보여주는 사례라고 할 수 있습니다.