Агентская полка
← Все материалы

Контекст, память и RAG

Почему агент забывает, чем «слой памяти» отличается от поиска по документам и когда хватает обычного поиска. Три слова, которые в карточках значат разное.

Почти половина каталога так или иначе обещает «помнить». За этим стоят три разные вещи, и путать их дорого: от этого зависит, будет ли инструмент работать на вашей задаче.

Контекст — то, что модель видит сейчас

У модели есть окно контекста: сколько текста она может держать перед глазами в одном разговоре. Всё, что не влезло, для неё не существует.

Отсюда первая неприятность: длинный разговор не «помнится», а обрезается. Модель не помнит начало беседы — она видит только то, что ей передали в этот раз.

Второе: контекст стоит денег и времени. Чем больше текста вы приложили, тем дороже каждый следующий ответ.

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

Память — то, что сохраняется между разговорами

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

Хранилище бывает разным: файл в проекте, база, профиль пользователя. Важно не где, а что именно туда попадает и по какому правилу отбирается.

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

RAG — поиск, который подставляет найденное

RAG расшифровывается как генерация с опорой на найденное. Работает так:

  1. Ваши документы режут на куски — чанки.
  2. Каждый кусок превращают в набор чисел (вектор), по которому можно искать «похожее по смыслу».
  3. На вопрос ищут несколько ближайших кусков.
  4. Их подставляют в контекст вместе с вопросом.

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

Поэтому в RAG важнее всего не модель, а поиск: как нарезали, как искали, сколько кусков взяли. Плохая нарезка губит даже хорошую модель.

Чем RAG не является

Не обучением. Дообучение меняет саму модель на ваших данных: долго, дорого, и знания в ней застревают на дате обучения. RAG ничего не меняет в модели — он подкладывает текст.

Не «модель знает ваш проект». Она знает только то, что попало в контекст в этот раз.

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

Как выбрать под задачу

Что нужно Чем обойтись
Найти конкретный документ по названию или коду обычный поиск по словам
Найти «по смыслу», разными словами поиск по векторам
Помнить ваши предпочтения между сессиями профиль и правила отбора, а не свалка
Знать большой объём документации RAG с хорошей нарезкой
Изменить стиль ответов модели дообучение или хорошая инструкция

Что проверить у инструмента

Где хранится индекс и кто его видит. Что именно попадает в запрос — целиком документы или найденные куски. Что происходит, когда ничего не нашлось: говорит «не знаю» или сочиняет. И сколько это стоит на вашем объёме: векторный поиск дешёвый, а вот загрузка тысячи документов в модель — нет.

Материалы по этой теме — на полках «Память» и «RAG».