Андрагогика Bloom: Analyze ⏱ 9 мин RAG

Naive, Graph и Agentic RAG: три уровня картотеки

🧊 Won't Have 💧 Could Have ☀️ Should Have 🔥 Must Have
☀️ Should Have
Не фундамент, но именно тут видно, когда «умная картотека» решает задачу, а когда от неё одни проблемы за лишние деньги.

🤔 Зачем это читать

Вы запустили FAQ-бота (помощника, который отвечает на частые вопросы) по своей базе знаний. Клиент спрашивает: «Действует ли гарантия, если я вскрыл упаковку?» Бот уверенно отвечает: «Да, конечно, 24 месяца». А правильный ответ — «нет, гарантия аннулируется». Бот нашёл соседнюю карточку про гарантийный срок, она была похожа по словам — и он бодро выдал её как ответ. Не соврал нарочно. Просто что нашлось, тем и ответил.

Знакомо? Или другой вариант: вендор показывает слайд — «у нас не простой RAG (поиск нужных фактов в базе перед ответом), а agentic RAG с графом знаний, самопроверкой и разрешением конфликтов». Звучит дорого и солидно. Все кивают. А под капотом, может, задача-то была — отвечать на десять однотипных вопросов про режим работы и доставку. Под такую задачу весь этот «граф знаний» — как промышленная пароконвектомат, чтобы пожарить одно яйцо.

Оба раза дело в одном: «умная картотека» бывает разной степени умности, и эти степени стоят очень по-разному. Самая простая — быстрая и дешёвая, но тупая: чем нашлось, тем и отвечает. Самая навороченная — умеет проверять и переспрашивать, но дорого строить и легко переплатить за неё там, где хватило бы простой. Не различаешь уровни — либо ставишь дешёвый бот туда, где цена ошибки высокая, либо платишь за сложность, которая на твоей задаче не нужна.

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

Задержись на 10 секунд. Вспомни AI-помощника, который «отвечает по вашим документам», — своего или из чужой презентации. Он когда-нибудь выдавал уверенный, но не тот ответ? Или, наоборот, был подозрительно сложным под простую задачу? Держи эту картинку в голове: к концу страницы станет видно, какого уровня картотека там стояла и какой стоило бы.

🗄 Возвращаемся к умной картотеке

В теме про память (6.2 — Короткая и длинная память) мы завели умную картотеку по смыслу (vector DB — хранилище, которое ищет не по точному слову, а по смыслу). Спросил «прозрачный навар из птицы» — а она находит карточку «куриный бульон», хотя ни одно слово не совпало.

Так вот, сам по себе механизм «спросил — нашли похожее — приложили к ответу» называется RAG (поиск нужных фактов в базе перед ответом). Повар-модель не выдумывает факт из головы, а сначала идёт в картотеку, достаёт нужную карточку и готовит ответ уже по ней. Это и есть заземление (grounding) — ответ привязан к реальному документу, а не к фантазии (про то, почему модель вообще фантазирует, — 2.5 — Галлюцинации). И сразу важное: RAG — это не «дообучить модель на наших документах». Сама модель-повар не меняется, мы её ничему не учим — меняется только то, что ей подкладывают в картотеку под рукой. Поэтому «бот отвечает по нашим файлам» не значит «бот выучил наши файлы»: он каждый раз сходил и достал.

Но «сходить в картотеку» можно по-разному. И вот тут вся соль этой темы: есть три уровня, насколько умно агент с этой картотекой обращается. От самого простого и дешёвого — до самого хитрого и дорогого. Разберём по очереди, на одной и той же кухне.

📥 Naive RAG — достал первую попавшуюся карточку

Самый простой уровень. Naive RAG (наивный, простой RAG) — это пассивный конвейер из трёх шагов, без единой остановки на подумать: спросил → достал похожее → ответил. Пришёл вопрос, картотека выдала самые похожие по смыслу карточки, повар приготовил ответ ровно по ним. Точка. Никто по дороге не спросил себя «а то ли я вообще достал?».

Это как поварёнок, которому сказали: «нужен бульон» — он подбежал к картотеке, схватил первую попавшуюся похожую карточку и понёс готовить, не глядя. Чаще всего схватит правильную — на то она и умная картотека. Но если рядом лежит похожая, но не та (карточка про другой бульон, устаревшая версия, соседний пункт регламента) — он и её принесёт с тем же уверенным лицом. Именно так FAQ-бот из начала страницы «нашёл не то и уверенно ответил».

Плюсы честные и весомые: быстро, дёшево, просто построить. Минус один, но важный: картотека тупая по своей природе — чем нашлось, тем и отвечает, без всякой самопроверки. Для огромного числа задач этого за глаза хватает. Вопрос «во сколько работает магазин» простой, карточка одна и однозначная, ошибиться почти негде. Бить из пушки тут не надо.

🕸 Graph RAG — картотека со связями между карточками

Следующий уровень. Представь, что карточки в картотеке не лежат вразнобой, а связаны между собой ниточками: кто кому поставщик, какое блюдо из какого полуфабриката, что от чего зависит. Это Graph RAG (RAG по графу связей) — картотека, в которой, кроме самих карточек, хранятся ещё и связи между ними.

Зачем это нужно? Затем, что появляются вопросы, на которые одной карточкой не ответишь — надо пройти по связям. «Если поставщик А сорвёт поставку — какие наши блюда из меню встанут?» Простая картотека найдёт карточку про поставщика А и карточку про меню — но не свяжет одно с другим. А картотека со связями пройдёт по ниточкам: поставщик А → эти три полуфабриката → вот эти семь позиций в меню. Ответ собран не из одной карточки, а из цепочки связей.

Звучит здорово — но есть цена. Эти связи кто-то должен сначала проложить, а потом поддерживать. Сменился поставщик, обновилось меню — все ниточки надо перепривязать, иначе граф врёт ещё увереннее простой картотеки. Поэтому Graph RAG — это дорого строить и дорого держать в актуальном состоянии. Он окупается там, где вопросы и правда «через связи»: зависимости, цепочки поставок, кто на кого влияет. Где таких вопросов нет — это просто дорогая картотека, которая делает работу простой.

🧑‍🍳 Agentic RAG — су-шеф у картотеки

Верхний уровень. Тут к картотеке приставлен су-шеф-привратник, который не просто хватает карточку, а работает с ней головой. Это agentic RAG (RAG с агентом-привратником): вместо пассивного конвейера — цикл «поиск → оценка → переспрос».

Смотри, что делает су-шеф, в отличие от поварёнка. Он сходил в картотеку, достал карточку — и первым делом оценивает найденное: то ли это вообще, хватает ли? Нюхает, проверяет. Чего-то не хватает — идёт за добавкой: переформулирует запрос, лезет в другой ящик, может и за пределы картотеки сходить — взять свежий факт инструментом (про инструменты агента — 4.1 — Инструменты агента). Видит на карточке дату — проверяет срок годности: не протух ли факт. Нашёл две карточки, которые спорят друг с другом, — не вываливает обе, а берёт надёжную по заранее заданному правилу (например, более свежий документ или официальный приказ — а не «на свой вкус»). И так по кругу, пока не соберёт нормальный ответ или честно не скажет «такого у меня нет».

То есть су-шеф закрывает ровно ту дыру, из-за которой простой бот «уверенно отвечает не тем»: между «достал» и «ответил» он вставляет «а проверил ли я, что достал то, что надо». За это и платят — на сложных и важных вопросах.

Три уровня картотеки — на одной кухне
📥
Naive
Достал первую похожую — и готовь. Спросил → нашёл → ответил. Быстро и дёшево. Но что нашлось, тем и отвечает.
🕸
Graph
Карточки связаны ниточками. Отвечает на вопросы «через связи»: кто на что влияет. Дорого строить и поддерживать.
🧑‍🍳
Agentic
Су-шеф оценивает найденное. Мало — идёт за добавкой, проверяет дату, при споре берёт надёжный источник. Цикл, а не конвейер.
Вниз по уровням — дешевле и проще, но тупее. Вверх — умнее, но дороже строить и держать. Выбор уровня — под задачу, а не «бери что покруче».

🔍 Что именно делает су-шеф (по шагам)

Чтобы «agentic RAG» не звучало как магия, разложим цикл су-шефа на человеческом языке. Это всё ещё не настоящий код — просто логика того, что происходит между вопросом и ответом.

Псевдокод · цикл су-шефа (agentic RAG) # это НЕ настоящий код, а логика на человеческом языке
вопрос = "вскрыл упаковку — гарантия ещё действует?"

повторять (но не больше 3 кругов, чтобы блюдо не стыло):
  карточки = картотека.найти_по_смыслу(вопрос)

  # ОЦЕНКА: то ли я достал и хватает ли?
  если карточек_не_хватает:
    вопрос = переформулировать(вопрос) # идём за добавкой
    продолжить

  # СРОК ГОДНОСТИ: не протух ли факт
  карточки = выкинуть_устаревшие(карточки)

  # КОНФЛИКТ: две карточки спорят — берём надёжную
  если карточки_противоречат:
    карточки = выбрать_проверенный_источник(карточки)

  остановиться # собрали что нужно — выходим из цикла

ответ = повар.приготовить(карточки + вопрос)
# → если так и не нашлось — честно «такого у меня нет», а не выдумка

Видишь разницу с naive RAG? Там было три шага по прямой. Тут — петля с проверками: оценил, при нехватке переспросил, выкинул протухшее, разрулил конфликт. Именно эти проверки и стоят денег (каждый круг — это лишний прогон модели, дольше и дороже), и именно они спасают на вопросах, где ошибиться нельзя.

🎚 Правило выбора уровня

Не «бери что поумнее». Уровень подбирают под задачу, и логика простая:

Главная мысль: чем выше уровень, тем больше он умеет — но и тем дороже обходится и тем больше в нём того, что может само сломаться. На этом и построен тренажёр ниже.

Прежде чем трогать тренажёр — прикинь сам. Возьми того AI-помощника, которого ты вспомнил в начале страницы. Задай ему два вопроса: насколько у него вопросы простые и однозначные — или там надо ходить по связям и проверять спорные факты? И во сколько обойдётся ошибка? Подержи догадку в голове: какой уровень картотеки ему по-хорошему нужен. Сейчас прогоним четыре ситуации и проверим чутьё.

🎮 Какой уровень картотеки нужен этой задаче

Четыре рабочие ситуации. По каждой выбери уровень: Naive (простой конвейер), Graph (картотека со связями) или Agentic (су-шеф с проверками). Жми кнопку — сразу увидишь разбор. Главные вопросы-подсказки: вопрос простой и однозначный — или через связи / спорный? и какова цена ошибки?

📖 Ключевые понятия

RAG (поиск нужных фактов в базе перед ответом)
Механизм, при котором повар-модель перед ответом идёт в картотеку, достаёт релевантные карточки и готовит ответ по ним, а не из головы. Даёт заземление/grounding (привязку ответа к источнику) и ссылки на источники/citations. Расшифровывается как retrieval-augmented generation.
Naive RAG (наивный, простой RAG)
Самый простой уровень: пассивный конвейер «спросил → достал похожее → ответил», без самопроверки. Быстро, дёшево, просто построить. Минус — что нашлось по смыслу, тем и отвечает, даже если достал не то. Подходит для простых однозначных вопросов с низкой ценой ошибки.
Graph RAG (RAG по графу связей)
Картотека, где, кроме карточек, хранятся связи между ними (кто кому поставщик, что от чего зависит). Умеет отвечать на вопросы «через связи», проходя по цепочке. Дорого строить и поддерживать: связи надо прокладывать и обновлять, иначе граф врёт.
Agentic RAG (RAG с агентом-привратником)
Верхний уровень: к картотеке приставлен су-шеф, и вместо конвейера работает цикл «поиск → оценка → переспрос». Агент оценивает найденное, при нехватке переспрашивает или идёт за фактом другим инструментом, проверяет дату карточки, при конфликте выбирает проверенный источник. Дороже и сложнее; оправдан на сложных и высокоставочных вопросах.
Откуда берутся карточки (термины из прошлых тем)
Эти слова уже встречались в 6.2 и 7.2 — собираем в одном месте, чтобы держались вместе. Чтобы картотека работала, документы заранее режут на куски-карточки (нарезка/chunking) и кладут в умную картотеку по смыслу (vector DB). Смысл каждой карточки хранится как набор чисел (эмбеддинг/embedding — представление смысла числами), и поиск идёт по этим числам. Сам момент «достать нужные карточки по запросу» — это поиск/retrieval, а поиск не по слову, а по смыслу — поиск по смыслу/semantic search.

🛡️ Частые заблуждения

«Agentic RAG умнее — значит, всегда лучше, надо брать его»

Нет. «Умнее» здесь значит «дороже, медленнее и сложнее». На простом однозначном вопросе су-шеф с проверками — пустая трата: лишние круги, лишний счёт, и он сам становится новым местом, где что-то может сломаться. На FAQ про режим работы naive RAG обыграет agentic по всем статьям, кроме слайда вендора.

«Если бот ответил уверенно — значит, он нашёл правильную карточку»

Уверенность к правоте отношения не имеет. Naive RAG отвечает с одинаково бодрым лицом и когда достал нужную карточку, и когда схватил похожую, но не ту. Самопроверки на этом уровне нет в принципе — её добавляет только су-шеф (agentic RAG). Уверенный тон — не доказательство, что факт верный.

«Граф знаний — это просто картотека побольше и поновее, разница в объёме»

Разница не в объёме, а в связях. Простая картотека хранит отдельные карточки, граф — ещё и ниточки между ними: кто на что влияет. Это другая работа и другие деньги: связи кто-то прокладывает руками и обновляет при каждом изменении. Граф нужен под вопросы о зависимостях, а не «чтобы помещалось больше».

🧠 AI-чутьё (AI Judgment)

Agentic RAG — для сложного и высокоставочного; иначе это overkill

Главная мысль, которую стоит унести: не каждому вопросу — agentic RAG. Су-шеф с проверками оправдан там, где вопрос сложный или многошаговый, документы спорят и устаревают, а ошибка дорого стоит — иск, штраф, потерянный контракт. Там его круги «оцени, переспроси, разреши конфликт» окупаются с лихвой. Но на простом FAQ это overkill (стрельба из пушки по воробьям): ты платишь за сложность, которая задаче не нужна.

И вот про что забывают чаще всего: сам су-шеф — это новый источник ошибок и расходов. Каждый его круг — лишний прогон модели (дольше, дороже), а лишняя логика «оценить и переспросить» — это лишние места, где что-то может пойти не так, зациклиться, выбрать не тот источник. Чем больше движущихся частей, тем больше ломается. На простой задаче ты не «делаешь надёжнее» — ты добавляешь хрупкости и счёт за неё.

Отсюда рабочее правило владельца. Услышал «agentic RAG», «граф знаний», «самопроверка и разрешение конфликтов» — мысленно приложи два вопроса: «Мои вопросы правда сложные / через связи / спорные — или это десять однотипных FAQ?» и «Во сколько обойдётся ошибка — и не дороже ли су-шеф, которого мне продают?». Если задача простая, а тебе продают верхний уровень «чтобы по-серьёзному» — это красный флаг: уточни, зачем тут сложность, или возьми naive RAG и сэкономь.

🎯 Практика

Одно задание на пять минут, чтобы выбор уровня закрепился на твоих реальных задачах, а не на абстрактных.

  1. Выпиши две задачи со своей работы, где AI «отвечает по документам»: справочник для клиентов, помощник по регламентам, ассистент по базе знаний — любую.
  2. По каждой задай два вопроса: «вопросы тут простые и однозначные — или надо ходить по связям и разбирать спорные факты?» и «во сколько обойдётся неверный ответ?». По ответам пометь уровень: простые и дёшево ошибиться — naive; через связи — graph; сложно и дорого ошибиться — agentic.
  3. Для тех, где вышло graph или agentic, добавь третий вопрос — «кто построит и будет поддерживать связи / проверки, и сколько это стоит против цены ошибки?». Если ответа нет — ты только что нашёл, что обязательно надо проговорить с вендором или командой до запуска, а не после.

Помнишь помощника из начала страницы? Теперь видно: если он «уверенно отвечал не тем» на простых вопросах — там стоял naive RAG, и это нормально, просто карточки надо почистить. А если он был подозрительно сложным под десяток типовых вопросов — это был overkill, за который кто-то переплатил.

🔗 Что дальше

Следующая тема: 7.4 — Грязные данные + агент = катастрофа. Оборотная сторона картотеки: даже умнейший су-шеф врёт, если в карточках мусор и устаревшие документы. Откуда в картотеке берётся хлам и почему «agentic RAG» его не спасает.

Связанные темы: