AI 에이전트를 위한 깃(Git), Regent
AI 에이전트의 모든 동작을 자동으로 추적하고 버전 관리해주는 새로운 오픈소스 도구인 Regent가 소개되었습니다. 개발자는 수동 커밋 없이도 에이전트가 변경한 코드 내역과 어떤 프롬프트가 해당 코드를 작성했는지 'rgt blame' 기능을 통해 추적할 수 있으며, 문제 발생 시 이전 단계로 되돌리는 'rewind' 기능도 곧 지원될 예정입니다.
AI 에이전트를 위한 깃(Git): AI 에이전트 활동을 위한 버전 관리 시스템입니다. 에이전트가 수행한 작업을 추적하고, 각 코드 라인을 작성한 프롬프트를 확인하며, 문제가 발생했을 때 이전 상태로 되돌릴 수 있습니다.
데모: 모든 도구 호출(tool call)이 자동으로 캡처되며, 수동 커밋은 필요하지 않습니다.
빠른 시작:
Homebrew를 통한 설치 (macOS/Linux)
brew tap regent-vcs/tap brew install regent
또는 Go를 통한 설치
go install github.com/regent-vcs/regent/cmd/rgt@latest
프로젝트 초기화
cd your-project rgt init
Claude Code를 평소처럼 사용합니다 (모든 도구 호출이 추적됩니다)
작업 기록 확인
rgt log rgt blame src/file.go:42
이게 전부입니다. 이제 에이전트의 모든 활동을 감사(Auditable)할 수 있습니다.
[무엇을 얻을 수 있나요?] 에이전트가 실제로 한 일을 확인하세요: $ rgt log Step a1b2c3d | 2분 전 | Tool: Edit │ 파일: src/handler.go │ 요청 핸들러에 에러 처리 추가 │ + 5줄, - 2줄 Step d4e5f6g | 5분 전 | Tool: Write │ 파일: tests/handler_test.go │ 핸들러 유닛 테스트 생성 │ + 23줄 Step f8g9h0i | 8분 전 | Tool: Bash │ 명령어: go mod tidy │ 의존성 정리
Blame: 어떤 프롬프트가 이 줄을 작성했을까요? $ rgt blame src/handler.go:42 Line 42: func handleRequest(w http.ResponseWriter, r * http.Request) { Step: a1b2c3d4e5f6 Session: claude-20260502-143021 Tool: Edit Prompt: " 요청 핸들러에 에러 처리 추가 "
여러 동시 세션 추적: $ rgt sessions Active Sessions: claude-20260502-143021 | 3단계 | 마지막 활동: 2분 전 claude-20260502-091534 | 7단계 | 마지막 활동: 2시간 전
$ rgt log --session claude-20260502-143021 # 세션별 기록 필터링
변경 사항에 대한 전체 맥락 확인: $ rgt show a1b2c3d Step a1b2c3d4e5f6 Parent: d4e5f6g7h8i9 Session: claude-20260502-143021 Time: 2026-05-02 14:30:21 Tool: Edit File: src/handler.go Changes:
- func handleRequest(w http.ResponseWriter, r * http.Request) {
- if r.Method != " GET " {
- http.Error(w, " Method not allowed " , 405)
- return
- }
- func handleRequest(w http.ResponseWriter, r * http.Request) { Conversation: User: " GET 요청이 아닌 것을 거부하는 에러 처리 추가 " Assistant: " 핸들러에 메서드 검증을 추가하겠습니다... "
[왜 이 도구가 필요한가?] 문제: AI 에이전트에는 자체적인 버전 관리 시스템이 없습니다. 다음과 같은 고통을 알 것입니다: "5분 전까지만 해도 잘 작동했는데", "왜 그 파일을 변경한 거야?", "리팩토링 전으로 돌아가", /compact 명령어 치고 기도하기, 새 채팅창에 코드 복사-붙여넣기 하기.
해결책: 이미 존재했어야 할 세 가지 기본 기능: rgt log — 이 세션에서 무엇을 했는가? rgt blame — 어떤 프롬프트가 이 줄을 작성했는가? rgt rewind — 이전 단계로 복원 (출시 예정)
우리는 AI 에이전트에게 코드베이스 쓰기 권한을 주었지만, 그것을 관리할 깃(Git)은 우리 자신에게 주지 않았습니다. re_gent가 이 문제를 해결합니다.
[작동 방식] re_gent는 에이전트 활동을 .git/과 유사한 .regent/ 디렉토리에 저장합니다: .regent/ ├── objects/ # 콘텐츠 주소 지정 블롭 (BLAKE3) ├── refs/ # 세션 포인터 (에이전트당 하나) ├── index.db # SQLite 쿼리 인덱스 └── config.toml
모든 도구 호출은 하나의 Step을 생성합니다: Step { parent : < previous - step - hash > tree : < workspace - snapshot > transcript : < conversation - delta > cause : { tool_name : "Edit" args : < what - changed > result : < tool - output > } session_id : "claude-20260502-143021" timestamp : "2026-05-02T14:30:21Z" }
이러한 Step들은 DAG(방향성 비순환 그래프)를 형성합니다. 각 세션은 고유한 브랜치를 가집니다. 공통 조상은 중복 제거됩니다. 이를 통해 AI 에이전트 활동에 대해 깃(Git) 수준의 감사 기능을 제공합니다. 기술적 세부 사항은 전체 사양을 위해 POC.md를 참조하세요.
[설치 방법] Homebrew를 통한 설치 (macOS/Linux) brew tap regent-vcs/tap brew install regent 이 명령은 regent와 rgt 명령어(두 개는 동일함)를 모두 설치하며, bash, zsh, fish를 위한 셸 자동완성을 자동으로 설정합니다.
Go Install을 통한 설치 go install github.com/regent-vcs/regent/cmd/rgt@latest rgt 명령어를 설치합니다.
셸 자동완성 (수동 설정):
Bash
rgt completion bash > /usr/local/etc/bash_completion.d/rgt
Zsh
rgt completion zsh > " ${fpath[1]} /_rgt "
Fish
rgt completion fish > ~ /.config/fish/completions/rgt.fish
소스에서 빌드: git clone https://github.com/regent-vcs/regent cd regent go build -o rgt ./cmd/rgt sudo mv rgt /usr/local/bin/