swe-agent은(는) 무엇을 하나요?
LLM을 소프트웨어 엔지니어링 에이전트로 전환하여 실제 GitHub 저장소에서 버그를 수정하고 기능을 구현합니다.
개요
SWE-agent는 대규모 언어 모델(LLM)을 실제 GitHub 저장소에서 작업하는 소프트웨어 엔지니어링 에이전트로 변환합니다. 에이전트는 버그를 수정하고, 기능을 구현하며, 코드 리팩토링을 수행할 수 있습니다.
주요 특징
- 자율적 코드 수정: LLM이 저장소를 탐색하고, 코드를 이해하며, 수정 사항을 생성합니다.
- 실제 저장소 지원: GitHub, GitLab 등 원격 저장소에서 직접 작업 가능합니다.
- SWE-bench 호환: SWE-bench 벤치마크에서 최고 성능을 달성했습니다.
- 다중 LLM 지원: Claude, GPT-4, CodeLlama, DeepSeek 등 다양한 모델과 호환됩니다.
설치 방법
# pip를 사용한 설치
pip install swe-agent
# 또는 소스에서 설치
git clone https://github.com/princeton-nlp/swe-agent.git
cd swe-agent
pip install -e .
기본 사용법
# GitHub 이슈를 기반으로 버그 수정
swe-agent run --model claude --repo https://github.com/example/repo --issue 42
# 특정 브랜치에서 작업
swe-agent run --model gpt-4 --repo example/repo --branch fix-bug-42
환경 변수
| 변수명 | 설명 | 필수 여부 |
|---|---|---|
ANTHROPIC_API_KEY | Claude 모델용 API 키 | 선택 |
OPENAI_API_KEY | GPT 모델용 API 키 | 선택 |
GITHUB_TOKEN | GitHub API 접근 토큰 | 선택 |
아키텍처
SWE-agent는 다음과 같은 구성 요소로 이루어져 있습니다:
- 에이전트 코어: LLM과 상호작용하며 작업 계획을 수립합니다.
- 환경 관리자: 안전한 샌드박스 환경에서 명령어를 실행합니다.
- 도구 세트: 파일 편집, 검색, git 작업 등을 위한 명령어 세트.
- 상태 추적기: 에이전트의 진행 상황을 모니터링합니다.
고급 설정
# config.yaml
model: claude-3-opus-20240229
max_steps: 100
timeout: 300
environment:
type: docker
image: python:3.11
memory_limit: 4g
# 사용자 정의 설정 파일로 실행
swe-agent run --config config.yaml --issue 42
참고 자료
SWE-agent는 프린스턴 대학 NLP 그룹에서 연구 목적으로 개발되었습니다. 실제 프로덕션 환경에서 사용 시 주의가 필요합니다.