Революция в статическом анализе кода: новый подход к пониманию кодовой базы

Разработчики MetaVision for 1C: AI, системы для статического анализа конфигураций 1С, столкнулись с фундаментальной проблемой при обучении своих ИИ-агентов на реальных кодовых базах. Традиционная методология RAG (Retrieval-Augmented Generation), основанная на использовании чанков, эмбеддингов и векторного поиска, оказалась неэффективной. Агент часто галлюцинировал или уверенно заявлял об отсутствии информации, которая на самом деле присутствовала в коде.

Преодоление ограничений RAG: три источника фактов вместо чанков

В ответ на эти вызовы команда MetaVision for 1C: AI разработала инновационную архитектуру для своего ИИ-агента, отказавшись от стандартного подхода с чанками. Вместо этого, они построили локальный индекс на базе SQLite, который объединяет три ключевых источника фактов:

  • SQL-индекс: для структурированных данных и быстрого поиска по метаданным.
  • Полнотекстовый FTS5: для эффективного поиска по содержимому кода.
  • Векторные представления: для семантического поиска и выявления скрытых связей.

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

Архитектура ИИ-агента: инструменты, циклы и валидация

Разработанный ИИ-агент представляет собой сложную систему, включающую 71 специализированный инструмент. Процесс анализа кода организован через многоэтапный цикл tool-calling, который может достигать 30 ходов. Интересно, что первоначально внедренные валидаторы, предназначенные для проверки корректности файлов, были впоследствии удалены из-за ложных срабатываний на валидных данных. Это подчеркивает сложность итеративной разработки систем, взаимодействующих со сложными кодовыми базами.