4P by xguru 3달전 | favorite | 댓글과 토론
  • 오픈소스 유지 보수를 위한 자동화된 도우미 "에이전트"를 만들어 오픈 소스 소프트웨어 개발을 개선하는 것을 목표로 하는 프로젝트
    • 오픈소스 유지 관리와 관련된 반복 작업의 양을 줄일 수 있을 것
  • 대형 언어 모델(LLM)의 자연어 의미 분석 능력과 자연어 명령어와 프로그램 코드 간 변환 능력은 에이전트가 사람들과 더욱 원활하게 상호 작용할 수 있는 새로운 기회를 만듦
  • LLM은 에이전트의 일부분일 것이며, 에이전트 동작의 대부분은 표준적이고 결정적인 코드를 실행하는 것이 될 것
  • Oscar는 개발에 초점을 맞춘 LLM 사용과 달리 코드 작성 과정을 보완하거나 대체하려고 하지 않음
  • 대신 들어오는 이슈 처리, 질문을 기존 문서와 매칭하는 등 재미없는 부분에 초점을 맞추는 아이디어

프로젝트 목표

  • 이슈 해결을 위한 유지보수 노력 감소 [해결이 항상 수정을 의미하는 것은 아님]
  • 변경 목록(CL) 또는 pull request(PR) 해결을 위한 유지보수 노력 감소 [해결이 항상 제출/병합을 의미하는 것은 아님]
  • 포럼 질문 해결을 위한 유지보수 노력 감소
  • 더 많은 사람들이 생산적인 유지관리자가 될 수 있도록 지원

접근 방식

  • 오픈 소스 유지 관리의 반복 작업은 Go 프로젝트에만 국한된 것이 아니므로, 모든 소프트웨어 프로젝트가 재사용하고 확장할 수 있는 아키텍처를 구축하는 것이 목표
  • 현재까지 Oscar의 중요한 부분이 될 세 가지 기능을 식별:
    1. 기여자 상호 작용 중 관련 프로젝트 컨텍스트 인덱싱 및 노출
    2. 자연어를 사용하여 결정적 도구 제어
    3. 이슈 리포트와 CL/PR 분석을 통해 제출 중 또는 직후에 실시간으로 개선하고 적절하게 라벨링 및 라우팅

관련 프로젝트 컨텍스트 인덱싱 및 노출

  • LLM은 유사한 의미를 가진 문서를 유사한 방향을 가리키는 벡터로 매핑하는 특성이 있는 고차원 부동 소수점 단위 벡터인 임베딩을 생성하여 문서를 분석할 수 있음
  • 입력 벡터와 유사한 벡터를 검색하기 위한 벡터 데이터베이스와 결합하여 LLM 임베딩은 오픈 소스 프로젝트의 모든 컨텍스트를 색인화하는 매우 효과적인 방법을 제공
  • 프로토타입 에이전트는 이 기능을 구현하고 Go 저장소의 새로운 이슈에 응답하여 최대 10개의 높은 관련성을 가진 링크 목록을 제공

결정적 도구를 제어하기 위한 자연어 사용

  • 오픈 소스 프로젝트가 성장함에 따라 유용한 도구의 수가 증가하고 모든 도구를 추적하고 각각의 사용 방법을 기억하기 어려울 수 있음
  • LLM은 자연어로 작성된 의도와 프로그램 코드나 도구 호출과 같은 실행 가능한 형태의 의도 간 변환에 매우 효과적
  • 자연어 요청을 충족시키기 위해 사용 가능한 도구를 선택하고 호출하는 Gemini의 실험을 수행했지만 아직 실제 작동하는 것은 없음

이슈 리포트 및 CL/PR 분석

  • 관련 이슈에 대해 게시하는 것은 분석의 제한된 형태이지만, 성능에 대한 이슈를 식별하고 "성능" 레이블을 추가하는 등 다른 종류의 의미 분석을 추가할 계획
  • 리포트를 충분히 잘 분석하여 리포트를 유용하게 만들기 위해 더 많은 정보가 필요한지 여부를 식별할 수 있는지 여부를 탐색할 계획
  • 이러한 모든 분석과 결과적인 상호 작용은 리포트가 제출된 직후에 발생할 때 훨씬 더 잘 작동하며, 리포터가 여전히 사용 가능하고 참여하고 있을 때 작동

프로토타입

  • Oscar를 탐색하기 위한 첫 번째 프로토타입은 Gaby(Go AI bot)라고 하며 Go 이슈 트래커에서 실행되며 @gabyhelp으로 게시
  • 현재까지 Gaby는 GitHub에서 Go 이슈 내용을 인덱싱하고 go.dev에서 Go 문서를 인덱싱하며 새로운 이슈에 관련 링크로 응답
  • Gaby의 구조는 모든 종류의 호스팅 서비스에서 모든 LLM, 스토리지 계층 및 벡터 데이터베이스를 사용하여 실행하기 쉽게 만듦