Как перестать скармливать AI-ассистенту тысячи лишних токенов
Репозиторий давно не обновлялся
Последнее обновление было 9 месяцев назад.

Знакомая ситуация: вы просите Claude или ChatGPT помочь с рефакторингом старого сервиса, а чат начинает «галлюцинировать» или просто не видит связей между файлами. Приходится вручную копипастить куски кода, объяснять, что UserService зависит от DatabaseModule, и надеяться, что контекстное окно не переполнится на самом интересном месте.
Проблема в том, что обычный поиск по файлам (grep) или поиск по эмбеддингам не объясняет модели архитектуру системы. AI видит плоский текст, но не понимает граф зависимостей. Проект codegraph-rust пытается решить эту проблему, превращая кодовую базу в полноценный граф знаний.
Чем CodeGraph отличается от обычного поиска
Большинство инструментов для RAG (Retrieval-Augmented Generation) работают по принципу: нарезали код на куски, превратили их в векторы, сложили в базу. Когда вы задаете вопрос, система ищет похожие куски. Это работает для простых функций, но ломается на вопросах типа «Что пострадает, если я изменю возвращаемое значение в этом интерфейсе?».
CodeGraph идет глубже. Он не просто индексирует текст, а строит семантический граф. Для этого используется Rust-анализатор и Tree-sitter, которые вытаскивают из кода реальные связи: вызовы функций, импорты, реализации трейтов и даже потоки данных.
В итоге, когда вы спрашиваете про AuthService, ассистент получает не только код этого сервиса, но и понимание того, кто его вызывает и куда он сам обращается. Это экономит тонны токенов, потому что модели больше не нужно гадать или просматривать лишний мусор.
Четыре инструмента для глубокого анализа
Разработчики проекта не стали предлагать просто «поиск». Они упаковали функциональность в четыре конкретных агента, которые подключаются через протокол MCP (Model Context Protocol). Соответственно, их можно сразу закинуть в Claude Code или Cursor.
- agentic_context: Собирает всё необходимое для ответа на конкретный вопрос. Он сам решает, нужно ли искать по коду или строить цепочку зависимостей.
- agentic_impact: Настоящее спасение при рефакторинге. Показывает цепочки зависимостей и вызовов. Буквально отвечает на вопрос: «Если я здесь натяну сову на глобус, что именно сломается в другом конце монолита?».
- agentic_architecture: Дает взгляд сверху. Описывает структуру системы, API-поверхности и паттерны, которые используются в проекте.
- agentic_quality: Оценивает риски, находит слишком сложные (слоеные) участки кода и места с высокой связанностью (coupling), которые пора бы развязать.
Техническая начинка
Под капотом у CodeGraph довольно бодрый стек. Весь проект написан на Rust, что гарантирует скорость индексации. В качестве хранилища используется SurrealDB. Это интересный выбор: графовая база данных с поддержкой векторного поиска (HNSW), которая позволяет делать сложные запросы на SurrealQL быстрее, чем традиционные связки из Postgres и векторных расширений.
Архитектура агентов построена на фреймворке Rig. Интересно, что система сама адаптируется под ваше «железо» или кошелек. Если у вас модель с маленьким контекстом (до 50k токенов), CodeGraph будет выдавать максимально сжатые и точные ответы в 3 шага. Если же вы используете что-то вроде Claude 3.5 Sonnet или Grok с огромным окном, агент уйдет в глубокое исследование на 8+ шагов.

Как это завести
Для начала понадобится установленный Rust и пара внешних инструментов для LSP (например, rust-analyzer для Rust или pyright для Python). Процесс выглядит примерно так:
- Поднимаем SurrealDB (можно локально в Docker или через бинарник).
- Запускаем индексацию вашего проекта:
codegraph index /path/to/your/project -r -l rust,typescript - Подключаем бинарник к вашему AI-клиенту через MCP. В конфиге Claude Desktop это будет выглядеть как добавление новой команды в секцию
mcpServers.
Кстати, у проекта есть защита от «протекания» секретов. Индексатор игнорирует файлы из .gitignore и автоматически вырезает .env, ключи .pem и другие конфиденциальные данные. Можно не бояться, что ваши API-ключи внезапно окажутся в эмбеддингах.
Стоит ли пробовать
CodeGraph — это не просто очередная обертка над вектором. Это попытка дать AI инструменты, которыми пользуемся мы сами: переходы по определениям, поиск ссылок и анализ графа вызовов.
Кому это пригодится:
- Тем, кто работает с легаси-кодом, где связи неочевидны.
- Командам, которые активно используют AI-агентов для автоматизации написания тестов или документации.
- Разработчикам на Rust (поддержка этого языка тут ожидаемо лучшая).
Из минусов: проект требует настройки базы данных и LSP-серверов, это не решение «в один клик». Но если вы устали от того, что ваш AI-ассистент постоянно теряет нить рассуждения в большом репозитории, потратить полчаса на настройку CodeGraph точно стоит.

Что дальше
Автор планирует добавить кросс-репозиторный анализ, что будет полезно для микросервисной архитектуры, и систему плагинов для кастомных анализаторов. Сейчас проект активно развивается (более 600 звезд на GitHub), и это хороший момент, чтобы попробовать его в деле, пока он не оброс сложным функционалом.
Ваш код — это граф. Пора позволить вашему AI увидеть его именно таким.
