← Курс по Mastra · Урок 5

Урок 5 · ~8 минут

RAG: агент, который знает ваши материалы

Одна идея этого урока: RAG – это «умная библиотека» для агента. Вместо того чтобы запихивать все материалы в промпт, агент находит и читает только нужные страницы.

Проблема длинного промпта

У вашей школы – сотни страниц: уроки, регламенты, ответы на вопросы. Засунуть всё в промпт нельзя: контекст ограничен, дорого, и модель начинает «терять» детали в массе текста. RAG (Retrieval-Augmented Generation) решает это в два этапа:

  1. Подготовка (один раз): материалы нарезаются на фрагменты, каждый превращается в «смысловой отпечаток» (embedding) и складывается в векторную базу.
  2. Ответ (каждый раз): по вопросу студента находятся 3–5 самых близких по смыслу фрагментов – и только они подкладываются модели.

Конвейер в Mastra

const doc = MDocument.fromMarkdown(текстКурса)

const chunks = await doc.chunk({          // 1. нарезка
  strategy: 'markdown', maxSize: 512,
})

const { embeddings } = await embedMany({  // 2. смысловые отпечатки
  model: 'openai/text-embedding-3-small',
  values: chunks.map(c => c.text),
})

await vectorStore.upsert({                // 3. в векторную базу
  indexName: 'school-knowledge',
  vectors: embeddings,
})

Источник: документация Mastra, раздел RAG. Векторной базой может быть ваш PostgreSQL (pgvector) – отдельный сервис не нужен.

А дальше – самое приятное: готовый инструмент createVectorQueryTool отдаёт эту библиотеку агенту. Агент из урока 2 получает «руку», которой сам ищет по базе знаний, когда считает нужным.

Когда RAG, а когда просто промпт

СитуацияРешение
Материалов мало (пара страниц), меняются редкоПросто вложить в промпт
Сотни страниц, нужны точные ответы со ссылками на источникRAG
Материалы часто обновляютсяRAG: обновили базу – агент сразу отвечает по-новому, промпт трогать не надо
Привязка к вашим проектам Бот «задай вопрос по курсу»: студент спрашивает про промптинг – RAG находит нужные фрагменты из ваших уроков, и агент отвечает вашими же формулировками, со ссылкой на урок. Меньше галлюцинаций, больше доверия.

Проверьте себя

1. Что такое embedding простыми словами?

2. Обновились цены на курсы. Что нужно сделать при подходе RAG?

💬 Спросите Claude Code: «что из материалов школы стоит положить в RAG-базу первым делом?»