microsoft/debug-gym
A Text-Based Environment for Interactive Debugging
해결하는 문제
debug-gym은 Python 코드 리포지토리의 버그를 수정하는 LLM 기반 에이전트를 훈련하고 평가하기 위한 표준화된 인터랙티브 환경을 제공합니다. 단순한 코드 편집이 아닌 실제 디버깅 도구(예: pdb)를 사용하여 코드의 동작을 조사한 후 수정안을 제안할 수 있도록 함으로써, 간단한 코드 편집과 실제 세계 디버깅 사이의 격차를 메웁니다.
작동 방식
이 프레임워크는 Gymnasium 패러다임을 따르는 시뮬레이션 환경으로 작동합니다. 에이전트는 도구를 통해 코드 리포지토리와 상호작용하고, 환경 상태의 텍스트 기반 관측을 받으며, 정보를 수집하고 최종적으로 패치를 적용하기 위해 반복적으로 명령을 생성합니다.
- 환경 및 도구:
RepoEnv는 코드베이스를 관리하고bash,view(파일 포커스),eval(테스트 실행),pdb(인터랙티브 디버깅),grep,listdir,edit등의 도구를 제공합니다. - 터미널: 격리성과 확장성을 보장하기 위해
DockerTerminal및KubernetesTerminal백엔드를 지원하여 명령을 실행합니다. - 에이전트: Jinja 템플릿을 사용해 사용자 정의 시스템 프롬프트를 설정할 수 있는 LLM 기반 에이전트(예:
froggy_agent)를 제공합니다. - 통합: SWE-bench, SWE-smith, R2E-Gym과 같은 벤치마크와 통합되어 표준화된 디버깅 작업을 제공합니다.
대상 사용자
- 자율 소프트웨어 엔지니어링 에이전트를 개발하는 AI 연구자.
- 자동 버그 수정 및 프로그램 분석을 위한 LLM 기반 도구를 개발하는 개발자.
- 실제 세계의 Python 리포지토리를 사용해 LLM 에이전트의 디버깅 능력을 평가하고자 하는 사용자.
주요 특징
- 인터랙티브 디버깅:
pdb를 통합하여 에이전트가 실행 중에 브레이크포인트를 설정하고 상태를 조사할 수 있도록 합니다. - 확장 가능한 도구: 사용자가 간편하게 새로운 도구를 만들고 등록하여 에이전트의 행동 및 관측 공간을 확장할 수 있습니다.
- 격리된 실행: Docker 및 Kubernetes를 지원하여 에이전트가 생성한 코드를 안전하고 확장 가능하게 실행할 수 있습니다.
- 사용자 정의 프롬프트: Jinja 템플릿을 사용해 유연한 시스템 프롬프트 설계가 가능합니다.
- 사람이 개입하는 모드: 도구 호출 워크플로우를 테스트하기 위해 수동으로 환경에 참여할 수 있는 "사람 모드"를 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트