теория
У RAG есть два характера, и разница между ними — деньги.
Наивный RAG — цепочка. Вопрос → эмбеддинг → топ-5 ближайших кусков → ответ. Один поиск, один вызов модели, конец. Дёшево, быстро — и достаточно для большинства вопросов: «как работает подписка на овощи?» находится с первого захода, потому что ответ лежит в одном месте.
Но дай цепочке вопрос посложнее — и она сядет в лужу, причём уверенно. «Собери сырную тарелку на двадцать гостей в пять тысяч, без козьего» — цепочка найдёт пять кусков про сыр и составит из них что-то сырообразное: бюджет не сойдётся, козий проскочит. Она не виновата: ответ на такой вопрос не лежит ни в одном куске каталога — его нужно собрать за несколько шагов. А шагов у ровно один, и оценить собственную выдачу она не умеет.
Агентный RAG — цикл. Тот же поиск, но внутри агентного цикла: модель планирует («сначала твёрдые сыры до 800 ₽/кг»), смотрит на выдачу, оценивает её («козий бри просочился — уточняю запрос»), переформулирует, ищет ещё, считает бюджет инструментом — и лишь потом синтезирует ответ. Поиск из конвейера стал инструментом в руках работника: столько запросов, сколько нужно задаче.
Цена очевидна: вместо одного вызова модели — пять-десять, вместо одного поиска — несколько, латентность из секунды превращается в десять. — не «RAG получше», а другой ценовой класс: цикл против цепочки — это снова знакомый размен качества на стоимость.
Значит, выбирать надо не «какой RAG правильный», а «какому вопросу что положено» — и это уже не про ИИ, а про архитектуру, которой ты занимаешься весь курс. Простому — дёшево, сложному — дорого, и главное — уметь отличить одно от другого до того, как потрачены деньги.