AI Agent 也需要版本控制:re_gent 让 AI 编程助手的每一次改动都可追溯
用过 AI 编程助手的开发者应该都有过这种经历:
你让 Claude Code 重构一个模块,它连续写了 5 个文件、跑了 3 遍测试、改了一大堆代码。看起来不错——直到你发现某个旧功能被不小心移除了。你想知道”到底是哪条提示词导致删了那行代码”,结果只能靠记忆回放,或者更糟——硬着头皮让 Agent 再改回去。
这不是个例。AI Agent 每次启动都是一个全新的上下文窗口。Agent 没有原生的版本控制机制。/compact 和祈祷成了唯一的”恢复方案”。
re_gent 就是来解决这个问题的——一个专门为 AI 编程 Agent 设计的版本控制系统。它不是 Git 的替代品,而是 Git 做不到的那些事的补充。
re_gent 是什么
re_gent(全称 “Version Control for AI Agents”)是一个开源的 CLI 工具,内置 BLAKE3 内容寻址存储和 SQLite 查询索引,自动记录 AI 编程 Agent 的每一次工具调用、文件变更和对应的对话上下文。
安装很简单:
brew tap regent-vcs/tap brew install regent go install github.com/regent-vcs/re_gent/cmd/rgt@latest
然后在项目目录初始化:
cd your-project rgt init
之后你正常用 Claude Code、OpenAI Codex 或 OpenCode 工作,re_gent 会自动跟踪所有 Agent 活动。你不必做任何额外操作。
三个最实用的命令
rgt log:Agent 干了什么,一目了然
$ rgt log Step a1b2c3d | 2 min ago | Tool: Edit │ File: src/handler.go │ Added error handling to request handler │ + 5 lines, - 2 lines Step d4e5f6g | 5 min ago | Tool: Write │ File: tests/handler_test.go │ Created unit tests for handler │ + 23 lines Step f8g9h0i | 8 min ago | Tool: Bash │ Command: go mod tidy │ Cleaned up dependencies
每一条记录都精确到 Agent 调用了什么工具、改了哪个文件、增加了多少行。不再需要靠猜来判断 Agent 刚刚做了什么。
rgt 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: "Add error handling to the request handler"
这是 re_gent 最强大的功能。当你看到一行有问题的代码,可以直接追溯到发起修改的那条提示词。对于代码审查和问题排查来说,这简直就是时光机。
rgt show:查看任何一步的完整上下文
$ 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: "Add error handling to reject non-GET requests"
Assistant: "I'll add method validation to the handler..."
rgt show 不仅展示变更 diff,还保留了你和 Agent 当时的完整对话。这是 Agent 版本控制最有价值的部分——Git 只告诉你改了哪行,re_gent 告诉你为什么改。
实际应用场景
场景一:多会话并行开发
一个常见的工作流是同时开多个 Agent 会话——一个在重构后端,一个在写前端组件,还有一个在跑测试。re_gent 的 rgt sessions 可以列出所有活跃会话,rgt log --session 只看特定会话的活动。
$ rgt sessions Active Sessions: claude_code:claude-20260502-143021 | 3 steps | Last: 2 min ago codex_cli:codex-20260502-091534 | 7 steps | Last: 2 hours ago
场景二:Agent 搞砸了,快速回滚
Agent 有时会写出不如人意的代码。用 rgt log 找到”搞砸之前”的那一步,记下 hash,然后切到 Git 分支执行 git checkout 回滚文件。re_gent 虽然没有自动回滚功能,但它精确告诉你回滚到哪一步。
场景三:代码审查时追溯 Agent 行为
当团队成员提交了一段明显是 AI 生成的代码,审查者可以用 rgt blame 检查每行代码的出处。如果某段代码写得不对,可以直接定位到 Agent 的对话上下文,节省大量 Reviewer 的时间。
存储与隐私
re_gent 的数据存储在项目本地 .regent/ 目录中,类似于 .git/:
.regent/ ├── objects/ # 内容寻址 blob 存储(BLAKE3) ├── refs/ # 会话指针 ├── index.db # SQLite 查询索引 └── config.toml
所有数据 100% 本地存储,不发送到任何外部服务。如果你用 .gitignore 把 .regent/ 排除在外,这些数据就只有你自己能看到。
与其他工具对比
| 能力 | Git | re_gent |
|---|---|---|
| 记录文件变更 | ✅ | ✅ |
| 追溯对话上下文 | ❌ | ✅ |
| 按提示词查找 | ❌ | ✅ |
| 多 Agent 会话管理 | ❌ | ✅ |
| 手动提交 | 需要 | 自动 |
| 支持 Claude Code / Codex | 间接 | 原生 |
Git 管理的是代码的”成品”,re_gent 管理的是 Agent 的”创作过程”。两者互补,而不是替代。
写在最后
re_gent 自 2026 年 4 月底发布以来,已经收获了 600+ GitHub Stars,社区活跃度很高。它解决了一个非常具体但又很普遍的痛点——Agent 行为不可追溯。
如果你正在大量使用 AI 编程 Agent 进行开发,re_gent 是一个值得配进工作流的工具。安装只要 10 秒,不需要改变你使用 Agent 的任何习惯,但当你需要排查”Agent 刚才到底干了什么”的时候,它会让你觉得——这个工具早就该出现了。
GitHub: github.com/regent-vcs/re_gent(636 Stars | Apache 2.0 协议)