Graft: открытый инструмент, который сокращает время поиска кода для AI-агентов
DeepSeek парировал Claude: для рефакторинга семантика не главное
Graft — это открытый инструмент для AI-кодинг-агентов, который помогает быстрее разбираться в структуре проекта. Он строит граф кодовой базы из связанных Markdown-документов и данных о функциях, классах и вызовах. Базовая аналитика работает локально на основе Tree-sitter и не требует API-ключа или обращения к LLM. Углублённый анализ с описанием ролей кода можно выполнять через выбранную модель. Инструмент подключается к разным агентам, помогает видеть зависимости и оценивать влияние правок до изменения файлов. Установка идёт через npm, для сборки может понадобиться C++.
Graft — открытый инструмент, созданный для AI-кодинг-агентов. Его задача — уменьшить время, которое агент тратит на повторное изучение проекта при каждой новой задаче. Когда агент правит функцию или ищет ошибку, ему приходится открывать файлы, идти по цепочкам импортов, проверять вызовы и связанные тесты. В большом репозитории на это уходит много времени и токенов. Graft предлагает заранее построить карту кодовой базы: представить функции, API, модули и их связи в виде узлов и соединить их в граф. Вместо векторной базы данных инструмент создаёт связанные Markdown-документы и данные о функциях и вызовах, которые агент может читать как обычные файлы. Поэтому не нужно поднимать отдельный сервер или поисковый индекс. Базовая структурная аналитика выполняется локально. Graft использует Tree-sitter, чтобы разобрать функции, классы и отношения вызовов. Для такого графа не нужны API-ключ или вызовы языковой модели. Если нужен более глубокий разбор, когда требуется описать роль кода на естественном языке и выделить ключевую логику, можно подключить выбранную AI-модель. То есть простой анализ доступен без внешних сервисов, а расширенный — по желанию. Практическая польза для разработчика в том, что агент получает контекст не с нуля, а из уже подготовленной карты. Например, на вопрос, где создаётся токен после входа в систему, он может сначала посмотреть на связанные части потока аутентификации, а не перебирать все файлы подряд. Кроме того, Graft помогает оценить влияние правок. Если меняется функция создания токена, инструмент показывает связанные вызовы и зависимости, чтобы проверить также middleware, обработку ошибок и тесты. Это полезно в проектах, где несколько сервисов и модулей связаны между собой. Graft поддерживает работу с разными AI-кодинг-агентами. В статье упоминается настройка через команду graft init: после её запуска нужно выбрать агента из списка, например Claude Code или Windsurf, а Codex подключается через пункт agents. Инструмент устанавливается через npm командой npm install -g @nanonets/graft. Для сборки некоторых модулей анализа может потребоваться C++-окружение: на macOS — Xcode Command Line Tools, на Linux — build-essential, на Windows — Visual Studio Build Tools с компонентом для разработки на C++. Проверить установку можно командой graft --version. Автор также описывает тесты на проекте отмены заказов. В одном сценарии нужно было найти причину ошибки, когда при таймауте платёжного провайдера возврат остаётся в состоянии refund_pending, но клиенту всё равно уходит письмо о завершённом возврате. Логика обработки отмены, сохранения статуса и выбора темы письма разнесена по файлам, поэтому важно быстро увидеть связи между ними. Graft в таких случаях помогает сузить область поиска и быстрее перейти к нужным местам кода.