SWE-agent: GitHub 저장소를 탐색하고 코드를 편집/실행할 수 있는 LLM 기반 AI 엔지니어 프로젝트

:pytorch:PyTorchKR:kr:

  • LLM 기반의 소프트웨어 개발자를 만들려는 노력이 가시적인 성과를 보이는 것 같습니다. 최초의 AI 소프트웨어 엔지니어라는 별명으로 홍보를 하고 있는 Devin이 공개된데 이어 OpenDevin도 최근 선을 보이고 있습니다. 오늘 소개한 SWE-agent 또한 이러한 노력의 일환으로, GitHub 저장소를 탐색하고 코드를 편집 및 실행할 수 있는, 이름 그대로 SWE(Software Engineer) Agent를 목표로 하고 있습니다.


소개

SWE-agent는 언어 모델이 GitHub 저장소를 탐색하고, 코드 파일을 보고, 편집하며, 실행할 수 있도록 돕는 Agent-Computer Interface(ACI)를 통해 가능한 한 쉽게 작업을 수행할 수 있도록 설계된 프로젝트입니다. 이 인터페이스는 저장소 수준에서 코딩 에이전트의 ACI 디자인을 반복적으로 개선하는 것을 목표로 합니다.

주요 기능

  • Linting: 편집 명령이 발행될 때 린터를 실행하고, 코드가 문법적으로 올바르지 않은 경우 편집 명령을 통과시키지 않습니다.

  • 특수 제작된 파일 뷰어 및 에디터: 단순히 파일을 'cat'하는 대신, 파일을 보여줄 때 한 번에 100줄씩 표시하는 것이 최적임을 발견했습니다. 또한, 파일 내에서 스크롤 업/다운을 수행하고 검색을 수행하는 명령을 가진 파일 에디터를 구축했습니다.

  • 전체 디렉토리 문자열 검색 명령: 이 도구는 최소한 하나의 일치 항목이 있는 각 파일을 간단히 나열함으로써 중요한 것으로 밝혀졌습니다. 모델에게 각 일치 항목에 대해 더 많은 컨텍스트를 보여주는 것은 모델에게 혼란스러웠습니다.

사용 방법

SWE-agent의 설정과 사용은 몇 가지 간단한 단계로 이루어집니다:

  1. Docker 설치 후 로컬에서 Docker 시작
  2. Miniconda 설치 후 conda env create -f environment.yml로 SWE-agent 환경 생성
  3. conda activate swe-agent로 환경 활성화
  4. ./setup.sh를 실행하여 SWE-agent Docker 이미지 생성

SWE-agent는 GitHub 문제에 대한 입력을 받아 이를 수정하려는 pull request를 반환하는 두 단계의 파이프라인을 가지고 있습니다. 첫 번째 단계는 추론이며, 두 번째 단계는 생성된 pull request가 실제로 문제를 해결했는지 검증하는 평가 단계입니다.

비교

SWE-agent를 SWE-bench 테스트셋에서 평가해봤을 때, 12.29%의 이슈를 해결하고 있습니다. 이러한 성능은 GPT-4, RAGClaude 3 Opus, RAGClaude 2, RAGGPT-4와 같은 다른 언어 모델을 포함한 성능 비교에서 % Resolved 지표를 기반으로 높은 해결 능력을 보여줍니다.

더 읽어보기

홈페이지

GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: