feder-cr/git-ai

Git designed for AI agents.

gitai – 为 AI 代理构建的 Git 风格版本控制

它是什么

  • 一个开源的、以服务器为中心的 VCS,遵循 Anthropic 的 Scion 论文中描述的设计。它保留了熟悉的 Git 数据模型,但将大多数操作(历史查询、合并、冲突解决等)移至可扩展到数千个短命编码代理的无状态服务器。
  • 服务器将提交存储在关系数据库(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
  • 关于落地、冲突解决、派生数据、审查、搜索、验证、监控(“superfans”)、安全、基准测试、模糊测试和路线图的详细文档都在 doc/graft/ 文件夹中。

社区

  • 欢迎贡献:提交问题、开始设计讨论、提交带有测试和简短理由的 PR。
  • 该项目鼓励社区驱动的设计文档演进(PLAN*.md)。

许可证

  • MIT 许可证(参见 LICENSE)。

gitai 旨在为 AI 驱动的开发团队提供 Git 为人类提供的相同可靠性和性能保证,同时消除使大规模代理编码不切实际的人类中心瓶颈。

相关

  • 项目
  • 项目
  • 项目
  • 项目