Oak: система контроля версий, спроектированная для эпохи AI-агентов

Oak — это система контроля версий (VCS), созданная специально под рабочие процессы AI-агентов. Git и GitHub используют модель, которая изначально не разрабатывалась под агентов. Авторы Oak решили не патчить существующие инструменты, а построить фундамент с нуля — вокруг того, как агенты реально работают с кодом.


Зачем это нужно

Git заставляет клонировать всю историю репозитория до того, как можно открыть хоть один файл. На большом репозитории это минуты простоя — токены тратятся на ожидание прогресс-бара ещё до начала какой-либо работы.

Большой бинарный файл — например, чекпоинт нейросети на 4 ГБ — просто ломает Git. LFS — это отдельная квота, дополнительная конфигурация и ещё одна точка отказа; при этом повторно загружается весь файл, даже если изменился один тензор.

⚠ Проблема параллельных агентов
Параллельный запуск нескольких агентов в Git означает один общий .git-каталог, риск его повреждения, конфликты detached HEAD и состояния, которые «перетекают» между рабочими деревьями. Один сбой индекса — и все сессии встают.

Как работает Oak

Модель хранения и ветвления Oak настроена на высокий объём веток, постоянные снапшоты, параллельные сессии и большие файлы. Три ключевые идеи:

  • Branch-per-session — каждая агентная сессия получает собственную ветку
  • Branch descriptions — описание ветки вместо сообщений к каждому коммиту
  • Lazy mount (ленивое монтирование) — репозиторий монтируется без полного клонирования

Content-addressed storage (адресация по содержимому), content-defined chunking (разбивка на чанки по содержимому) и lazy mounts означают, что Oak никогда не перехеширует всё дерево и не передаёт данные, которые уже есть локально.

ℹ Производительность
По результатам бенчмарков медианная латентность p50 у Oak до 95% ниже, чем у Git — на начальных снапшотах, «грязных» снапшотах, операциях diff/status с большими бинарниками и при запуске агента.

Архитектура: два крейта Rust

Oak написан на Rust и организован как Cargo workspace с двумя компонентами:

КрейтПутьНазначение
oakvcs-corecore/Фундамент VCS: BLAKE3-хеширование, content-defined chunking, diff/merge, модель данных Blob/Manifest/Commit/Tree, бэкенды SQLite и Git
oakvcs-clicli/Бинарник oak, построенный поверх oakvcs-core

graph TD
    A[AI-агент
Claude / Codex / Cursor] --> B[oak CLI] B --> C[oakvcs-core] C --> D[BLAKE3 хеширование] C --> E[Content-defined chunking] C --> F[SQLite / Git бэкенд] B --> G[Lazy mount / ProjFS] B --> H[Branch-per-session]

Установка и совместимость

Oak находится в стадии публичной беты (v0.99.0). Установка на macOS и Linux — одной командой:

curl -fsSL oak.space/install | sh

Для Windows доступен отдельный исполняемый файл со страницы GitHub Releases, либо сборка через Cargo:

cargo install oakvcs-cli
💡 Windows: ленивое монтирование

Команда oak mount на Windows использует Projected File System (ProjFS) — опциональный компонент ОС. Его нужно включить один раз из PowerShell с правами администратора:

Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

Все остальные операции — clone, push, pull, commit — работают без ProjFS.

Для интеграции в сторонние инструменты oakvcs-core можно подключить как отдельную библиотеку без CLI-зависимостей:

[dependencies]
oakvcs-core = { version = "0.99.0", default-features = false }

Oak vs Git: сравнение подходов

АспектGitOak
КлонированиеПолная история до первого файлаLazy mount, файлы загружаются по запросу
Параллельные агентыОбщий .git, риск коррупцииИзолированная ветка и mount для каждой сессии
Большие файлыLFS — отдельная квота и конфигНативный chunking + дедупликация
Сообщения к коммитамОбязательны для каждого коммитаОписание ветки, коммиты без сообщений
ХешированиеSHA-1/SHA-256BLAKE3 (быстрее, криптостойкий)
ЛицензияGPL-2.0Apache-2.0

Контекст: VCS-ренессанс 2026 года

В 2026 году ландшафт систем контроля версий сместился от простого хостинга кода к Autonomous DevOps, где AI-агенты и Git-платформы неразрывно связаны. На этом фоне появляется сразу несколько альтернатив Git: Lore от Epic Games — централизованная VCS с адресацией по содержимому, Jujutsu от Google и теперь Oak.

«Версионный контроль на скорости агентов» — так авторы Oak формулируют свою миссию. Не надстройка над Git, а новый фундамент.

Git превосходно справляется с тем, для чего был создан: люди делают осознанные изменения, проверяют патчи и сохраняют распределённую историю, способную пережить десятилетия. Oak не претендует на замену Git в этих сценариях — вы приносите своего агента (Claude Code, Codex, Cursor), Oak — это VCS под ним.

📝 Типичный агентный воркфлоу в Oak
# Смонтировать репо без полного клона
oak mount oak/myproject

# Создать ветку для сессии агента
oak switch -c feat/refactor-auth

# Добавить описание ветки (вместо сообщений коммитов)
oak desc "Replace REST auth with OAuth + PKCE"

# Слить в main одним squash-коммитом
oak mergesquash

Проект распространяется под лицензией Apache-2.0, репозиторий открыт на oak.space/oak/oak. Примечательно, что сам репозиторий Oak разрабатывается с жёсткими правилами для агентов: они не должны мутировать канонические чекауты или оставлять локальные чекпоинты невидимыми для ревьюеров — Oak ест собственную еду.