Когда ИИ-агенту дают задачу «найди, где обрабатывается авторизация, и поправь логику отказа», он действует предсказуемо: грепает по ключевым словам, открывает пятнадцать-двадцать файлов целиком, загружает каждый в контекст. На среднем репозитории это сотни тысяч токенов и десятки вызовов инструментов — только чтобы понять, где вообще лежит ответ. И примерно в половине случаев агент всё равно промахивается: прочитал не те файлы, пошёл чинить не там.
Проблема не в модели. Агент делает full table scan по кодовой базе там, где должен делать запрос по индексу — ровно как SELECT без индекса по миллиону строк в базе данных.
| Инструмент | Назначение | Хранение | Токены на код | Токены на документы |
|---|---|---|---|---|
| CodeGraph | Индекс символов для агента в рантайме | SQLite (.codegraph/), не в git | 0 | 0 |
| Graphify | Граф знаний всего проекта | graph.json, рекомендуется коммитить | 0 | Да (через модель сессии или API-ключ) |
| Gortex | Мультирепо, 256 языков, локально | — | — | — |
| Sourcegraph MCP | Enterprise, cross-repo навигация | — | — | — |
| Cognee | Долговременная память агента | — | — | — |
Идея графа кода не новая. Парсер tree-sitter разбирает исходники в AST и извлекает два типа данных: узлы (функции, классы, методы) и рёбра (вызовы, импорты, наследование). Агент перестаёт читать файлы веером и начинает задавать точечные вопросы: «кто вызывает validateToken», «где определён класс AuthGuard», «что сломается, если я трону эту функцию». Один запрос вместо двадцати чтений.
Graphify строит граф знаний всего проекта: код, документы, PDF и медиа — с визуализацией и отчётом для человека.
Вокруг этой идеи выросли два инструмента с одинаковым фундаментом, но разными целями.
CodeGraph — лёгкий символьный индекс для рантайма агента. Функции, классы, вызовы, импорты, наследование — и ничего лишнего. Всё работает локально: парсинг на tree-sitter, хранение в SQLite с полнотекстовым поиском FTS5 в папке.codegraph/. Никаких внешних API, данные не покидают машину. Автосинхронизация работает через нативные файловые вотчеры (FSEvents на macOS, inotify на Linux) с дебаунсом в пару секунд — поправил файл, индекс обновился сам. Для агента CodeGraph поднимается как MCP-сервер и отдаёт инструменты codegraph_search, codegraph_context, codegraph_trace.
Авторы приводят результаты на семи open-source репозиториях: −57% токенов, −71% tool calls, −46% времени на медианном прогоне, −35% стоимости. На крупных проектах вроде VS Code экономия по tool calls достигает −80%. Это цифры авторов на их выборке. Практический эффект понятен: веер из двадцати чтений схлопывается в один запрос к индексу, и количество вызовов инструментов падает кратно.
Glitch при встраивании реальный: агент по привычке продолжает грепать, игнорируя MCP-сервер. Без явного промпта, предписывающего предпочитать индекс файловому поиску, поведение не меняется.
Graphify решает другую задачу. Это граф знаний всего проекта: код плюс документация, PDF, изображения, видео. Код он, как и CodeGraph, парсит локально через tree-sitter — токены на него не тратятся. Документы и медиа отправляются в LLM на семантическую экстракцию: из них вытаскиваются сущности и связи, которые вплетаются в общий граф.
На выходе — артефакты для человека: graph.html с интерактивной визуализацией, GRAPH_REPORT.md с «god-нодами» и неожиданными связями, graph.json как машиночитаемый граф. Есть функция PR-triage. Инструмент ориентирован на понимание чужого или легаси-проекта, где знание размазано между кодом и кучей документов.
При запуске через skill /graphify прямо в IDE отдельные API-ключи не нужны — Graphify использует модель текущей сессии (Claude Code, Codex, Cursor), расход идёт с подписки. Отдельные ключи требуются только для headless-режима graphify extract вне IDE. Если токены тратить совсем не хочется, режим graphify extract --no-cluster строит чистый AST-граф без обращений к модели — и Graphify в этом режиме функционально приближается к CodeGraph.
Модель хранения у двух инструментов принципиально разная. Индекс CodeGraph (.codegraph/) — производный кэш: его регенерируют, а не шарят через git. Класть SQLite-файл в git или на сетевой диск не стоит: бинарник раздувает историю, а на сетевых шарах и в WSL2 SQLite ловит блокировки. graph.json у Graphify — текстовый артефакт, авторы прямо предлагают его коммитить.
Рынок не ограничен двумя инструментами. Gortex поддерживает мультирепо и 256 языков, тоже работает локально. Sourcegraph MCP ориентирован на enterprise и cross-repo навигацию. Cognee решает другую задачу — долговременная память агента, а не навигация по коду.
Главный тезис, который меняет угол зрения: индексация кода — это не про экономию токенов. Это про точность поиска и качество ответа агента. Токены — приятный бонус. Отказываться от индекса, потому что «подписки хватает» — то же самое, что отказываться от индексов в базе данных, потому что «сервер мощный».
