왜 중요한가
대형 언어 모델 기반 코딩 에이전트는 코드 생성 능력이 뛰어나지만 저장소 내부의 설계 제약과 데이터 흐름 같은 내부 지식 부족으로 인해 사실적 오류를 자주 범한다. ACQUIRE는 문제 해결에 앞서 질문을 통해 필요한 저장소 지식을 구조화하여 에이전트가 근거 기반 결정을 내릴 수 있도록 해 이러한 지식 결핍을 직접적으로 보완한다. 이 접근은 테스트 기반 검증 환경에서 Pass@1을 유의미하게 향상시키면서 수리 과정의 비효율적 반복을 줄이는 것으로 나타났다.
핵심 기여
QA 주도 사전 지식 획득 프레임워크 제안
ACQUIRE는 이슈 설명만으로 수리하는 대신 이슈를 진단 가능한 질문들로 분해하고 각 질문에 대해 저장소 근거를 수집하는 두 단계 파이프라인을 도입했다. 첫 단계에서 Questioner가 카테고리 유도 질문을 생성하고 독립적인 Answerer들이 저장소를 탐색해 근거 기반 답변을 생성한다. 두 번째 단계에서 Resolver는 이 QA 세트를 참조해 정보에 기반한 패치를 생성해 수리 정확도를 높인다.
카테고리 유도 질문 템플릿과 병렬 증거 기반 답변
문제 해결에 필요한 지식 차원을 네 가지(Mechanism & Behavior, Design & Usage, Locating & Structure, Ecosystem & Standards)로 분류해 질문 생성의 진단적 범위를 확보했다. 각 질문은 독립 실행되는 Answerer 인스턴스에게 병렬로 배치되어 각 인스턴스가 읽기 전용 탐색으로 구체적 파일 경로와 코드 근거를 수집하도록 설계되었다. 이 구조는 질문별 근거 수집 작업을 단순화해 허위정보 가능성을 낮추고 획득 지식의 사실성을 높였다.
실험적 검증과 행동 분석으로 효과성 입증
SWE-bench Verified 500개 사례에서 DeepSeek-V3.2 백본 기준 Pass@1을 66.4%에서 70.8%로, GPT-5-mini 기준으로도 58.4%에서 62.2%로 개선했다. 232개의 QA 쌍 감사에서 99.1%가 근거 지원된 답변으로 판정되었고 전체적으로 수리 단계에서 위치 탐색과 수정 단계의 단계 수가 각각 약 24% 줄었다. 추가로 질문 수 민감도 실험에서 N=2가 비용과 성능의 최적 균형으로 확인되었다.
핵심 아이디어 이해하기
문제 출발점과 기존 한계는 다음과 같다. 자동 수리 에이전트는 이슈 설명만으로 저장소 내부의 설계 규약, 모듈 간 데이터 흐름, 암묵적 API 계약 같은 핵심 지식을 확보하기 어렵다. 결과적으로 에이전트는 표면적 키워드 일치에 의존해 잘못된 파일을 탐색하거나 모듈 경계를 넘나드는 근본 원인을 파악하지 못해 잘못된 수정을 반복하게 된다. 해결 원리는 질문 분해와 근거 기반 답변 획득이다. ACQUIRE는 이슈 전체를 한 번에 해결하려 하지 않고 Questioner가 진단적 범위를 갖춘 타깃 질문들을 생성하면 각 Answerer가 독립적으로 저장소를 탐색해 파일 경로·함수명·라인 등 구체적 근거를 수집하도록 설계되었다. 이렇게 얻은 QA 쌍은 Resolver의 입력 문맥으로 사전 주입되어 수리 루프 시작 시점에 안정적인 저장소 이해를 제공한다. 이 접근이 달라지게 하는 점은 정보의 질과 수리 효율성이다. 좁게 정의된 질문들은 각 Answerer가 단순화된 검색·추론 과제를 수행하게 해 허위 주장 가능성을 낮추며, 결과적으로 Resolver는 위치 탐색과 수정 설계에서 시행착오를 줄이고 검증 단계에 더 많은 자원을 할당할 수 있다. 실험에서는 이로 인해 Pass@1이 모델별로 수퍼셋 성능 향상을 보였고 단계 수와 비용 측면에서도 합리적인 트레이드오프를 확보했다.
방법론
전체 접근 방식과 핵심 아이디어는 두 단계로 분리된 파이프라인이다. 첫 단계에서 Questioner는 이슈 설명을 입력받아 N개의 타깃 질문을 생성하고, 두 번째 단계에서 각각의 Answerer 인스턴스가 독립적으로 저장소를 탐색해 근거 기반 답변을 생성한다. 최종적으로 Resolver는 이 QA 세트를 수리 문맥으로 받아 코드 탐색·편집·테스트 루프를 수행해 패치를 생성한다. 질문 생성 메커니즘은 카테고리 유도 템플릿을 사용한다. 템플릿은 Mechanism & Behavior, Design & Usage, Locating & Structure, Ecosystem & Standards 네 가지 진단 축을 제시해 질문들이 진단적 다양성과 중복 회피를 갖도록 제약을 건다. Questioner는 템플릿에 따라 각 질문의 범주를 자율 선택하며 이로 인해 질문 집합의 커버리지가 향상되는 효과가 관찰되었다. 증거 기반 답변 절차는 Answerer의 읽기 전용 탐색과 답변 제출 규칙으로 구성된다. 각 Answerer는 쓰기 권한 없이 저장소를 조회하며 답변에는 파일 경로·함수명·라인과 같은 구체적 근거를 포함해야 하고, 충분한 근거를 찾지 못할 경우 명시적으로 근거 부족을 인정해야 한다. 병렬 실행은 각 인스턴스가 다른 질문에 독립적으로 집중하도록 해 지연 시간을 단일 최장 실행 인스턴스 수준으로 제한한다. 수리 단계의 지식 주입 방식은 정적 선주입이다. QA 세트는 Resolver의 초기 메시지 앞에 구조화된 텍스트 블록으로 삽입되며 동적 스트리밍이 아닌 사전 주입을 선택한 이유는 모듈성 유지와 초기 단계의 불완전한 정보로 인한 잘못된 의사결정 방지이다. Resolver는 주입된 QA를 보조 정보로 사용하며 자체 탐색과 검증을 통해 변경을 검증할 수 있다.
관련 Figure

이미지는 두 단계 설계와 에이전트 간 정보 흐름을 한눈에 보여주며 첫 단계에서 QA가 생성되고 두 번째 단계에서 QA가 수리 입력으로 주입되는 과정을 명확히 한다. 각 구성 요소가 어떤 입력과 출력을 주고받는지(이슈 설명, QA 쌍, 환경 관찰 등)를 구체적으로 표시해 설계의 모듈성과 선주입 방식을 시각적으로 보강한다.
ACQUIRE의 전체 파이프라인 구조를 단계별로 나타낸 다이어그램으로 Questioner, Answerer, Resolver의 역할 분리를 시각화하고 있다.

케이스 스터디 그림은 Mini-SWE-Agent가 표면적 키워드에 이끌려 잘못된 파일들을 반복 방문한 반면 ACQUIRE는 질문 유도 탐색으로 docfields.py의 근본 원인을 찾아 최소 변경으로 패치한 과정을 대조적으로 보여준다. 이 시각적 사례는 QA 분해와 근거 기반 탐색이 실제 수리 경로를 어떻게 단축시키는지 구체적으로 보강한다.
sphinx-doc 사례의 수리 궤적을 전후로 비교한 그림으로 ACQUIRE가 올바른 파일을 찾아 패치를 정확히 적용한 사례를 단계별로 보여준다.
주요 결과
주요 벤치마크 결과는 SWE-bench Verified 500개 사례에서 얻어졌다. DeepSeek-V3.2 백본 기준 ACQUIRE는 Pass@1을 66.4%에서 70.8%로 4.4pp 향상시켰고 평균 비용은 0.073로 증가했으며 평균 처리 시간은 815초에서 1042초로 측정되었다. GPT-5-mini 백본에서도 Pass@1이 58.4%에서 62.2%로 3.8pp 개선되어 두 백본에서 일관된 향상이 관찰되었다. QA의 사실성 평가는 인간 감사자로 검증되었고 232개 QA 쌍 중 230개(99.1%)가 근거 지원으로 판정되었다. 구체적으로 98개(42.2%)는 완전한 정확성으로, 132개(56.9%)는 핵심 주장은 맞지만 상세 정보에서 미세한 편차가 있었고 2개(0.9%)만 근거 없는 주장을 포함했다. 또한 ACQUIRE는 Mini-SWE-Agent 대비 Fail → Pass recoveries 44건과 Pass → Fail regressions 22건을 만들어 전체 순증가 22건을 기록했다. 트레이저 분석에서는 QA 주입이 위치 탐색(Locating)과 수정(Fixing) 단계의 단계 수를 각각 약 23.8%와 24.1% 줄였고 전체 단계 수는 3,917에서 3,246로 감소했다. QA 사용 단계 비율은 전체의 40.4%였고 위치 탐색과 수정 단계에서 특히 집중적으로 사용되었다. QA 쌍 수 민감도 실험에서 N=1일 때 Pass@1이 69.0%로 상승했으며 N=2에서 70.8%로 최고치를 보이고 N=3에서는 69.0%로 되돌아가 비용 대비 이득이 감소하는 양상이 나타났다.
관련 Figure

차트는 QA 주입 후 전체 단계 수가 감소했음을 시각적으로 보여주며 특히 Locating과 Fixing에서 비율이 크게 줄어든 것을 강조한다. 그림 내 레이블과 비율은 텍스트 결과(Locating 51.5%, Fixing 50.6% 등)와 일치해 QA가 지식 집약 단계에서 구체적 효율화를 유도했음을 뒷받침한다.
QA 주입 전후의 수리 단계 구성 비율을 도넛 차트로 비교해 QA가 Locating과 Fixing 단계에 미치는 영향을 수치로 보여준다.

그래프는 N=0에서 기준 성능을 보여주고 N=1에서 성능이 상승하며 N=2에서 최고점(70.8%)에 도달하고 N=3에서 다시 하락하는 비모노토닉 패턴을 명확히 한다. 동시에 평균 비용은 N 증가에 따라 완만히 상승해 N=2가 비용-성능 균형에서 최적이라는 결론을 시각적으로 뒷받침한다.
QA 쌍 개수 N에 따른 Pass@1과 평균 비용 변화를 선 그래프로 제시해 N=2에서 최고 성능을 보이는 민감도 결과를 나타낸다.
기술 상세
전체 아키텍처는 세 전문 에이전트(Questioner, Answerer, Resolver)로 구성된 두 단계 파이프라인이다. Questioner는 카테고리 유도 템플릿을 사용해 N개의 질문을 생성하고 각 Answerer는 독립 실험 환경에서 읽기 전용 탐색으로 답변을 구성한다. 생성된 QA 집합은 구조화된 텍스트 블록으로 Resolver 입력 앞에 선주입되어 수리 루프가 시작될 때 고정된 저장소 이해를 제공한다. Answerer의 운영 세부사항은 실행 예산과 시간 제약을 포함한다. 기본 설정에서 N=2, Answerer per-step timeout은 120초, 최대 궤적 길이는 150스텝, 인스턴스당 비용 상한은 3.00을 따르는 등 일관된 수리 환경을 유지한다. 질문 품질 및 집합 수준 평가는 LLM-as-a-judge 프로토콜로 보강되었고 질문별 평가는 관련성·답변 가능성·진단 유틸리티·추론 깊이·명확성으로 구성되었다. ACQUIRE와 템플릿 제거 변형(ACQUIRE-FreeQ) 간 비교에서 커버리지와 진단 유틸리티에서 유의한 차이가 관찰되었고 이는 템플릿이 질문 간 중복을 줄이고 보완적 시야를 확보하는 역할을 함을 시사한다.
한계점
현재 템플릿은 네 가지 카테고리로 설계되어 있으며 특정 이슈 유형이나 언어별 특성까지 포괄하지 못할 가능성이 있다. 동적 지식 획득을 수리 루프와 결합하면 지식 신선도를 높일 수 있으나 추가 비용이 발생하고 탐색-수정 상호작용에서 복잡도가 증가할 우려가 있다. 본 연구는 주로 Python 저장소와 SWE-bench 환경에서 평가되었기 때문에 다른 언어·환경으로 확장할 때 추가 검증이 필요하다.
실무 활용
ACQUIRE는 실제 저장소에서 발생하는 기능 버그를 해결하는 자동 수리 파이프라인에 적용 가능성이 높다. 사전 QA로 획득한 근거 기반 지식은 위치 탐색과 수정 설계에 드는 반복 비용을 줄여 수리 효율을 개선한다. 코드 및 데이터는 공개되어 있어 논문에서 제시한 설정을 재현해 실무 워크플로에 통합할 수 있다.
- 대규모 코드베이스에서 모듈 간 의존성과 암묵적 API 계약이 원인인 복합 버그 자동 분석·수정
- 사내 자동 수리 에이전트에 QA 기반 사전 탐색을 추가해 디버깅 시간 단축과 테스트 통과율 향상
- 교육용 도구로서 개발자가 문제의 근본 원인과 영향 범위를 이해하도록 돕는 증거 기반 보조 도구
코드 공개 여부: 공개
코드 저장소 보기키워드
용어 해설
- 저장소 수준 질문응답(Repository QA)
- — 저장소 수준 질문응답은 단일 파일을 넘어서 여러 파일과 모듈을 횡단하며 근거가 되는 코드 위치들을 찾아 하나의 질문에 대해 근거 기반 답변을 제공하는 작업이다. 이 방식은 단순 키워드 매칭이나 코드 스니펫 검색과 달리 증거가 되는 파일 경로, 함수 이름, 라인 등 구체적 근거를 수집해 리페어 과정에서 신뢰할 수 있는 사실 정보를 제공한다. 저장소 내부의 설계 제약·데이터 흐름·모듈 의존성을 이해해야 하는 문제에서 핵심 역할을 한다.
- 단일 시도 정답률(Pass@1)
- — Pass@1은 에이전트가 한 번의 패치 시도로 테스트를 통과하는 비율을 나타내는 지표이다. 자동 수리 평가에서 단일 시도로 올바른 패치를 생성하는 능력을 직접 측정하며 재현 가능한 테스트 실행으로 검증된다. 비용과 시간 관점에서 실용성을 평가할 때 핵심적인 효율성 지표로 사용된다.
- 지식 주입(Knowledge Injection)
- — 지식 주입은 리페어 단계에 앞서 외부 또는 자동 획득된 구조화된 정보(QA 쌍 등)를 수리 에이전트의 입력 문맥에 삽입하는 절차다. 이 정보는 수정 행동을 유도하되 에이전트의 독립적 검증 능력을 제한하지 않도록 보조적 문맥으로 제공된다. 적절한 주입은 검색·위치 탐색·수정 설계 시간 단축과 오답률 감소로 이어진다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
