Ещё недавно почти все RAG-системы строились одинаково: документы разбивали на чанки, создавали эмбеддинги, сохраняли их в Vector Database и по ним искали контекст для LLM.
🔴 Это был большой шаг вперёд по сравнению с обычным поиском по ключевым словам. Но по мере роста корпоративных баз знаний стало понятно: семантического поиска недостаточно.
Например, пользователь ищет:
— конкретную функцию или класс;
— номер ошибки;
— API-метод;
— документ определённой версии;
— информацию, связанную сразу с несколькими сущностями.
В таких случаях одного поиска по embeddings уже недостаточно.
Поэтому современные AI-системы переходят к гибридному retrieval — вместо одного алгоритма используют несколько, каждый из которых решает свою задачу.
💡 На схеме показано, как изменилась типичная архитектура RAG за последние годы.
Что обычно добавляется:
🔹 Keyword Search (BM25) — лучше находит точные совпадения.
🔹 Metadata Filtering — ограничивает поиск по версии документа, автору, проекту, дате и другим атрибутам.
🔹 Reranker — заново оценивает найденные документы и оставляет наиболее релевантные для модели.
🔹 Knowledge Graph — позволяет искать не только документы, но и связи между сущностями: пользователями, сервисами, API, событиями и объектами предметной области.
Такой подход уже используют современные AI-инструменты.
Например, Graphiti сочетает граф знаний, семантический поиск и дополнительные механизмы retrieval вместо того, чтобы строить систему только вокруг embeddings 😧
Команда Anthropic тоже описывает похожую эволюцию. При разработке Claude Code инженеры отказались от идеи заранее формировать весь контекст через классический RAG. Вместо этого агент во время работы самостоятельно использует инструменты поиска и постепенно собирает нужную информацию по мере выполнения задачи. Такой подход лучше масштабируется для больших кодовых баз и постоянно меняющегося контекста.
🔗 Anthropic — Seeing like an agent
🔗 Graphiti (Knowledge Graph for AI Agents)
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека дата-сайентиста
#буст
