10P by neo 2달전 | favorite | 댓글 3개
  • 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 디자인의 중요성을 강조함으로써, 기계와 인간 간의 상호작용을 최적화하는 인터페이스 설계의 중요성을 부각시킴.

저런 agent 개발자한테 이렇게 질문까지 하면서 일하면 정말 괜찮을것 같네요.

"버그리포트에서 기술하는 재현 방법을 문제점을 재현하는 테스트 코드로 만들어봤어. 내가 이해한게 맞는건지 이 코드좀 볼래?"

"이 디자인보다는 이렇게 이렇게 리팩토링하면 전체에서 프로젝트에서 20312 코드라인을 줄일 수 있을것 같은데, do you approve?"

매력적인 오픈소스이네요

Hacker News 의견
  • 버그 리포트에 대한 댓글:

    • 데모는 행렬 연산에 대한 명확한 버그 리포트를 보여줌.
    • 실제 버그 리포트는 대부분 "X를 클릭했는데 Y가 발생했다"는 식으로 모호함.
    • 버그를 해결하는 어려움은 원인을 파악하는 것에 있음.
    • LLMs가 간단한 결함을 수정할 수 있다는 것을 알지만, 이것이 무엇을 증명하는가에 대한 의문 제기.
    • 논문을 자세히 살펴본 사람이 있는지, 문제들과 차이점이 어떤지 궁금함.
  • 프로젝트에 대한 댓글:

    • 매우 멋진 프로젝트라고 평가.
    • 이전에 비슷한 실험을 해봤지만, 종종 혼돈스럽고 비용이 많이 드는 실패로 이어짐.
    • swe-bench에서 12%의 성공률을 보였지만, 나머지 88%는 어떤가에 대한 질문.
    • swe-bench가 해당 그룹에서 만든 것인지, "숙련된 인간 상한선" 점수를 측정해본 적이 있는지 궁금함.
    • 임의로 선택한 swe-bench 작업들이 숙련된 인간에게도 "해결"하기 어려웠다는 경험 공유.
  • 사용된 방법론에 대한 댓글:

    • langchain 방법론을 사용한 것으로 보임.
    • 몇 가지 프롬프트를 예로 들며 GitHub 링크 제공.
  • AI와 버그 트래커에 대한 댓글:

    • AI가 생성한 풀 리퀘스트가 인기를 얻으면 공개 버그 트래커의 종말을 예상.
    • 버그가 사라지는 것이 아니라, 풀 리퀘스트 검토 비용 대비 프로젝트 이득이 큰 손실이 될 것이라는 의견.
  • SWEbench 벤치마크에 대한 댓글:

    • SWEbench 벤치마크가 오직 파이썬 코드 프로젝트만 포함하고 있어 모든 프로그래밍 언어와 프레임워크를 대표하지 않음.
    • 더 일반적인 SWE 작업 평가 프레임워크를 JS, SQL, 파이썬 등을 위해 개발 중이라고 소개.
  • 데모 비교에 대한 댓글:

    • 데모가 Devin 프로젝트와 매우 유사하여 확인해봤다는 의견.
    • 데모에 대한 신뢰성에 의문을 제기하며, 제3자의 평가를 듣고 싶어함.
  • 리뷰 작업에 대한 댓글:

    • AI가 제안한 수정 사항을 검토하는 데 실제 사람들에게 얼마나 많은 추가 작업이 발생했는지에 대한 질문.
  • 유사 프로젝트에 대한 댓글:

    • 비슷한 프로젝트를 진행 중이라고 소개하며 GitHub 링크 제공.
    • 모델이 잘못된 방향으로 가는 것을 다루는 방법에 중점을 둠.
    • 개발자-AI 피드백 루프를 완성하는 것이 진정한 생산성 향상의 열쇠라고 강조.
  • 저자들에게 제안하는 댓글:

    • 성공률이 연구자들에게만 의미가 있다고 지적하며, SWE-agent가 통과한 테스트와 통과하지 못한 테스트의 예를 README에 추가할 것을 제안.
  • 오픈 소스 프로젝트 기여에 대한 댓글:

    • 초보 개발자로서 오픈 소스 프로젝트에 기여할 방법을 찾는 데 도움이 되는 도구를 원함.
    • 파이썬 패키징 문서가 난해함에도 불구하고, 이를 극복하고 쉽게 할 수 있게 되었다는 경험 공유.
    • 현대화되지 않은 프로젝트를 찾아 개선을 제안하고 구현할 계획을 밝힘.
    • 비슷한 아이디어나 영감을 가진 사람들과 아이디어를 나누고 싶어함.