Вернуться на главную

CodeGraph — техническое описание

Гибридный многоагентный RAG + граф свойств кода (CPG) для интеллектуального анализа кода

Версия 3.0 Февраль 2026 ~15 минут чтения

1. Аннотация

Проблема: Разработчики тратят 60% рабочего времени на понимание существующего кода. Традиционные инструменты (grep, IDE, ChatGPT) не справляются с контекстным анализом больших кодовых баз.

Решение: CodeGraph объединяет гибридный RAG (векторный + графовый поиск) с графом свойств кода (CPG) для мгновенного ответа на вопросы о коде с полным пониманием контекста.

Результат: 95.6% точность на бенчмарке из 160 вопросов, ускорение анализа кода в 10–600 раз, собственный CPG-генератор GoCPG с 30–60x ускорением.

95.6% Точность (153/160)
21 Готовых сценариев
11 Языков программирования
87K+ Методов в CPG

2. Проблема

Корпоративная разработка сталкивается с критическими проблемами при работе с большими кодовыми базами. Эти проблемы приводят к потере продуктивности, пропущенным уязвимостям и замедлению разработки.

Проблема Масштаб Источник
Разработчики тратят 60% времени на понимание существующего кода 90,000 разработчиков GitHub Survey 2023
Ручной code review пропускает до 80% уязвимостей 100+ корпоративных проектов Отчёт NIST
Онбординг новых сотрудников занимает 3-6 месяцев Отраслевой стандарт Опросы CTO
Документация устаревает за 2-4 недели 500+ команд Опрос разработчиков
Аудит безопасности занимает 2-4 недели вручную Корпоративные проекты Отраслевой бенчмарк

Стоимость проблемы

Для команды из 50 разработчиков со средней зарплатой 200,000 руб./мес потери составляют:

3. Предпосылки: почему традиционные подходы не работают

Существующие инструменты анализа кода имеют фундаментальные ограничения:

Текстовый поиск (grep, IDE search)

Статический анализ (SonarQube, CodeQL)

ChatGPT / Copilot

Вывод: Требуется система, которая сочетает семантическое понимание LLM с полным знанием структуры кодовой базы через граф кода (CPG).

4. Методология: Гибридный многоагентный RAG + кодовый граф

CodeGraph использует научно обоснованный подход, объединяющий три ключевые технологии:

4.1 Граф свойств кода (CPG)

CPG — это унифицированное представление кода, генерируемое собственным инструментом GoCPG (Go + Tree-sitter, 33 аналитических прохода). CPG объединяет:

4.2 Гибридный поиск с адаптивным взвешиванием

Комбинация двух методов поиска с RRF-слиянием и адаптивным взвешиванием по типу запроса: семантические (75% вектор / 25% граф), структурные (25% вектор / 75% граф), смешанные (60% / 40%):

Запрос "SQL injection" Векторный поиск ChromaDB 250K+ документов Графовый поиск DuckDB CPG 87K+ методов RRF-слияние Reciprocal Rank Fusion Ранжированные результаты Топ-K релевантные контексты
Метод Что находит Сильные стороны
Векторный поиск Семантически похожие фрагменты кода Понимание намерения, нечёткий поиск
Графовый поиск Структурные связи (вызовы, зависимости) Точный граф вызовов, поток данных
RRF-слияние Объединённый ранжированный список Лучшее из обоих подходов

4.3 Многоагентная архитектура

Система использует 13 специализированных агентов и 97 обработчиков, организованных в три уровня:

Координация: MultiScenarioState + билингвальная Intent-классификация (EN/RU) → 21 сценарий LangGraph Конвейер обработки (5 RAG-агентов) Analyzer Классификация Enrichment Обогащение Retriever Гибридный поиск Generator SQL/PGQ Interpreter Синтез ответа Доменные модули (8 аналитических агентов, 9 модулей) Безопасность 4 обработчика Scanner, DataFlow Reporter, Advisor Архитектура 3 обработчика Dependency, Layer ArchReporter Производ-ть 3 обработчика Profiler, Resource Optimizer Рефакторинг 4 обработчика DeadCode, Debt Impact, Planner Code Review 3 обработчика PRAnalyzer Context, Reporter Инциденты ИБ 3 обработчика CVESearcher Blast, Remediation Соответствие 3 обработчика License, Validator Standards Тех. долг 3 обработчика Calculator, Priority Repayment Кросс-репо 3 обработчика Indexer, Cross DepMapper 21 LangGraph-сценарий с 97 специализированными обработчиками в 14 сценарных модулях 97 обработчиков Итого: 13 агентов (5 RAG + 8 аналитических) + 97 обработчиков в 21 сценарии

Конвейер обработки запросов

5 RAG-агентов образуют основной последовательный конвейер:

Агент Роль Функции
Analyzer Классификатор намерений Понимание запроса, извлечение ключевых слов, выбор сценария
Enrichment Обогащение контекста Маппинг на CPG-теги, добавление доменного контекста
Retriever Гибридный поиск Векторный + графовый поиск, RRF-слияние с адаптивными весами
Generator Синтез запросов Генерация SQL/PGQ запросов, варианты запросов, построение промптов
Interpreter Интерпретатор Синтез ответа на естественном языке, группировка, рекомендации

Вспомогательные обработчики: CallChainAnalyzer, ControlFlowGenerator, LogicSynthesizer, AdaptiveQueryRefiner, FallbackStrategySelector, TagEffectivenessTracker и другие. Ранжирование результатов встроено в Retriever (RRF-слияние с адаптивным скорингом).

Доменные модули

8 аналитических агентов координируют 9 специализированных модулей с 97 обработчиками:

Модуль Обработчики Назначение
Безопасность SecurityScanner, DataFlowAnalyzer, VulnerabilityReporter, RemediationAdvisor Сканирование уязвимостей, анализ потоков данных, отчёты и рекомендации
Архитектура DependencyAnalyzer, LayerValidator, ArchitectureReporter Анализ зависимостей модулей, валидация архитектурных слоёв
Производительность PerformanceProfiler, ResourceAnalyzer, OptimizationAdvisor Узкие места, потребление ресурсов, рекомендации по оптимизации
Рефакторинг DeadCodeDetector, TechnicalDebtDetector, ImpactAnalyzer, RefactoringPlanner Мёртвый код, признаки плохого кода, анализ влияния изменений
Code Review PRAnalyzer, ContextAggregator, ReviewReporter Анализ pull request, сбор контекста из CPG, замечания
Инциденты ИБ CVESearcher, BlastRadiusAnalyzer, RemediationPlanner Поиск CVE, оценка радиуса поражения, планирование устранения
Соответствие LicenseDetector, ComplianceValidator, StandardsChecker Проверка лицензий, соответствие 152-ФЗ, ГОСТ Р 56939, стандарты
Технический долг DebtCalculator, PrioritizationEngine, RepaymentPlanner Измерение долга, ранжирование по ROI, планирование погашения
Кросс-репозиторный RepositoryIndexer, CrossRepoAnalyzer, DependencyMapper Индексация репозиториев, дублирование, межпроектные зависимости

4.4 Покрытие уязвимостей CWE/CAPEC

Модуль безопасности обнаруживает 58 типов уязвимостей CWE и связывает их с 27 паттернами атак CAPEC:

Категория CWE Примеры
Инъекции 11 SQL (CWE-89), Command (CWE-78), LDAP (CWE-90), Code (CWE-94/95), Format String (CWE-134), SpEL (CWE-917), Template (CWE-1336), NoSQL (CWE-943), File Include (CWE-98)
Память 9 Buffer Overflow (CWE-120/119/787/125), Use-After-Free (CWE-416), Double Free (CWE-415), Null Deref (CWE-476), String Termination (CWE-170), Stack Return (CWE-562)
Валидация ввода 6 Path Traversal (CWE-22), Deserialization (CWE-502), SSRF (CWE-918), Open Redirect (CWE-601), Info Exposure (CWE-200/209)
Криптография 8 Weak Crypto (CWE-327/328), Weak PRNG (CWE-330/338), Bad Certificate (CWE-295), Cleartext (CWE-319), Weak PBE (CWE-916), Predictable IV (CWE-329)
Доступ и авторизация 6 Hardcoded Credentials (CWE-798), Missing Auth (CWE-862), Broken Access Control (CWE-284), Privilege Escalation (CWE-250), IDOR (CWE-639), Exposed API (CWE-749)
Веб-приложения 4 XSS (CWE-79), CSRF (CWE-352), Prototype Pollution (CWE-1321), XXE (CWE-611)
Многопоточность 2 Race Condition (CWE-362), TOCTOU (CWE-367)
Управление ресурсами 8 Dangerous Function (CWE-242), Unchecked Return (CWE-252), Temp File (CWE-377), DoS (CWE-400), Resource Leak (CWE-404), ReDoS (CWE-1333), Input Diff (CWE-183/1025)
Целочисленные ошибки 3 Integer Overflow (CWE-190), Integer Underflow (CWE-191), Truncation (CWE-197)
Журналирование 2 Log Injection (CWE-117), Insufficient Logging (CWE-778)
Итого 58 + языковые правила: Python/Django, JavaScript, TypeScript, Java, Go, C#, Kotlin, PHP, 1С:Предприятие (190 YAML-правил)

Паттерны атак CAPEC

Система связывает уязвимости CWE с реальными паттернами атак CAPEC для приоритизации:

CAPEC ID Атака Связанные CWE
CAPEC-66 SQL Injection CWE-89
CAPEC-88 OS Command Injection CWE-78
CAPEC-86 XSS через HTTP Headers CWE-79
CAPEC-100 Buffer Overflow CWE-120
CAPEC-126 Path Traversal CWE-22
CAPEC-586 Object Injection (Deserialization) CWE-502
CAPEC-664 Server-Side Request Forgery CWE-918
CAPEC-201 XML External Entity (XXE) CWE-611
CAPEC-136 LDAP Injection CWE-90
CAPEC-97 Cryptanalysis CWE-327, CWE-328
CAPEC-112 Brute Force (Weak PRNG) CWE-330, CWE-338
CAPEC-94 Man-in-the-Middle CWE-295, CWE-319
CAPEC-268 Audit Log Manipulation CWE-117
CAPEC-492 Regular Expression DoS (ReDoS) CWE-1333

И ещё 13 паттернов CAPEC для race conditions, криптографических атак, форматных строк, privilege escalation и др.

5. Техническая архитектура

5.1 Конвейер обработки запроса

Запрос "Найди SQL injection" 1. Analyzer Классификация • Intent EN/RU • Ключевые слова • Выбор сценария • Обогащение 2. Retrieval Гибридный поиск • ChromaDB 250K+ • DuckDB CPG • RRF-слияние • Адапт. веса 3. Generator Синтез запросов • SQL/PGQ • Варианты • Промпты • Грамматика 4. Interpreter Синтез ответа • NL-ответ • Группировка • Рекомендации • Доказательства 5. Reranker Ранжирование • Confidence • Скоринг • Фильтрация • 30+ констант 8 аналитических агентов в 9 доменных модулях Безопасность | Архитектура | Производительность | Рефакторинг | Code Review | Инциденты | Соответствие | Тех. долг | Кросс-репо LLM-провайдер: GigaChat | Yandex AI Studio | OpenAI | Локальный (llama-cpp/VLLM)

5.2 Поддерживаемые LLM-провайдеры

CodeGraph поддерживает 4 LLM-провайдера с единым интерфейсом:

Провайдер Модели Контекст Особенности
GigaChat (Сбер) GigaChat-2, -Pro, -Max 32K Российский провайдер, соответствие требованиям
Yandex AI Studio Qwen3-235B, gpt-oss-120b, YandexGPT до 262K Большой контекст, совместимый с OpenAI API
OpenAI GPT-5.2 128K Международный стандарт
Локальный Qwen3-Coder 32K Автономная работа, изолированная среда

5.3 Поддерживаемые языки программирования

GoCPG анализирует код на 11 языках через Tree-sitter парсеры:

Категория Языки Расширения
Системные C, C++ .c, .h, .cpp, .hpp, .cc, .cxx
Корпоративные Java, C#, Kotlin .java, .cs, .kt, .kts
Веб JavaScript, TypeScript, PHP .js, .ts, .jsx, .tsx, .php
Скриптовые Python, Go .py, .go
Отечественные 1С:Предприятие .bsl, .os

5.4 Технологический стек

Компонент Технология Описание
Backend Python 3.11+ / FastAPI Async REST API + WebSocket
Frontend TUI (Rich) + CLI Терминальный интерфейс, билингвальный EN/RU
Vector DB ChromaDB 250K+ документов, embeddings (all-MiniLM-L6-v2)
Graph DB DuckDB CPG: 87K+ методов, 2.8M+ узлов, 48M+ рёбер
CPG Parser GoCPG (Go + Tree-sitter) 11 языков, 33 аналитических прохода, 30–60x ускорение vs Joern
Workflow LangGraph Оркестрация 13 агентов (5 RAG + 8 аналитических), 21 сценарий
IDE Integration ACP (Agent Client Protocol) VS Code, JetBrains — stdio/HTTP/WebSocket

6. Сценарии использования

CodeGraph предоставляет 21 готовый сценарий для типичных задач разработки:

Безопасность Аудит безопасности Точки входа и поверхность атаки Реагирование на инциденты Проверка соответствия 58 CWE, 27 CAPEC Качество кода Обзор кода Технический долг Нарушения архитектуры Оптимизация кода PR/MR, метрики, шаблоны Разработка Разработка функционала Рефакторинг Массовый рефакторинг Анализ зависимостей Миграции API, зависимости Онбординг Онбординг в кодовую базу Генерация документации Проверка по стандартам Навигация, автодокументация Анализ Производительность Покрытие тестами Поддержка отладки Поиск паттернов Корпоративные Кросс-репозиторный анализ Соответствие 152-ФЗ, ГОСТ Р 56939, OWASP 21 сценариев

Полный список сценариев

# Сценарий Описание Пример запроса
1 Онбординг в кодовую базу Навигация по кодовой базе для новых разработчиков "Объясни архитектуру проекта"
2 Аудит безопасности Комплексный аудит безопасности с анализом потоков данных "Найди все SQL инъекции"
3 Генерация документации Автоматическая генерация технической документации "Сгенерируй API документацию"
4 Разработка функционала Поддержка разработки новых функций (навигация по зависимостям) "Где добавить новый endpoint?"
5 Рефакторинг Рекомендации по рефакторингу с анализом влияния изменений "Найди неиспользуемые функции"
6 Анализ производительности Выявление узких мест производительности "Найди N+1 запросы к БД"
7 Покрытие тестами Анализ тестового покрытия и рекомендации по тестам "Какие функции не покрыты тестами?"
8 Проверка соответствия Проверка соответствия 152-ФЗ, ГОСТ Р 56939, OWASP "Проверь на соответствие OWASP Top 10"
9 Обзор кода Автоматизированное рецензирование кода (PR/MR) "Проверь этот PR на проблемы"
10 Кросс-репозиторный анализ Анализ межмодульных зависимостей "Найди дублирующийся код между репо A и B"
11 Анализ архитектуры Выявление нарушений архитектурных ограничений "Найди циклические зависимости"
12 Оценка технического долга Количественная оценка технического долга "Оцени технический долг модуля"
13 Массовый рефакторинг Автоматизация массового рефакторинга (миграции API) "План миграции с v1 на v2 API"
14 Реагирование на инциденты ИБ Реагирование на инциденты ИБ с рекомендациями "Проанализируй CVE-2024-XXXX"
15 Поддержка отладки Помощь в отладке на основе потоков данных "Найди все места с elog(ERROR)"
16 Точки входа и поверхность атаки Анализ поверхности атак и точек входа "Какие функции принимают пользовательский ввод?"
17 Редактирование файлов Точечное редактирование кода на основе AST "Переименуй функцию X в Y во всех файлах"
18 Оптимизация кода Комплексная оптимизация: безопасность, рефакторинг, архитектура "Оптимизируй модуль авторизации"
19 Проверка по стандартам Проверка кода по эталонным стандартам и руководствам "Проверь код на соответствие стандартам проекта"
20 Анализ зависимостей Анализ зависимостей и импортов "Покажи дерево зависимостей модуля"
21 Структурный поиск паттернов Поиск по структурным шаблонам с CPG-ограничениями "Найди все функции с цикломатической сложностью >20"

7. Результаты и бенчмарки

7.1 Производительность системы

Метрика Значение Комментарий
Сквозное время ответа от 30 мс до 71 с 30 мс (compliance) — 71 с (incident response), в зависимости от сценария
GoCPG парсинг 30–60x ускорение По сравнению с Joern через Appender API
Пропускная способность 50+ QPS 100+ параллельных пользователей
Память на экземпляр < 4 GB Нативный бинарник GoCPG без JVM

7.2 Качество анализа

Комплексный бенчмарк на 160 вопросах по 21 сценарию, двуязычный ground truth (EN/RU), кодовая база PostgreSQL 17 (~1M строк C):

Метрика Значение Комментарий
Общая точность 95.6% 153 из 160 вопросов
Сценарии с точностью ≥80% 16 из 16 Все протестированные сценарии
MRR (Mean Reciprocal Rank) 0.83 Диапазон 0.58–0.95
Recall@10 0.78 Диапазон 0.44–0.97

CPG-метрики (GoCPG vs Joern)

Метрика GoCPG Joern Коэффициент
Узлы CPG 1 419 954 1 804 013 0.79x (компактнее)
Рёбра CPG 15 598 692 18 340 154 0.85x (компактнее)
Методы 47 335 27 825 1.70x (больше)

7.3 Бизнес-эффект

Измеримые результаты внедрения CodeGraph:

Сценарий Без CodeGraph С CodeGraph Ускорение
Онбординг разработчика 3-6 месяцев 2-4 недели 6x
Аудит безопасности 2-4 недели 2-4 часа 40x
Код ревью (PR) 2-4 часа 10-15 минут 15x
Поиск функции в коде 5-30 минут 2-3 секунды 600x
Генерация документации 1-2 дня 5 минут 200x

ROI для команды из 50 разработчиков: Экономия ~60 млн руб./год на понимании кода (60% → 10% времени) + снижение рисков безопасности через автоматический аудит.

8. Команда

CodeGraph разрабатывается командой с опытом в области:

Контакт: Для обсуждения технических деталей или партнёрства свяжитесь с нами через форму на главной странице или напишите на hello@codegraph.ru

9. Заключение

CodeGraph решает фундаментальную проблему корпоративной разработки — понимание больших кодовых баз — через инновационное сочетание:

Результаты:

Подробнее по направлениям

Готовы увидеть CodeGraph в действии?

Запросите персональную демонстрацию для вашей команды и кодовой базы

Запросить демо