基于 Rust 开发的 AI 代理原生版本控制系统,兼容 Git 磁盘格式,通过 MCP 协议支持 AI 编码助手直接参与代码生命周期管理,集成 SQLite 与 S3 存储架构以适配 Monorepo 场景。
项目概述#
Libra 是一个正在演进的 AI 代理原生版本控制系统,由 web3infra-foundation 组织维护。项目试图解决传统版本控制系统在 AI 时代面临的两个核心痛点:一是缺乏原生的 AI 代理交互接口,二是在超大规模 Monorepo 场景下的存储与性能瓶颈。
- 主要语言: Rust (99.1%)
- 当前版本: 0.1.0
- 开发活跃度: 142 commits, 60+ contributors, 5 open issues, 1 PR
核心能力#
Git 兼容性#
- 与 Git 本质兼容,参考 Git 官方文档开发
- 磁盘格式支持: objects, index, pack, pack-index
- 远程操作: 支持与标准 Git 远程仓库交互(push/pull)
- 工作树管理: 完全兼容
git worktree的子命令集
AI 代理集成#
提供三种操作模式:
- TUI 模式(默认): 交互式终端用户界面 + 后台 Web 服务器
- Web 模式: 仅 Web 服务器,适合远程开发
- Stdio 模式(MCP): Model Context Protocol 服务器,用于 Claude Desktop 等 AI 客户端集成
代理工作流设计#
- Phase 0: 输入预处理(意图提取、风险评估、沙盒环境)
- Phase 1: 规划与任务图生成(DAG 生成、执行计划)
- Phase 2: 任务执行(上下文注入、代码生成、三层验证)
- Phase 3: 系统级验证与安全审计
- Phase 4: 决策与发布(基于风险评分的自动化/人工审查)
存储架构创新#
- SQLite 数据库: 使用 SQLite 管理配置、HEAD、refs 等,提供统一的事务性管理
- S3 兼容对象存储: 支持 AWS S3、Cloudflare R2、MinIO 等作为本地存储的替代或补充
- 分层存储: 小对象同时存储在本地和远程,大对象存储在远程,本地使用 LRU 缓存
Monorepo 设计#
- 不提供 submodule/subtree 命令
- 简化依赖管理,支持超大仓库,保持单一事实来源
CLI 命令支持#
已实现: init, clone, add, rm, restore, status, clean, stash, lfs, log, show, branch, tag, commit, switch, rebase, merge, reset, cherry-pick, push, fetch, pull, diff, blame, revert, remote, open, config, reflog, worktree
待实现: gc, prune, fsck, maintenance, cat-file, hash-object, rev-parse, rev-list, describe, show-ref, symbolic-ref, verify-pack, pack-objects/unpack-objects, ls-remote, grep, bisect, filter-branch, notes, archive
快速开始#
# 构建
cargo build
# 启动交互式 TUI
libra
# 初始化仓库
libra init
# 克隆仓库
libra clone <repository>
# 启动 Libra Code(TUI + Web)
libra code
# MCP Stdio 模式
libra code --stdio
Claude Desktop 集成配置#
{
"mcpServers": {
"libra": {
"command": "/path/to/libra",
"args": ["code", "--stdio"],
"cwd": "/path/to/your/libra/repo"
}
}
}
S3 存储配置#
| 变量 | 描述 | 必需 | 默认值 |
|---|---|---|---|
| LIBRA_STORAGE_TYPE | 存储后端类型:s3 或 r2 | 是 | - |
| LIBRA_STORAGE_BUCKET | 存储桶名称 | 是 | libra |
| LIBRA_STORAGE_ENDPOINT | S3 兼容端点 URL | 是(R2) | AWS S3 默认 |
| LIBRA_STORAGE_ACCESS_KEY | 访问密钥 ID | 是 | - |
| LIBRA_STORAGE_SECRET_KEY | 秘密访问密钥 | 是 | - |
| LIBRA_STORAGE_THRESHOLD | 分层存储大小阈值(字节) | 否 | 1048576 (1 MB) |
| LIBRA_STORAGE_CACHE_SIZE | 本地缓存大小限制(字节) | 否 | 209715200 (200 MB) |
适用场景#
- AI 辅助开发:AI 代理与人类协作驱动的版本控制
- 大仓库管理:Monorepo 架构下的版本控制需求
- 云原生存储:需要 S3 兼容存储后端的场景
- 跨平台开发:支持 Windows/Linux/macOS
待确认信息#
- 仓库目前无正式 release 发布
- 作为 0.1.0 版本且部分 Git 命令未实现,生产环境适用性需评估
- 未找到与 Git 的性能对比数据
- 未找到预编译二进制下载链接,需从源码构建
- libra.tools 域名当前为停放域名,与项目关系待确认