Code-Graph-RAG: граф знаний для вашего монорепо
Обзор Code-Graph-RAG — open-source RAG-системы для анализа, запросов и редактирования многоязычных кодовых баз на основе графов знаний.
Code-Graph-RAG: граф знаний для вашего монорепо
Что это и для кого
Code-Graph-RAG — это точная RAG-система, которая анализирует многоязычные кодовые базы с помощью Tree-sitter, строит комплексные графы знаний и позволяет выполнять запросы на естественном языке к структуре кода, а также редактировать его.
Инструмент разбирает многоязычную кодовую базу с помощью Tree-sitter, строит граф её структуры в Memgraph и позволяет запрашивать, редактировать и оптимизировать код на простом английском языке — в том числе в монорепо со смешанными языками под единой схемой графа.
Проект создан для:
- Разработчиков и техлидов, работающих с большими монорепозиториями
- Команд, использующих Claude Code, Cursor, Windsurf и другие AI-ассистенты
- DevOps и архитекторов, которым нужен быстрый анализ зависимостей между компонентами
- Компаний с требованиями безопасности, которым нужно развёртывание без доступа к внешним серверам
Архитектура: как это работает
Исходный код поступает в парсер Tree-sitter, который выполняет AST-анализ и строит граф знаний в Memgraph. Пользовательский запрос обрабатывается AI-моделью, генерирующей Cypher-запрос, — результаты запроса к графу превращаются в ответ.
graph LR
A[Исходный код] --> B[Tree-sitter Parser]
B --> C[AST-анализ]
C --> D[Memgraph Knowledge Graph]
E[Запрос пользователя] --> F[AI-модель Cypher Gen]
F --> G[Cypher Query]
G --> D
D --> H[Результаты]
H --> I[Ответ / Редактирование]
Парсер на основе Tree-sitter читает кодовую базу и загружает функции, классы, методы, модули и их отношения в Memgraph в рамках единой языково-независимой схемы.
Ключевые возможности
🌐 Поддержка множества языков
Python, TypeScript, TSX, JavaScript, Rust, Go, Java, C, C++, C#, PHP, Lua и Dart поддерживаются полностью. Scala находится в разработке, Ruby имеет структурную поддержку (модули, функции, классы и импорты) через подключаемый уровень ast-grep.
🔍 Семантический поиск по коду
Добавлен поиск кода на основе намерений с использованием эмбеддингов UniXcoder. Это позволяет находить функции по описанию их назначения (например, «функции обработки ошибок», «код аутентификации»), а не по точным именам.
🤖 AI-генерация Cypher-запросов
Система интегрирует LLM-бэкенды (Google Gemini, OpenAI, Ollama) для перевода естественного языка в Cypher-запросы и обеспечивает редактирование кода на основе AST, анализ зависимостей и генерацию графов вызовов для поддерживаемых языков.
✏️ AI-редактирование и оптимизация кода
Хирургическая замена кода с AST-таргетингом функций, визуальный предпросмотр diff и точное изменение блоков кода.
Можно направлять процесс оптимизации, используя собственные стандарты кодирования: cgr optimize python --repo-path /path/to/your/repo --reference-document /path/to/best_practices.md.
🔗 MCP-сервер (интеграция с Claude Code и др.)
Code-Graph-RAG работает как MCP-сервер, что позволяет Claude Code и другим MCP-клиентам напрямую запрашивать и редактировать кодовую базу.
Code-Graph-RAG совместим с Claude Code, Claude Desktop, Cursor, VSCode Copilot, Windsurf, Continue Dev, Gemini CLI, Amp, Roo Code и Goose.
🔄 Обновление графа в реальном времени
Для активной разработки граф знаний можно поддерживать в автоматической синхронизации с изменениями кода с помощью updater’а реального времени. Это особенно полезно, когда вы активно изменяете код и хотите, чтобы AI-ассистент всегда работал с актуальной структурой кодовой базы.
🔎 Структурный поиск и замена
Поиск и перезапись кода по AST-паттерну с помощью ast-grep, доступные в виде инструментов агента, позволяют сопоставлять и трансформировать структуру по всей кодовой базе — вместо текстового или regex-поиска.
Установка
Пакет cgr опубликован на PyPI. Рекомендуется устанавливать глобально с экстрами treesitter-full (все языки) и semantic (векторный поиск). Также потребуются Docker (для Memgraph), cmake и ripgrep.
# Установка через uv (рекомендуется)
uv tool install "code-graph-rag[treesitter-full,semantic]"
# или через pipx
pipx install "code-graph-rag[treesitter-full,semantic]"
Пример индексации репозитория:
python -m codebase_rag.main start --repo-path /path/to/your/repo --update-graph
Подключение как MCP-сервер к Claude Code:
claude mcp add --transport stdio code-graph-rag \
--env TARGET_REPO_PATH=/absolute/path/to/your/project \
--env CYPHER_PROVIDER=openai \
--env CYPHER_MODEL=gpt-4 \
--env CYPHER_API_KEY=your-api-key \
-- uv run --directory /path/to/code-graph-rag code-graph-rag mcp-server
uv вместо pip или pipx — он значительно быстрее разрешает зависимости и рекомендован самими авторами проекта.Тарифы и цены
Code-Graph-RAG — open-source проект, бесплатный для самостоятельного использования. Для организаций, которым нужно больше, предлагаются полностью управляемые облачные решения и on-premise развёртывания: облачное развёртывание включает управляемую инфраструктуру для базы данных графов и подключения AI-агента с нулевыми накладными расходами на инфраструктуру.
Доступно также on-premise и air-gapped развёртывание — полностью внутри инфраструктуры клиента, включая изолированные сети. Это обеспечивает полный суверенитет данных для регулируемых отраслей и организаций с требованиями к безопасности.
Команда также предлагает кастомную разработку, консультации по интеграции, контракты на техническую поддержку и обучение команд.
| Вариант | Стоимость | Для кого |
|---|---|---|
| Self-hosted (open-source) | Бесплатно | Разработчики, стартапы |
| Cloud-Hosted | По запросу | Команды без DevOps |
| On-Premise / Air-Gapped | По запросу | Регулируемые отрасли |
| Поддержка и консалтинг | По запросу | Enterprise |
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Полностью open-source и бесплатен | Требует Docker + Memgraph (инфраструктурный порог) |
| Поддержка 14 языков программирования | Производительность на больших монорепо (>100k файлов) не задокументирована |
| Граф знаний точнее вектора на multi-hop запросах | Версия ещё молодая (v0.0.5x), возможны breaking changes |
| MCP-интеграция с большинством AI-IDE | Требует Python 3.12+, cmake, ripgrep |
| Поддержка Gemini, OpenAI, Ollama | Нет встроенного SAST / анализа уязвимостей |
| Real-time обновление графа | Облачный тариф — только по запросу, без прозрачных цен |
| Reference-guided оптимизация по своим стандартам | Документация местами не полная для новых языков |
Сравнение с альтернативами
| Параметр | Code-Graph-RAG | Codebase RAG (allentcm) | GitHub Copilot Workspace |
|---|---|---|---|
| Подход | Graph RAG (AST + Граф) | Vector RAG | LLM + контекст файлов |
| Open Source | ✅ Да | ✅ Да | ❌ Нет |
| Поддержка языков | 14+ | Любые (текст) | 10+ |
| Multi-hop запросы | ✅ Отлично | ⚠️ Ограничено | ⚠️ Зависит от контекста |
| MCP-интеграция | ✅ Нативно | ✅ Есть | ❌ Нет |
| Self-hosted | ✅ Да | ✅ Да | ❌ Только облако |
| Редактирование кода | ✅ AST-хирургия | ❌ Только поиск | ✅ Есть |
| Инфраструктура | Docker + Memgraph | Минимальная | Ничего |
| Стоимость | Бесплатно / Enterprise | Бесплатно | Платно ($19+/мес) |
AST-производный граф знаний строится за секунды и обеспечивает детерминированное покрытие кодовой базы — в отличие от LLM-генерируемых графов, где часть файлов может быть пропущена.
Инструменты типа Code Graph RAG используют подход Graph RAG: они разбирают абстрактное синтаксическое дерево кода, чтобы построить граф отношений (например, эта функция вызывает ту, этот класс наследует от другого), что принципиально отличает их от векторного поиска.
Вердикт
Code-Graph-RAG подойдёт:
- Командам с большими многоязычными монорепозиториями
- Тем, кто использует Claude Code, Cursor или Windsurf и хочет дать AI реальное понимание структуры кода
- Организациям с требованиями к data sovereignty (air-gapped режим)
- Разработчикам, которым нужен не просто поиск, но и AI-редактирование кода по архитектурным стандартам
Не подойдёт:
- Тем, кто хочет zero-config решение без инфраструктурных зависимостей
- Проектам, где нужен аудит безопасности / SAST
- Командам на очень маленьких репозиториях, где хватит обычного контекстного окна LLM
Оценка
| Критерий | Оценка |
|---|---|
| Функциональность | ⭐⭐⭐⭐⭐ 9/10 |
| Простота установки | ⭐⭐⭐ 6/10 |
| Поддержка языков | ⭐⭐⭐⭐⭐ 9/10 |
| Интеграции (MCP) | ⭐⭐⭐⭐⭐ 9/10 |
| Зрелость проекта | ⭐⭐⭐ 7/10 |
| Итог | 8/10 |
Code-Graph-RAG — один из наиболее амбициозных open-source инструментов для работы с кодом на основе RAG. Он решает реальную проблему: традиционный векторный поиск плохо справляется с многоуровневыми архитектурными запросами к большим кодовым базам, тогда как граф знаний на основе AST даёт детерминированное и структурно точное покрытие. Если вы готовы к первоначальной настройке инфраструктуры и работаете с нетривиальными монорепозиториями — этот инструмент способен кардинально изменить то, как ваша команда взаимодействует с кодом через AI.