설명
오픈소스 기여자 에이전트 아키텍처인 Oscar는 프로젝트 유지보수를 위한 자동화된 에이전트를 생성하여 오픈소스 소프트웨어 개발을 개선하는 데 중점을 둔 프로젝트입니다. 핵심 신념은 크고 작은 오픈소스 프로젝트를 유지보수하는 데 따르는 상당한 부담을 줄일 수 있다는 것입니다. 대규모 언어 모델(LLM)은 이슈 보고서 및 유지보수 담당자의 지침과 같은 자연어의 의미론적 분석을 통해 에이전트가 사람들과 원활하게 상호 작용하고 자연어 지침을 프로그램 코드로 변환할 수 있는 새로운 가능성을 제공합니다. LLM은 중요한 구성 요소이지만, 에이전트 작업의 대부분은 표준적이고 결정론적인 코드를 실행하는 것과 관련될 것입니다. 많은 개발 중심 LLM 사용과 달리 Oscar는 코드 작성 프로세스를 보강하거나 대체하는 것을 목표로 하지 않습니다. 대신, 들어오는 이슈 처리, 기존 문서와의 질문 매칭 등 덜 매력적인 유지보수 측면에 중점을 둡니다.
Oscar는 근본적으로 실험이며, 미래 방향과 학습 내용은 아직 완전히 결정되지 않았습니다. 초기 프로토타입인 @gabyhelp 봇은 이미 Go 이슈 추적기 내에서 수많은 성공적인 상호 작용을 시연했습니다. 현재 Go 프로젝트 하에서 개발 중인 Oscar는 향후 별도의 프로젝트로 분리될 가능성이 있습니다. 프로젝트의 구체적인 목표에는 이슈 및 변경 목록(CL/풀 요청) 해결 시 유지보수 담당자의 노력 감소, 포럼 질문 처리 노력 감소, 더 많은 개인이 생산적인 유지보수 담당자가 될 수 있도록 하는 것이 포함됩니다. 주요 비목표는 코딩 자동화이며, 초점은 유지보수 담당자의 부담 자동화에 있습니다.
접근 방식은 모든 소프트웨어 프로젝트가 맞춤형 에이전트를 생성하기 위해 적용할 수 있는 재사용 가능하고 확장 가능한 아키텍처를 구축하는 데 중점을 둡니다. Oscar는 Go 프로젝트에만 국한되지 않는 유지보수 담당자의 부담을 해결하는 것을 목표로 합니다. 식별된 주요 기능에는 기여자 상호 작용 중 관련 프로젝트 컨텍스트를 인덱싱하고 노출하는 것, 자연어를 사용하여 결정론적 도구를 제어하는 것, 이슈 보고서, CL/PR 및 그룹 토론을 분석하여 실시간으로 개선하고 적절하게 라벨링하며 라우팅하는 것이 포함됩니다. LLM은 자연어 처리 능력 때문에 이러한 기능에 필수적이며, 결정론적 코드는 실행을 처리합니다. 이 프로젝트는 의미론적 분석 및 자연어-프로그램 변환을 위해 LLM을 사용하고 나머지 부분은 결정론적 코드에 의존하는 것을 강조합니다.
하나의 중요한 기능은 관련 프로젝트 컨텍스트를 인덱싱하고 노출하는 것입니다. 소프트웨어 프로젝트는 복잡하며 유지보수 담당자는 항상 모든 관련 세부 정보를 기억할 수 없습니다. Oscar는 LLM 임베딩을 사용하여 프로젝트 검색 엔진을 생성하고 문서, 이슈 및 토론을 인덱싱합니다. 새로운 이슈가 발생하면 에이전트는 이 인덱스를 사용하여 유사한 과거 이슈 또는 관련 문서와 같은 관련 컨텍스트를 찾고 링크를 포함하여 응답할 수 있습니다. 이는 중복 이슈를 노출하고, 기여자에게 컨텍스트를 제공하며, 관련 과거 토론이나 버그 보고서로 안내하여 유지보수 담당자의 시간을 절약하는 등의 이점을 보여주었습니다. 보고서가 제출된 후 에이전트의 즉각적인 상호 작용은 보고자가 아직 이용 가능하고 참여하고 있을 때 보고자를 참여시키는 데 중요합니다.
또 다른 핵심 기능은 자연어를 사용하여 결정론적 도구를 제어하는 것입니다. 프로젝트가 성장함에 따라 도구 수가 증가하여 추적하고 사용하기 어렵습니다. Oscar는 자연어 요청에 따라 이슈 댓글을 편집하거나, 라벨을 추가하거나, 사람을 할당하는 시설을 구상합니다. LLM은 자연어 의도를 도구 호출과 같은 실행 가능한 형태로 번역하는 데 능숙합니다. Gemini를 사용한 예비 실험은 도구를 선택하고 호출하는 데 유망한 결과를 보여주었습니다. 자연어를 결정론적 도구 사용으로 변환하기 위해 LLM을 사용하는 이 접근 방식은 결정론적 실행과 쉬운 검증을 허용하므로 순수한 LLM "마법 지팡이" 접근 방식보다 더 효과적인 것으로 간주됩니다.
세 번째 중요한 기능은 이슈 보고서 및 CL/PR을 분석하는 것입니다. 관련 이슈를 연결하는 것 외에도 Oscar는 이슈의 주요 주제를 식별하여 적절한 라벨링(예: "성능")을 지정하는 것과 같은 의미론적 분석을 통합할 계획입니다. 또한 보고서가 유용하기 위해 추가 정보가 필요한지 여부를 결정하는 것을 목표로 합니다(예: 재현 프로그램 링크 요청 또는 코드 인라인). 에이전트는 샌드박스화된 실행 도구를 실행하여 버그 포함 릴리스를 식별하거나 git bisect를 사용하여 버그 도입 커밋을 찾을 수 있습니다. 이러한 분석은 보고서가 제출된 직후 에이전트의 24/7 가용성을 활용할 때 가장 효과적입니다.
첫 번째 프로토타입인 Gaby("Go AI bot")는 Go 이슈 추적기 내에서 @gabyhelp로 작동합니다. 소스 코드는 internal/gaby에 있습니다. Gaby는 Go 이슈, Go 문서, Gerrit 코드 검토 및 Go 프로젝트/golang-nuts 토론의 콘텐츠를 인덱싱하여 관련 링크로 새 이슈에 응답할 수 있습니다. Gaby의 아키텍처는 유연하도록 설계되어 다양한 호스팅 서비스에서 실행하고, 다른 LLM, 스토리지 계층 및 벡터 데이터베이스를 사용할 수 있습니다. 현재 프로토타입은 Google의 Gemini LLM 및 Google Cloud Firestore와 함께 GCP Cloud Run을 사용합니다. 이 프로젝트는 또한 Go 프로젝트의 오랜 결정론적 에이전트인 @gopherbot의 존재를 인식하고 있으며, 궁극적으로 @gabyhelp를 Oscar 에이전트로 @gopherbot을 재구축하여 자연어를 사용하는 더 가벼운 구성 방법을 모색하여 @gabyhelp를 @gopherbot에 병합하는 것을 목표로 합니다.
Oscar의 핵심 기능
오픈소스 유지보수를 위한 자동화된 에이전트
이슈 및 요청 처리를 자동화하여 유지보수 담당자의 부담 감소
LLM을 활용한 자연어 이해 및 의미론적 분석
신뢰할 수 있는 작업 실행을 위한 결정론적 코드 활용
관련 프로젝트 컨텍스트(문서, 이슈, 토론) 인덱싱 및 노출
결정론적 도구의 자연어 제어 가능
이슈 보고서 및 변경 목록 분석을 통한 라우팅 및 라벨링 개선
Go 이슈 추적기에서 활성 상태인 프로토타입 에이전트 @gabyhelp
맞춤형 에이전트 개발을 위한 확장 가능한 아키텍처
다양한 LLM, 스토리지 계층 및 벡터 데이터베이스와의 통합 지원
오픈소스 유지보수의 비코딩 측면 자동화 목표
즉각적인 응답을 통한 기여자 참여 가속화 지원
Oscar 사용 방법은?
구성: 에이전트 기능 정의 및 프로젝트 데이터 소스 연결
배포: 적합한 플랫폼(예: 클라우드 서비스)에 에이전트 호스팅
통합: 프로젝트 리포지토리 및 통신 채널(예: GitHub 웹훅)에 연결
학습/인덱싱: 에이전트가 LLM을 사용하여 프로젝트 컨텍스트를 처리하고 인덱싱하도록 허용
모니터링: 이슈 추적기 및 포럼에서 에이전트 상호 작용 및 성능 관찰
확장: 새로운 에이전트 동작 개발 및 맞춤형 결정론적 도구 통합
최적화: 프로젝트 요구 사항 및 피드백에 따라 에이전트 응답 및 분석 개선
Oscar의 사용 사례
- 이슈 분류 자동화
- 문서 지원
- 중복 이슈 감지
- 유지보수 담당자 부담 감소
- 기여자 지원
- 변경 목록 분석
- 컨텍스트 노출
- 도구 통합






