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

**URL:** <https://discuss.pytorch.kr/t/swe-agent-github-llm-ai/3967>\
**Category:** 읽을거리&정보공유\
**Tags:** code-agent, llm-agent, code-llm, opendevin, devin, swe-bench, swe-agent\
**Created:** [4월 3, 2024, 3:22오후 UTC](https://discuss.pytorch.kr/t/swe-agent-github-llm-ai/3967 "2024-04-03T15:22:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![9bow](https://discuss.pytorch.kr/user_avatar/discuss.pytorch.kr/9bow/32/16301_2.png) [@9bow](https://discuss.pytorch.kr/u/9bow)\
**Post date:** [4월 3, 2024, 3:22오후 UTC](https://discuss.pytorch.kr/t/swe-agent-github-llm-ai/3967/1 "2024-04-03T15:22:49Z")

</div>

### :pytorch:PyTorchKR:kr:

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

 ![SWE-agent: GitHub 저장소를 탐색하고 코드를 편집/실행할 수 있는 LLM 기반 AI 엔지니어 프로젝트](https://discuss.pytorch.kr/uploads/default/original/2X/a/ab53d915f2bd6059cd8dfa3d43b1522253c1c338.png)

* * *

## 소개

[![](https://img.youtube.com/vi/CeMtJ4XObAM/maxresdefault.jpg "A First Look at SWE-agent") ](https://www.youtube.com/watch?v=CeMtJ4XObAM)

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-bench 테스트 결과](https://discuss.pytorch.kr/uploads/default/original/2X/5/5c14fb667e4d5acfe0c9cab8f2143c74fa201080.png)

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

## 더 읽어보기

### 홈페이지

> **[Redirecting](https://swe-agent.com/)**

### GitHub 저장소

> **[GitHub - SWE-agent/SWE-agent: SWE-agent takes a GitHub issue and tries to...](https://github.com/SWE-agent/SWE-agent)**
>
> SWE-agent takes a GitHub issue and tries to automatically fix it, using your LM of choice. It can also be employed for offensive cybersecurity or competitive coding challenges. \[NeurIPS 2024\]

* * *

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

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

🎁 아래↘쪽에 좋아요❤를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ 🤩
