2026年6月6日 2 分钟阅读

re_gent 完全指南:为 AI Agent 做版本控制,每次代码变更都可追溯

tinyash 0 条评论

AI Agent 帮你写了一堆代码,改了十几个文件,然后……它搞砸了。「刚才还能运行的,怎么不见了?」你翻看终端历史、搜索 Git 日志——但 Agent 的每一次编辑并没有留下独立记录。

re_gent(656⭐, Apache-2.0)正是为解决这个痛点而生。它是一个专为 AI Agent 设计的版本控制系统,自动记录 Agent 每次工具调用的操作、触发它的提示词、文件变更的上下文——不需要你手动提交,不需要改工作流。

为什么需要 re_gent?

Git 管理的是你「有意识」的提交:git commit -m "fix: 修复登录验证"。但 AI Agent 的工作方式是连续的、会话式的——它可能在一个会话中写 20 个文件,调用 5 次 Bash 命令,然后你突然发现某个文件被不该改的地方改了。

传统方法的局限:

场景GitClaude Code 历史re_gent
某行代码是谁让改的?Git blame 看到的是你的提交只能翻会话rgt blame 直接告诉你
回退到某次编辑前需要 Agent 有意识提交/compact 可能清空rgt show 查看,手动恢复
同时运行多个 Agent冲突管理复杂不支持rgt sessions 天然隔离
每步变更的对话上下文不记录会话内能查看rgt show 看到完整对话

re_gent 填补的是「AI Agent 每一步操作」这个 Git 不覆盖、会话历史不方便查的中间地带。

安装

推荐使用 Homebrew(macOS/Linux):

brew tap regent-vcs/tap
brew install regent

或者用 Go 安装:

go install github.com/regent-vcs/regent/cmd/rgt@latest

安装后验证:

rgt version

三分钟上手

进入你的项目目录,初始化 re_gent:

cd your-project
rgt init

这会创建一个 .regent/ 目录(就像 Git 的 .git/),用来存储 Agent 的活动记录。然后正常使用 Claude Code、Codex CLI 或 OpenCode——re_gent 会自动捕获每一次工具调用

运行一段时间后,查看 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 都对应 Agent 的一次工具调用——编辑、写入、Bash 命令等。

核心功能

1. 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"

这比 Git blame 多了一层信息:触发这行代码的提示词是什么。当你 review Agent 生成的代码时,这个功能帮你快速理解「为什么这里会这样写」。

2. rgt show:查看每步的完整上下文

只看 diff 往往不够——你想知道 Agent 做出这个修改时考虑了哪些对话?

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
+     }

Conversation:
User: "Add error handling to reject non-GET requests"
Assistant: "I'll add method validation to the handler..."

Conversation 字段是关键——它记录了触发此次编辑的用户输入和 Agent 的思考过程,让你在被问「为什么改这里」时有据可查。

3. rgt sessions:多 Agent 会话隔离

如果你同时运行多个 Agent(比如 Claude Code 改前端,Codex 改后端),re_gent 会为每个 Agent 维护独立的会话记录:

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

查看特定会话的历史:

rgt log --session claude_code:claude-20260502-143021

这样你在排查问题时,不会把两个 Agent 的变更混在一起。

4. 无需手动提交

re_gent 与 Git 最本质的区别就是 Agent 每执行一次工具调用,自动产生一个 step。开发者不需要执行 rgt commit,不需要记住「哦对了我应该记录一下」。Agent 那边的每一次 EditWriteBash 都会变成一条可追溯的记录。

re_gent 的架构

re_gent 将数据存储在项目根目录的 .regent/ 文件夹下:

.regent/
├── objects/     # BLAKE3 内容寻址的对象存储
├── refs/        # 每个 Agent 会话的指针
├── index.db     # SQLite 查询索引
└── config.toml

每个 step 是一个内容寻址的快照,包含父 hash、文件变更树、触发它的对话内容。这种设计与 Git 的 object store 类似,但针对 Agent 操作的工作流做了优化——不是按文件变更分组,而是按 Agent 的「一次思考 + 一次操作」分组。

与 Git 配合使用

re_gent 不是取代 Git,而是 Git 的上游补充:

  1. Agent 的工作被 re_gent 自动记录为 step
  2. 你 review 确认后,用 git add + git commit 将成果提交到 Git
  3. re_gent 的记录作为审计日志保留在 .regent/ 中,不上传到远程仓库

这种「Agent 步级追踪 + 开发者驱动的 Git 提交」的工作流,既保留了 Agent 操作的细粒度可见性,又不破坏 Git 的提交语义。

注意事项

  • 不共享.regent/ 应加入 .gitignore,它是本地审计日志,不是团队共享数据
  • 存储空间:内容寻址的对象存储会随着 Agent 使用量增长,建议定期清理历史较长的会话
  • 当前版本:re_gent 处于早期阶段(GitHub 656⭐,Apache-2.0),核心功能稳定但 API 可能变化
  • 支持的工具:Claude Code、Codex CLI、OpenCode 都已兼容,MCP 工具的自动追踪正在开发中

总结

AI Agent 生成代码的速度已经远超人类的审查速度,但「追踪每一行代码的来源」这个问题仍然缺少好用的工具。re_gent 填补了这个空白——它不是 Git 的替代品,而是为 AI 编程时代写的「Agent 活动日志」。

在 Agent 产生越来越多的代码的今天,一个能回答「为什么这里会这样写」的工具,可能比你想象的更有价值。

re_gent GitHub 仓库(656⭐ | Apache-2.0) – 安装:brew tap regent-vcs/tap && brew install regentgo install github.com/regent-vcs/regent/cmd/rgt@latest

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。