Проблема классического Git для AI
Классические системы контроля версий проектировались для людей: разработчик клонирует репозиторий, работает часами и делает один пуш. AI-кодеры работают иначе: тысячи короткоживущих задач, каждая из которых затрагивает несколько файлов и требует фиксации за секунды. Полные клоны, очереди слияния (merge queues) и обход истории на клиенте становятся узким местом.
Anthropic разработала внутреннюю систему Scion для решения этой проблемы, но она закрыта. Проект gitai (находится в репозитории feder-cr/git-ai) — это открытая реализация этой концепции на MIT-лицензии, позволяющая любому запустить сервер, оптимизированный для работы с AI-агентами.
Ключевые архитектурные отличия
gitai переносит вычислительную нагрузку на сервер. Клиенты остаются онлайн и запрашивают только необходимые данные. Основные изменения касаются хранения, слияния и разрешения конфликтов:
| Функция | Классический Git | gitai (Scion Design) |
|---|---|---|
| Клиент | Полный клон, локальная история | Объектный сервис (ObjectService), спарс-клоны (graft clone/sparse) |
| Слияние (Landing) | Очередь слияний, ручное разрешение | Compare-and-swap, батчинг изменений в одну операцию |
| Конфликты | Ручное вмешательство | Автоматическое разрешение через LLM или детерминированные инструменты |
| История и поиск | Локальный обход (walk) | Серверные вычисления, кэширование производных данных (memoized) |
| Хранение | Локальные pack-файлы | SQLite/PostgreSQL + Object Storage (S3, GCS, Azure), stateless-серверы |
Безопасность и интеграция
Система поддерживает AI-агентов как полноправных пользователей:
- Персональные токены и RPC-белые списки для каждого агента.
- Проверка после фиксации: утилита
graft-verifyтестирует кончик ветки, бисектит сбой и автоматически откатывает сломанное изменение. - Мониторинг: агенты-«фанаты» (superfans) следят за потоком изменений (changeset stream) и отправляют отчеты, в том числе в Slack.
- Vendor-neutral: сервер не вызывает языковые модели напрямую; интеграция с провайдерами LLM происходит через нейтральный протокол.
Запуск и статус проекта
Проект находится на стадии Version 0.1.0. Он требует Linux/macOS, Go 1.26 и компилятора C. Сборка включает собственный Git для совместимости.
Для запуска сервера используется команда gitaly serve config.toml. Репозитории можно импортировать в режиме shadow, а затем переключаться в authoritative. Архитектура масштабируется за счет добавления узлов-кэшей, которые могут быть перестроены из объектного хранилища.
Источник: Github ↗
