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

Классический агент на базе LLM живёт ровно один диалог. Закрыли сессию — и он забыл, что вы час назад объяснили ему структуру проекта, какие библиотеки запрещены и что кнопка «Оплатить» на вашем сайте называется по-другому. На следующем запуске всё повторяется: те же уточняющие вопросы, те же ошибки, те же токены, потраченные на пересказ контекста. Эпизодическая память — попытка это починить: агент сохраняет прошлые «эпизоды» работы и подтягивает их, когда встречает похожую задачу.
Что вообще значит «память эпизодов»
В исследованиях памяти агентов обычно различают несколько типов, и путать их дорого. Рабочая память — это то, что помещается в контекстное окно прямо сейчас. Долговременная память делится грубо на два вида: семантическую (факты и правила: «пользователь предпочитает Python 3.12») и эпизодическую (конкретные события: «14 марта я пытался задеплоить через Docker, упал на этапе сборки, помогло вот это»).
Безпамятный агент оперирует только тем, что вы положили ему в промпт и контекст текущей сессии. Агент с эпизодической памятью после каждого завершённого эпизода записывает его во внешнее хранилище — чаще всего в векторную базу1 — и на новой задаче ищет там похожие случаи, чтобы не изобретать решение заново.
Разница не в том, что один агент «умнее». Разница в том, что один учится на собственных прошлых запусках, а другой каждое утро приходит на работу с амнезией.
Как это выглядит в цикле работы
Типичный цикл агента с эпизодической памятью выглядит так:
- Получить задачу и сформировать её текстовое описание.
- Найти в хранилище похожие прошлые эпизоды по семантической близости.
- Подмешать отобранные эпизоды в контекст как примеры или предупреждения.
- Выполнить задачу, зафиксировав шаги, инструменты и результат.
- Сохранить новый эпизод — с пометкой, что сработало, а что нет.
У безпамятного агента остаются только шаги 1 и 4, а между запусками ничего не переживает.
Где память реально помогает
Выигрыш заметен там, где задачи повторяются с вариациями, а цена ошибки высокая.
- Кодинг-агенты. Один раз наступив на грабли (например, что в этом репозитории тесты запускаются нестандартной командой), агент запоминает и не повторяет. Без памяти он будет угадывать команду каждый раз.
- Поддержка пользователей. Агент помнит историю обращений конкретного клиента и не заставляет его пересказывать проблему заново.
- Долгие многошаговые процессы. Ресёрч, сбор данных, автоматизация рутины — там, где задача растягивается на дни и не влезает в одно контекстное окно.
Есть исследовательские работы, показывающие, что подмешивание релевантных прошлых траекторий повышает успешность агентов на повторяющихся задачах. Конкретные проценты сильно зависят от бенчмарка и постановки, поэтому переносить чью-то цифру на свой случай не стоит — измеряйте на своих задачах.
Чем за это платят
Память — не бесплатная суперспособность. У неё есть прямая цена и несколько неочевидных.
| Параметр | Без памяти | С эпизодической памятью |
|---|---|---|
| Токены на запрос | Только текущий контекст | Плюс подмешанные эпизоды — контекст и счёт растут |
| Латентность | Один вызов модели | Плюс поиск по хранилищу перед вызовом |
| Инфраструктура | Только модель | Векторная БД, пайплайн записи и очистки |
| Воспроизводимость | Высокая: одинаковый вход — похожий выход | Ниже: результат зависит от накопленной истории |
| Класс ошибок | Забывчивость | Устаревшие или «отравленные» воспоминания |
Отравление памяти — отдельный риск
Если агент однажды записал неверный вывод как успешный эпизод, он будет тащить эту ошибку в будущие задачи и усиливать её. Хуже, когда содержимое эпизода формируется из данных, которыми управляет пользователь: тогда в память можно подсунуть вредную инструкцию, которая всплывёт при следующем запуске. Это разновидность prompt injection2, растянутая во времени — сегодня заложили, завтра сработало.
Отсюда практическое правило: эпизодическая память требует не только записи, но и забывания. Устаревшие эпизоды нужно помечать и вытеснять, а перед подмешиванием — фильтровать по свежести и надёжности источника.
Когда память не нужна
Не каждой задаче полезно помнить прошлое. Если запросы разовые и независимые — разовый перевод текста, генерация одного изображения, ответ на изолированный вопрос — память только добавит токенов, латентности и шанс подмешать нерелевантный эпизод. Для таких сценариев безпамятный агент проще, дешевле и предсказуемее.
Ориентир для решения простой: посчитайте, как часто задачи реально похожи друг на друга и сколько стоит повторение ошибки. Если повторов мало, а ошибки дешёвые — память не окупится.
Промежуточный вариант
Между двумя крайностями есть распространённая практика: не полноценная эпизодическая память, а короткое резюме прошлой сессии, которое агент сам пишет в конце и подгружает в начале следующей. Это дешевле векторного хранилища и покрывает частый случай «продолжить с того места, где остановились», не втягивая инфраструктуру и риски отравления в полном объёме.
1 Векторная база — хранилище, где текст переведён в числовые векторы (эмбеддинги), и поиск идёт по смысловой близости, а не по точному совпадению слов.
2 Prompt injection — атака, при которой во входные данные встраивают инструкции, которые модель ошибочно воспринимает как команды от разработчика или пользователя.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Частые вопросы
Чем эпизодическая память отличается от увеличения контекстного окна?
Насколько сильно память увеличивает расход токенов?
Что такое отравление памяти простыми словами?
Нужна ли мне векторная база для памяти агента?
Память делает агента менее предсказуемым — это проблема?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.