feder-cr/git-ai
Git designed for AI agents.
gitai – AI 에이전트를 위해 구축된 Git 스타일 버전 관리
그것이 무엇인가
- Anthropic의 Scion 논문에 설명된 설계를 따르는 오픈소스 서버 중심 VCS. 익숙한 Git 데이터 모델을 유지하면서 대부분의 작업(기록 쿼리, 병합, 충돌 해결 등)을 수천 개의 단기 코딩 에이전트로 확장할 수 있는 무상태 서버로 이동합니다.
- 서버는 커밋을 관계형 DB(SQLite 또는 PostgreSQL)에 저장하고 객체 팩을 모든 객체 스토리지 백엔드(로컬 파일, S3, GCS, Azure)에 저장합니다. 클라이언트는 gRPC를 통해 서버와 통신합니다.
- 이 프로젝트는 Scion 아이디어의 클린룸 재구현이며 MIT 라이선스입니다. GitLab의 Gitaly RPC 서버의 포크이므로 모든 표준 Git 배관 RPC가 계속 작동합니다.
주요 개념 및 기능
| 기능 | AI 에이전트에 어떻게 도움이 되는가 |
|---|---|
항상 온라인 클라이언트(graft clone, graft sparse) |
에이전트는 전체 저장소를 클론하는 대신 필요한 객체만 가져와 대역폭과 지연 시간을 절약합니다. |
| 서버 측 기록 API | 블레임, 경로 기록, 계보 및 코드 검색은 서버에서 커밋당 한 번 계산되고 메모이즈되어 비용이 많이 드는 클라이언트 측 순회를 제거합니다. |
병합 큐 없는 랜딩(UserLand) |
변경 사항은 팁에 리베이스되고 비교 및 교체를 통해 랜딩됩니다. 동시 랜딩은 단일 참조 업데이트로 일괄 처리되므로 많은 에이전트가 동시에 랜딩할 수 있습니다. |
| 플러그 가능한 충돌 해결 | 랜딩이 충돌할 때 서버는 버전 중립 프로토콜을 통해 모든 LLM 제공업체(또는 결정적 도구)를 호출하여 자동 해결할 수 있습니다. |
| 변경 집합 로그 | 모든 참조 업데이트는 작업 유형과 행위자와 함께 기록되어 에이전트에게 저장소 활동의 선형적이고 관찰 가능한 스트림을 제공합니다. |
| 무상태, 확장 가능한 스토리지 | SQLite/PostgreSQL의 쓰기 전 로그 + 객체 스토리지의 콘텐츠 주소 팩. 모든 서버 노드가 저장소 캐시를 재구축할 수 있어 수평 확장이 가능합니다. |
랜딩 후 검증(graft-verify) |
새 팁에서 테스트를 실행하고 실패를 이분하고 문제가 있는 변경 사항을 자동으로 롤백합니다. |
| 에이전트 중심 보안 | 에이전트별 토큰, RPC 허용 목록 및 분기 정책이 각 에이전트가 읽거나 쓸 수 있는 것을 제어합니다. |
캐싱 계층(graft-cache) |
데몬 및 지역 캐시는 불변 객체를 저장하고 읽기 시 검증하여 스토리지 백엔드 부하를 줄입니다. |
| 검토 및 승인 규칙 | 의미론적 규칙을 통해 단순한 댓글 전용 변경은 로직 변경보다 적은 승인을 요구하여 자동 검토를 가볍게 만듭니다. |
일반적인 사용 사례
- 대규모 코드 생성 파이프라인. 수백 개의 LLM 기반 에이전트가 작은 패치를 지속적으로 생성합니다.
- AI 생성 코드의 지속적 통합. 빠른 랜딩, 자동 테스트 및 빠른 롤백이 필요합니다.
- 다중 에이전트 개발 환경(예: 스웜 코딩, 페어 프로그래밍 봇). 병합 큐 병목 없이 단일 분기를 공유합니다.
- 엔터프라이즈 설정. 이미 GitLab/Gitaly를 사용하고 기존 도구를 포기하지 않고 AI 에이전트 친화적 계층을 추가하려는 경우.
현재 상태
- 버전 0.1.0(첫 공개 릴리스). 나열된 모든 Scion 아이디어가 구현되었으며 단위, 종단 간, 다중 노드, 충돌 및 퍼즈 테스트로 커버됩니다.
- 인터페이스는 아직 1.0 이전이며 변경될 수 있습니다. 객체 팩의 가비지 수집과 같은 알려진 격차는 문서화되어 있습니다.
시작하기
# 클론 및 빌드(Go 1.26, C 툴체인, Meson 및 Ninja 필요)
git clone https://github.com/feder-cr/git-ai.git
cd git-ai
make build # 서버, CLI, 도구를 _build/bin에 빌드
# 빠른 시작 데모 실행(서버, 캐시 데몬, 두 에이전트, 랜딩 시작)
examples/graft/quickstart.sh
# CLI 사용
./_build/bin/graft --help
- 프로덕션 서버를 실행하려면
examples/graft/config.toml을 편집(또는 자신의 것을 제공)하고_build/bin/gitaly serve config.toml로 시작합니다. [graft.storage]섹션을 추가하여 서버를 데이터베이스와 객체 스토리지 백엔드로 지정한 다음 섀도우 모드에서 기존 Git 저장소를 가져온 후 권위 모드로 전환합니다.
문서 및 심층 읽기
- 빠른 시작 및 구성 참조:
doc/graft/QUICKSTART.md,doc/graft/CONFIGURATION.md - 아키텍처 및 스토리지 설계:
ARCHITECTURE.md,STORAGE.md - 랜딩, 충돌 해결, 파생 데이터, 검토, 검색, 검증, 모니터링(“슈퍼팬”), 보안, 벤치마크, 퍼징 및 로드맵에 대한 자세한 문서는 모두
doc/graft/폴더에 있습니다.
커뮤니티
- 기여를 환영합니다: 이슈 제기, 설계 논의 시작, 테스트와 간단한 근거를 포함한 PR 제출.
- 프로젝트는 설계 문서(
PLAN*.md)의 커뮤니티 주도 진화를 장려합니다.
라이선스
- MIT 라이선스(
LICENSE참조).
gitai는 AI 기반 개발 팀에게 Git이 인간에게 제공하는 것과 동일한 신뢰성과 성능 보장을 제공하면서, 대규모 에이전트 코딩을 비현실적으로 만드는 인간 중심 병목 현상을 제거하는 것을 목표로 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트