- SWE-agent는 GPT-4와 같은 언어 모델(LMs)을 소프트웨어 엔지니어링 에이전트로 변환하여 실제 GitHub 저장소의 버그와 이슈를 수정
- SWE-bench 테스트 세트 전체에서 12.29%의 이슈를 해결하여 전체 테스트 세트에서 최고의 성능을 달성
에이전트-컴퓨터 인터페이스 (ACI)
- 에이전트가 저장소를 탐색하고 코드 파일을 보고, 편집하고, 실행하기 쉽도록 LM 중심의 명령과 피드백 형식을 설계함으로써 이러한 결과를 달성함.
- 이를 에이전트-컴퓨터 인터페이스(ACI)라고 부르며, 저장소 수준의 코딩 에이전트를 위한 ACI 디자인을 쉽게 반복할 수 있도록 SWE-agent 저장소를 구축함.
- 좋은 ACI 디자인은 에이전트 사용 시 훨씬 나은 결과를 가져옴을 보여줌.
설정
- Docker를 설치하고 로컬에서 Docker를 시작함.
- Miniconda를 설치하고
conda env create -f environment.yml을 사용하여swe-agent환경을 생성함. conda activate swe-agent를 사용하여 활성화함../setup.sh를 실행하여swe-agent도커 이미지를 생성함.- 이 저장소의 루트에
keys.cfg파일을 생성하고 필요한 API 키와 GitHub 토큰을 입력함.
사용법
- SWE-agent 파이프라인에는 두 단계가 있음. 첫 번째는 GitHub 이슈를 입력받아 이를 해결하려는 풀 리퀘스트를 반환하는 추론 단계임.
- 두 번째 단계는 SWE-bench 벤치마크에 있는 이슈에 대해서만 가능하며, 생성된 풀 리퀘스트가 실제로 이슈를 해결했는지 확인하는 평가 단계임.
평가
- 이 단계는 SWE-bench 세트의 이슈에 대해서만 가능함.
- 생성된 풀 리퀘스트를 평가하기 위해
evaluation/디렉토리로 이동하고./run_eval.sh를 실행함.
GN⁺의 의견
- SWE-agent는 실제 GitHub 이슈를 해결하는 데 언어 모델을 활용하는 혁신적인 접근 방식을 제시함으로써 소프트웨어 개발 과정에서의 자동화 가능성을 확장함.
- 이 기술은 개발자들이 반복적인 버그 수정 작업에서 벗어나 더 창의적이고 복잡한 문제 해결에 집중할 수 있게 하는 잠재력을 가짐.
- ACI 디자인의 중요성을 강조함으로써, 기계와 인간 간의 상호작용을 최적화하는 인터페이스 설계의 중요성을 부각시킴.