<div align="center">
<a href="https://github.com/regent-vcs/regent">
<img
src="https://raw.githubusercontent.com/regent-vcs/re_gent/HEAD/assets/regent-logo-dark.png"
alt="re_gent"
width="100%"
/>
</a>
<br />
<br />
<h1>AI 에이전트를 위한 버전 관리 (Version Control)</h1>
<p>
에이전트가 무엇을 했는지, 어떤 프롬프트 (prompt)가 각 줄을 작성했는지 추적하고, 모든 단계를 검사하세요.
</p>
<br />
<a href="https://github.com/regent-vcs/regent">[Website]</a>
<a href="LICENSE">[License]</a>
<a href="go.mod">[Go Module]</a>
<br />
<a href="https://github.com/regent-vcs/regent/actions/workflows/ci.yml">[CI]</a>
<a href="CONTRIBUTING.md">[Contributing]</a>
<br />
<a href="https://github.com/regent-vcs/regent">[GitHub]</a>
<a href="https://github.com/regent-vcs/regent">[GitHub]</a>
<a href="https://github.com/regent-vcs/regent">[GitHub]</a>
<br />
<a href="https://discord.gg/Unf24KMh">[Discord]</a>
</div>
빠른 시작 (Quick Start)
brew tap regent-vcs/tap
brew install regent
...
끝입니다. 이제 에이전트의 활동을 감사 (auditable)할 수 있습니다.
데모 (Demo)
<div align="center">
<p><em>모든 에이전트 턴 (turn)이 자동으로 캡처됩니다. 수동 커밋 (commit)은 필요하지 않습니다.</em></p>
</div>
제공 기능
에이전트가 실제로 무엇을 했는지 확인
$ rgt log
Step a1b2c3d | 2분 전 | 도구 (Tool): Edit
...
Blame: 어떤 프롬프트가 이 줄을 작성했는가?
$ rgt blame src/handler.go:42
Line 42: func handleRequest(w http.ResponseWriter, r *http.Request) {
...
여러 개의 동시 세션 (concurrent sessions) 추적
$ rgt sessions
활성 세션 (Active Sessions):
...
모든 변경 사항에 대한 전체 컨텍스트 (full context) 확인
$ rgt show a1b2c3d
Step a1b2c3d4e5f6
...
존재 이유
AI 에이전트들은 자신들만의 버전 관리 (version control) 시스템이 없습니다.
여러분은 다음과 같은 고통을 알고 있습니다:
- *"5분 전에는 잘 작동했는데"
- "왜 그 파일을 변경했지?"
- *"리팩터링 (refactor) 하기 전으로 되돌려줘"
/compact를 입력하고 기도하기
- 새로운 채팅창에 코드를 복사해서 붙여넣기
이미 존재했어야 할 세 가지 기본 요소 (primitives):
rgt log — 이 세션이 무엇을 했는가?
rgt blame — 어떤 프롬프트가 이 줄을 작성했는가?
rgt show — 모든 단계의 전체 컨텍스트를 검사하라
우리는 에이전트에게 우리 코드베이스 (codebases)에 대한 쓰기 권한을 주었습니다. 하지만 그들을 위한 Git은 주지 않았습니다. re_gent가 그 문제를 해결합니다.
작동 방식
re_gent는 에이전트 활동을 .regent/ 디렉토리에 저장합니다 (.git/과 유사):
.regent/
├── objects/ # 콘텐츠 주소 지정된 블롭 (BLOBs, BLAKE3)
├── refs/ # 세션 포인터 (에이전트당 하나씩)
...
도구를 사용하는 모든 턴(turn)은 **스텝 (Step)**을 생성합니다. 이는 무엇이, 왜, 누구에 의해 변경되었는지에 대한 콘텐츠 주소 지정된 스냅샷 (content-addressed snapshot)입니다:
Step {
parent: <이전-스텝-해시>
tree: <워크스페이스-스냅샷>
...
스텝들은 **DAG (Directed Acyclic Graph, 유향 비순환 그래프)**를 형성합니다. 각 세션은 고유한 브랜치 (branch)를 가집니다. 공통 조상 (common ancestors)을 통해 중복을 제거합니다. 이를 통해 에이전트 활동에 대해 Git 수준의 감사 가능성 (auditability)을 확보할 수 있습니다.
기술적 세부 사항: 전체 사양은 POC.md를 참조하세요.
설치 방법
Homebrew를 통한 설치 (macOS/Linux)
brew tap regent-vcs/tap
brew install regent
이 명령은 rgt 커맨드를 설치하고 bash, zsh, fish를 위한 셸 완성 (shell completions)을 자동으로 설정합니다.
Go Install을 통한 설치
go install github.com/regent-vcs/regent/cmd/rgt@latest
셸 완성 (수동 설정):
rgt completion bash > /usr/local/etc/bash_completion.d/rgt
...
소스 코드를 통한 설치
git clone https://github.com/regent-vcs/regent
cd regent
go build -o rgt ./cmd/rgt
...
바이너리 릴리스 (Binary Releases)
GitHub Releases에서 미리 빌드된 바이너리를 다운로드하세요.
지원되는 도구
훅 (Hooks)은 rgt init 시 자동으로 구성됩니다. 수동 설정이 필요하지 않습니다.
커맨드
| 커맨드 | 설명 |
|---|
rgt init | 현재 디렉토리에 .regent/ 초기화 |
| ... | |
기능
기능
- Content-Addressed Storage (콘텐츠 주소 지정 저장소) — BLAKE3 해싱 (hashing), 자동 중복 제거 (deduplication)
- Fast Queries (빠른 쿼리) — SQLite 인덱스, 10ms 미만의 조회 (lookups)
- Per-Session DAG (세션별 DAG) — 별도의 참조 (refs)로 추적되는 동시 세션
- Conversation Tracking (대화 추적) —
/compact 및 /clear 명령 후에도 유지
- Hook-Driven (훅 기반) — Claude Code, Codex, OpenCode의 투명한 통합
- Zero Configuration (설정 불필요) —
rgt init 시 훅 (hooks) 자동 구성
- Concurrency-Safe (동시성 안전) — CAS 참조 (refs), ACID 트랜잭션 (transactions)
- Gitignore-Compatible (Gitignore 호환) —
.regentignore 지원
에디터 통합 (Editor Integration)
VSCode 확장 프로그램 (VSCode Extension)
에디터에서 직접 인라인 블레임 주석 (inline blame annotations)을 확인하세요:
기능:
- 어떤 단계가 각 라인을 수정했는지 보여주는 인라인 블레임 주석 (inline blame annotations)
- 전체 단계 컨텍스트(타임스탬프, 도구 이름, 인자)를 포함한 호버 툴팁 (hover tooltips)
- 사이드바의 세션 타임라인 뷰 (session timeline view)
- 클릭 한 번으로 대화 기록 (conversation history)에 접근
요구 사항: rgt CLI가 설치되어 있어야 하며, 프로젝트에서 rgt init이 실행되어 있어야 합니다.
확장 프로그램 문서 보기 →
re_gent vs Git
| Git | re_gent |
|---|
| 코드 추적 (Tracks code) | ✅ | ✅ |
| ... | | |
| re_gent은 Git을 대체하는 것이 아니라 보완합니다. 두 가지를 모두 사용하세요. | | |
로드맵 (Roadmap)
다음 기능을 포함하여 계획된 기능은 ROADMAP.md를 참조하세요:
- 비파괴적 되감기 (non-destructive rewind) 및 포크 (fork) 작업
- 추가 도구 어댑터 (Cursor, Cline, Continue)
- 세션 공유 및 병합 (merge) 지원
- 가비지 컬렉션 (garbage collection) 및 무결성 검증 (integrity verification)
기여하기 (Contributing)
기여를 환영합니다! 가이드라인은 CONTRIBUTING.md를 참조하세요.
빠른 시작 (Quick Start):
PR을 열기 전에:
사용된 기술
라이선스
Apache License 2.0
<div align="center">
<p>
<sub style="font-size: smaller;">Built by <a href="https://github.com/regent-vcs/regent/graphs/contributors">기여자들</a></sub>
</p>
<p>
<a href="https://discord.gg/Unf24KMh">Discord</a> •
<a href="https://github.com/regent-vcs/regent/discussions">토론</a> •
<a href="https://github.com/regent-vcs/regent/issues">이슈</a> •
<a href="POC.md">기술 사양</a>
</p>
</div>