Kozuchi Agent: A Language-Agnostic Open-Weight Agent for Software Repair
Kozuchi Agent는 미세 조정 없이도 SWE-bench Verified 및 Multi-SWE-bench 벤치마크에서 최첨단 성능을 달성하기 위해 지속적인 상태 유지 및 CI 기반 파이프라인을 활용하는 언어 중립적이고 오픈 웨이트 방식의 소프트웨어 복구 시스템이며, 이는 해당 시스템의 남은 한계가 포맷팅이나 독점 모델 접근성보다는 주로 의미론적 정확성 및 선택 오류에서 기인함을 입증한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
소프트웨어 공학의 방대하고 복잡한 세계에서 코드는 현대 생활을 구축하는 토대이지만, 이는 쉽게 망가질 수 있는 성질을 가지고 있습니다. 프로그램이 오작동하면 오류를 설명하는 보고서가 생성되며, 그러면 인간 개발자는 문제를 진단하고, 수천 줄의 텍스트 속에서 결함이 있는 위치를 찾아내며, 다른 것을 망가뜨리지 않고 문제를 해결할 수 있는 수정안을 작성해야 합니다. 이 과정은 느리고 어렵고 비용이 많이 듭니다. 최근에는 이러한 보고서를 읽고 스스로 수정안을 작성하려고 시도할 수 있는 새로운 세대의 인공지능이 등장했습니다. 흔히 '에이전트'라고 불리는 이 시스템들은 컴퓨터의 파일 시스템을 탐색하고, 테스트를 실행하며, 코드를 편집할 수 있는 디지털 견습생처럼 행동합니다. 그러나 이러한 에이전트가 장기간 안정적으로 작동하도록 가르치는 것은 큰 난관이었습니다. 그들은 종종 세부 사항에 매몰되거나, 이전 단계에서 배운 것을 잊어버리거나, 코드를 고치기 위해 필요한 도구를 사용하는 과정에서 실수를 저지르곤 합니다. 연구자들의 과제는 이러한 디지털 작업자들이 지속적인 인간의 감독 없이도 복잡한 문제를 해결할 수 있도록, 이들을 집중시키고 조직화하며 책임을 지게 만드는 시스템을 구축하는 것이었습니다.
후지쯔 리서치(Fujitsu Research)의 연구팀은 '코즈치 에이전트(Kozuchi Agent)'라는 시스템을 개발함으로써 이 과제를 해결했습니다. 그들의 연구는 새로운 데이터에 대한 특별한 훈련을 필요로 하는 대신, 행동을 안내하기 위해 정교하게 설계된 프레임워크에 의존하는 특정 유형의 인공지능에 초점을 맞추고 있습니다. 연구진은 에이전트가 뚜렷하게 정의된 단계별로 작동하는 디지털 환경을 구축했습니다. 에이전트가 문제 속을 자유롭게 헤매게 두는 대신, 시스템은 에러를 재현하여 존재를 확인하고, 그다음 정확한 문제의 근원을 찾아내며, 마지막으로 수정안을 작성하고 테스트하는 일련의 순차적인 단계를 거치도록 강제합니다. 각 단계에서 에이전트는 다음 단계로 넘어가기 전 반드시 특정 결과를 만들어내야 하며, 시스템은 에이전트가 수행하는 모든 활동을 영구적으로 기록합니다. 이러한 구조는 에이전트가 혼란에 빠지거나 같은 실수를 반복하는 것을 방지하여, 무질서한 탐색을 규율 있고 감사 가능한 프로세스로 변화시킵니다.
연구팀은 이 시스템을 실제 소프트웨어 문제들의 대규모 컬렉션, 구체적으로는 파이썬(Python) 프로그래밍 언어에서 추출한 500개의 이슈를 대상으로 테스트했습니다. 그들은 이 특정 작업을 위해 수정되거나 재학습되지 않은 강력한 오픈 소스 인공지능 모델을 사용했습니다. 결과의 견고함을 보장하기 위해, 연구진은 각 문제에 대해 에이전트를 여덟 번 별도로 실행하여 여덟 개의 서로 다른 잠재적 솔루션을 생성했습니다. 그 후 시스템은 영리한 선택 방법을 사용하여 이 솔루션들을 서로 비교했습니다. 최적의 수정안을 고르기 위해 숨겨진 정답지를 사용하는 대신, 시스템은 여덟 번의 실행 과정에서 생성된 테스트들을 사용하여 서로를 평가했습니다. 만약 어떤 수정안이 다른 시도에서 생성된 테스트를 통과한다면, 그것은 강력한 후보로 간-주되었습니다. 이 접근 방식은 정답을 미리 알지 못하더라도 가장 신뢰할 수 있는 솔루션을 식별할 수 있게 해주었습니다.
결과는 상당했습니다. 코즈치 에이전트는 500개의 파이썬 문제 중 374개를 성공적으로 해결하여 약 75%의 성공률을 기록했습니다. 이러한 성과는 이 시스템을 해당 분야의 상위권에 올려놓았는데, 모든 제출물과 비교했을 때 전체 12위를 차지했으며, 오픈 소스 기반의 공개 모델을 사용하는 시스템들 중에서는 1위를 기록했습니다. 연구진은 동일한 시스템을 자바(Java) 프로그래밍 언어로 작성된 다른 문제 세트에도 테스트했습니다. 두 언어 사이의 차이에도 불구하고, 시스템은 128개의 자바 이슈 중 41개를 해결하며 유사한 일관성을 보여주었습니다. 이는 이 프레임워크가 특정 언어에 국한되지 않고 다양한 유형의 소프트웨어에 광범위하게 적용될 수 있음을 입증했습니다.
연구의 핵심 발견 중 하나는 발생한 실패들이 에이전트가 지저분하거나 깨진 코드를 작성했기 때문이 아니라는 점이었습니다. 사실, 에이전트가 생성한 거의 모든 패치는 소프트웨어에 깔끔하게 적용되었습니다. 문제는 수정안 자체의 논리에 있었습니다. 에이전트는 겉보기에는 올바른 것처럼 보이지만 실제로는 근본적인 문제를 해결하지 못하는 수정을 작성하는 경우가 많았습니다. 이러한 구분은 매우 중요한데, 이는 개선을 가로막는 주요 장벽이 코드의 형식이나 도구 사용 능력이 아니라, 문제의 의미에 대한 깊은 이해라는 점을 시사하기 때문입니다. 또한 연구진은 이 시스템이 운영 면에서 매우 효율적이라는 것을 발견했습니다. 워크플로우를 자동화하고 프로세스의 서로 다른 부분들을 재사용할 수 있게 함으로써, 이들은 테스트를 실행하는 데 필요한 인간의 노력을 다섯 단계의 개별적인 수동 단계에서 단 하나의 자동화된 동작으로 줄였습니다.
연구는 시스템의 성공이 단순히 추측을 통한 것이거나, 소수의 기업만이 접근할 수 있는 거대한 독점 모델을 사용했기 때문이라는 가설을 명시적으로 배제했습니다. 에이전트는 270억 개의 파라미터를 가진 모델을 사용했는데, 이는 규모가 크긴 하지만 오늘날 사용 가능한 가장 강력한 모델들에 비하면 훨씬 작으며, 어떠한 특별한 미세 조정(fine-tuning) 없이도 그 결과를 달성했습니다. 연구진은 또한 시스템이 운에 의존하지 않았음을 보여주었습니다. 성능은 서로 다른 실행과 서로 다른 유형의 소프트웨어 저장소 전반에 걸쳐 일관되게 나타났습니다. 이 시스템이 완벽하지 않으며 여전히 가장 까다로운 의미론적(semantic) 문제들로 인해 어려움을 겪고는 있지만, 이는 인공지능을 신뢰할 수 있는 소프트웨어 공학의 파트너로 만드는 데 있어 중요한 진전입니다. 구조화된 워크플로우와 스마트한 선택 과정을 결려 결합함으로써, 코즈치 에이전트는 오픈된 기술과 접근 가능한 기술이 실제 코딩 과제를 해결하는 데 있어 가장 진보된 시스템들과 경쟁할 수 있음을 보여주었습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.