Обновить

Агент читает 20 файлов ради одной функции. Лечим это графом кода: CodeGraph vs Graphify и другие невиданные твари

Уровень сложностиСложный
Время на прочтение10 мин
Охват и читатели14K
Всего голосов 13: ↑10 и ↓3+9
Комментарии17

Комментарии 17

В список решений - ещё HippoRAG2 , GraphRAG, GrapeRoot, Sourcegraph . По сравнению применимости всех этих штук - исходя из количества файлов, объёма, архитектуры, языков программирования - можно отличную статью написать (или почитать) :)

Лично у меня, в моём маленьком проектике, сейчас информация по архитектуре раскидана по мелким текстовым md файлам, это в целом ОК, думаю ещё надо, как положено, настроить graphify, чтобы сначала нейросеть лезла в graphify, а если не найдёт, что искала, то пусть смотрит в md файлах.

Надо попробовать, спасибо

Главное — точность, скорость и качество поиска. Агент с индексом находит нужное с первого запроса, а не читает двадцать файлов и строит гипотезу на половине из них.

А с чего вы взяли что с этими графами поиск точнее? Метрик вы никаких не привели, при этом сразу же жертвуется гибкость которая есть у ллмки без ручек прикованных к построенному сторонней утилитой графу.

Ещё почему-то вы ничего не сказали о накладных расходах, сколько весит граф, насколько прожорлив watcher, как он вообще перформит на больших репо...

Потому, что нейросеть, которая писала статью, об этом если и знает, то скажет только если спросить. А вот автор не знает

Я уже сам не уверен, кто кому сейчас пишет комменты - кожаные мешки или скрипты на питоне...

Точность растет за счет сужения контекста. Если модели дать только сигнатуры и граф вызовов, она меньше галлюцинирует, чем когда читает портянку на 5000 строк

это гипотиза которую надо подтвердить бенчем

У меня с c# graphify ложил opencode иногда. Знаний не хватало донастроить. После установки и недели пользования мог просто положить создавая кучу мусорных скриптов. Но тут ошибка чисто моя, над было разбираться

Не совсем понятно, чем это отличается от подключения MCP/LSP сервера используемого языка. Он ведь точно так же выставляет наружу граф ASP и греп становится не нужен. Не поясните разницу/преимущества?

Вы, видимо, опечатались и имели в виду AST (Abstract Syntax Tree) ?

Граф AST это дерево разбора кода, который LSP-сервер строит для go-to-definition, references, авто-комплита. Но LSP строит AST для одного файла в IDE. А CodeGraph строит для LLM (не для Вас!) call graph по всей кодовой базе с транзитивными связями, FTS5-поиском и impact-анализом. А Graphify добавляет LLM-семантику и community detection - и находит то, что AST не видит (асинхронные потоки, runtime-связи через очередь, кросс-файловые концепты).

То есть, CodeGraph и Graphify  это слои абстракции над синтаксическим деревом.

Вы, видимо, опечатались

Да, извините 🙂

То есть, CodeGraph и Graphify это слои абстракции над синтаксическим деревом.

Понятно, спасибо. Надо будет попробовать.

На самом деле Sourcegraph и другие энтерпрайз решения работают как раз поверх LSIF, который генерируется из LSP. Это гораздо надежнее сырого парсинга синтаксиса

Этих мсп которые занимаются сканированием кода через tree sitter как грибов после дождя

но как все интересно ) мне кажется каждый месяц кол-во инструментов удваивается

Тут на днях была статья, где для экономии токенов автор предлагает промптым с фразами "не выводи рассуждения, сразу переходи к сути" и подобными "лайвхаками" - так у него хотя бы метрики на счёт того, насколько уменьшилось потребление токенов были, а в этих удвоенные инструментах чаще всего и того нет. Только утверждения что жить стало лучше, жить стало веселее.

А на деле, все эти трюки и магии могут оказаться вреде чем сырой промт

Экономия токенов это здорово, но на практике генерация графа для большого монорепозитория тоже сожрет немало ресурсов и времени, а потом его еще и поддерживать в актуальном состоянии надо

в любом случае, AST-only обработка не стОит токенов:)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации