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

✍️ OpenClawRadar📅 Опубликовано: 10 мая 2026 г.🔗 Source
Извлечение кода для ИИ-агентов: почему векторные эмбеддинги не работают и как побеждают графы LLM на уровне файлов
Ad

Годовой эксперимент по созданию системы индексации кода для AI-инструментов дал однозначные результаты: векторные эмбеддинги на фрагментах кода и разбор Tree-sitter AST имеют критические недостатки, а LLM-анализ по файлам, хранящийся в графе Neo4j с семантическим полнотекстовым поиском, работает лучше всего. Полученные данные подтверждаются недавними статьями, такими как RepoGraph (ICLR 2025) и Code-Craft.

Протестированные подходы

  • Векторные эмбеддинги на фрагментах кода – полностью отброшены. Функция с именем process() в сервисе платежей и такая же в конвейере изображений получают похожие векторы, хотя не имеют ничего общего. Векторы уплощают графы вызовов, наследование, импорты — все структурные связи. Точность поиска была неприемлемой.
  • Разбор Tree-sitter AST – точен и быстр, но только структурный. Он может сказать, что функция существует и что она вызывает, но не может ответить на вопрос: «Эта функция обрабатывает повторные попытки вебхуков для неудачных платежей Stripe». Оказывается недостаточным, когда разработчики формулируют вопросы на бизнес-языке.
  • LLM-анализ по файлам → граф – работает. Каждый файл получает вызов LLM, генерирующий purpose, summary и businessContext, которые хранятся как узлы в Neo4j с ребрами к классам, функциям, ключевым словам и импортам. Поиск использует полнотекстовый поиск по этим семантическим полям вместо векторной близости. SHA-256-диффинг ограничивает переиндексацию измененными файлами, делая начальные затраты приемлемыми.
Ad

Бенчмарки из литературы

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

Ad

👀 Смотрите также

Sx: Пакетный менеджер с открытым исходным кодом для навыков ИИ, MCP и команд
Инструменты

Sx: Пакетный менеджер с открытым исходным кодом для навыков ИИ, MCP и команд

Sx — это частный менеджер пакетов в стиле npm для AI-активов — навыков, конфигураций MCP, команд, хуков и агентов, — который позволяет командам делиться, версионировать и ограничивать область видимости AI-конфигураций в любом AI-клиенте (Claude Code, Cursor, Copilot, Gemini).

OpenClawRadar
VibeAround: Локальный демон подключает агентов программирования к Telegram и Discord
Инструменты

VibeAround: Локальный демон подключает агентов программирования к Telegram и Discord

VibeAround — это локальный демон, который подключает кодирующие агенты, такие как Claude Code, Gemini CLI и Codex, к платформам мгновенных сообщений, включая Telegram и Discord. Инструмент поддерживает передачу сессий с кодами для продолжения бесед на разных устройствах.

OpenClawRadar
Разработчик создаёт библиотеку сжатия на Rust с помощью Claude Opus 4.6, задаваясь вопросом о её практической пользе.
Инструменты

Разработчик создаёт библиотеку сжатия на Rust с помощью Claude Opus 4.6, задаваясь вопросом о её практической пользе.

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

OpenClawRadar
Использование скрытого сигнала агентства (Â) в LLM для улучшения вызова инструментов
Инструменты

Использование скрытого сигнала агентства (Â) в LLM для улучшения вызова инструментов

Разработчик обнаружил, что у языковых моделей есть линейно разделяемое скрытое состояние под названием Â, которое предсказывает вызов инструментов с AUC > 0,94. Использование этого сигнала для принудительного вызова инструментов улучшило производительность Qwen3-1.7B с 26,7% до 85% (+58%) и снизило количество отказов без инструментов с 43% до 2,6%.

OpenClawRadar