Извлечение кода для ИИ-агентов: почему векторные эмбеддинги не работают и как побеждают графы LLM на уровне файлов

Годовой эксперимент по созданию системы индексации кода для AI-инструментов дал однозначные результаты: векторные эмбеддинги на фрагментах кода и разбор Tree-sitter AST имеют критические недостатки, а LLM-анализ по файлам, хранящийся в графе Neo4j с семантическим полнотекстовым поиском, работает лучше всего. Полученные данные подтверждаются недавними статьями, такими как RepoGraph (ICLR 2025) и Code-Craft.
Протестированные подходы
- Векторные эмбеддинги на фрагментах кода – полностью отброшены. Функция с именем
process()в сервисе платежей и такая же в конвейере изображений получают похожие векторы, хотя не имеют ничего общего. Векторы уплощают графы вызовов, наследование, импорты — все структурные связи. Точность поиска была неприемлемой. - Разбор Tree-sitter AST – точен и быстр, но только структурный. Он может сказать, что функция существует и что она вызывает, но не может ответить на вопрос: «Эта функция обрабатывает повторные попытки вебхуков для неудачных платежей Stripe». Оказывается недостаточным, когда разработчики формулируют вопросы на бизнес-языке.
- LLM-анализ по файлам → граф – работает. Каждый файл получает вызов LLM, генерирующий
purpose,summaryиbusinessContext, которые хранятся как узлы в Neo4j с ребрами к классам, функциям, ключевым словам и импортам. Поиск использует полнотекстовый поиск по этим семантическим полям вместо векторной близости. SHA-256-диффинг ограничивает переиндексацию измененными файлами, делая начальные затраты приемлемыми.
Бенчмарки из литературы
RepoGraph (ICLR 2025) показал улучшение на +32,8% на SWE-bench при использовании графовых подходов. Code-Craft достиг +82% точности поиска top-1, используя LLM-сводки снизу вверх на основе графов кода.
Сравнение с существующими инструментами
Команда опубликовала сравнительный анализ в comparison.md. Ключевые различия:
- Bytebell: LLM по файлам → purpose + summary + businessContext + entities; хранение в Neo4j + MongoDB; переиндексация с учетом SHA-256-диффа.
- PageIndex: дерево рассуждений TOC для длинных PDF/документов; нет семантики, специфичной для кода.
- GitNexus: Tree-sitter AST + обнаружение сообществ; опциональная семантика на символ; использует LadybugDB.
- GraphRAG: сущности LLM по фрагментам + кластеризация сообществ для общего текста, не для кода.
- Sourcegraph/Cody: поисковый индекс LSIF/SCIP; нет семантики на узел; развертывание самостоятельно или SaaS.
- Augment: проприетарный семантический индекс с эмбеддингами; только SaaS; управляемое непрерывное индексирование.
Открытый исходный код
Система имеет открытый исходный код на github.com/ByteBell/bytebell-oss.
📖 Читать полный источник: r/LocalLLaMA
👀 Смотрите также

Использование вложений Harrier для локального семантического поиска в памяти агентов OpenClaw
Запустите локальный сервер эмбеддингов с моделью Harrier от Microsoft, откройте API, совместимое с Ollama, и настройте memorySearch в OpenClaw для локального поиска семантической памяти без внешних сервисов.

Плагин с открытым исходным кодом Claude Code имитирует работу Управления главного специалиста по данным и искусственному интеллекту с 22 специализированными агентами.
Открытый плагин Claude Code под названием AI CDAIO Office использует 22 специализированных ИИ-агента для имитации полноценного офиса главного специалиста по данным и искусственному интеллекту, генерируя реальные файлы PPTX, DOCX и XLSX для стратегических документов, управленческих структур и материалов для совета директоров.

Netflix выпускает VOID: модель удаления объектов и взаимодействий на видео на Hugging Face.
Netflix выпустила VOID — модель видеоинпейнтинга, которая удаляет объекты из видео вместе со всеми физическими взаимодействиями, которые они вызывают, включая падающие предметы и смещённые объекты. Для работы модели требуется видеокарта с 40 ГБ+ видеопамяти, используется квадмаска с двумя чекпоинтами для разных уровней доработки.

Разработчик создаёт библиотеку сжатия на Rust с помощью Claude Opus 4.6, задаваясь вопросом о её практической пользе.
Разработчик использовал Claude Opus 4.6 в течение двух недель для создания библиотеки сжатия на Rust объёмом 15 800 строк с 449 пройденными тестами, привязками для Python и слоем C FFI, но задаётся вопросом, нужна ли была ещё одна библиотека сжатия.