Исследования ИИ

Три типа памяти AI-агента: семантическая, эпизодическая и процедурная — как реализовать каждую

У большинства LLM-агентов память стирается после каждой сессии. Разбираю три типа персистентной памяти — семантическую, эпизодическую и процедурную — и показываю, как реализовать каждую через Mengram и LangChain.

6 апреля 2026 г.
7 мин чтения
LangChainпамять агентовcognitive architectureMengramPostgreSQLсемантическая памятьэпизодическая памятьпроцедурная память

Проблема: агент без памяти — это терминал с амнезией

Каждый, кто строил AI-агентов на LangChain, упирался в одну стену: сессия закончилась — контекст исчез. Пользователь возвращается, и агент не помнит ни его имени, ни предыдущих решений, ни того, что уже пробовали и не сработало.

ConversationBufferMemory хранит историю текущей сессии. ConversationSummaryMemory сжимает её в саммари. Но между сессиями — пустота. Агент, который не помнит прошлых взаимодействий, не может персонализировать ответы, учиться на своих ошибках или воспроизводить успешные паттерны решения задач.

Это не технический нюанс — это фундаментальное ограничение, которое превращает «интеллектуального ассистента» в одноразовый автокомплит.

Когнитивная архитектура: чему учит психология

В когнитивной психологии выделяют три основных типа долговременной памяти. Эта классификация неслучайно переносится на AI-агентов — каждый тип решает свой класс задач.

Семантическая память — «что я знаю»

Факты, концепции, предпочтения пользователя. Не привязаны к конкретному моменту. Примеры в контексте агента: «Пользователь предпочитает Python, а не JavaScript», «Клиент работает в финтехе, команда из 8 человек», «Проект использует PostgreSQL 16, деплой через Kubernetes».

Семантическая память отвечает на вопрос: что агент знает о мире и о пользователе. Без неё каждая сессия начинается с чистого листа — приходится заново объяснять контекст.

Эпизодическая память — «что произошло»

Конкретные события с временной привязкой и результатами. Примеры: «Вчера пользователь просил настроить CI/CD — получилось после третьей итерации», «На прошлой неделе агент рекомендовал миграцию на Alembic — пользователь отказался, потому что уже использует Flyway».

Эпизодическая память — это журнал событий. Она позволяет агенту не повторять неудачные рекомендации и учитывать историю взаимодействий.

Процедурная память — «как я это делаю»

Паттерны, алгоритмы, усвоенные последовательности действий. Примеры: «Для деплоя этого проекта: сначала запусти тесты, потом собери Docker-образ, потом обнови Helm chart», «Когда пользователь просит ревью PR — сначала проверь типы, потом бизнес-логику, потом тесты».

Процедурная память — это «мышечная память» агента. Она хранит не факты и не события, а как делать.

Mengram: три типа памяти в одной интеграции

Mengram — это библиотека, которая добавляет в LangChain персистентную память всех трёх типов. Ключевая идея: память сохраняется между сессиями и разделена по типам.

Архитектура хранения

Семантическая память — key-value хранилище с векторным индексом. Записи перезаписываются при обновлении факта, поиск по семантической близости через эмбеддинги.

Эпизодическая память — append-only лог с временными метками. Индексируется по времени и по семантике события. Никогда не перезаписывается — только добавляется.

Процедурная память — структурированные процедуры с полем confidence. Обновляется при каждом успешном или неуспешном выполнении — confidence корректируется.

Выбор бэкенда: PostgreSQL vs SQLite

PostgreSQL — для продакшена и мультипользовательских агентов: pgvector для семантического поиска, полноценные транзакции для concurrent доступа, горизонтальное масштабирование. Подходит для агентов с тысячами пользователей.

SQLite — для локальных агентов и прототипов: нулевая конфигурация, файл на диске (легко бэкапить), идеален для персональных ассистентов.

Интеграция с LangChain

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

Практические паттерны: когда какой тип памяти нужен

Пользовательский ассистент (support-бот, персональный помощник)

Приоритет: семантическая → эпизодическая. Ассистенту критично знать предпочтения пользователя (семантика) и помнить предыдущие обращения (эпизоды). Процедурная память менее важна — действия стандартные.

Coding-агент (автоматизация разработки)

Приоритет: процедурная → семантическая. Агенту нужно знать, как деплоить конкретный проект (процедурная), какой стек используется (семантическая). Эпизодическая полезна для отладки — помнить, что уже пробовали.

Аналитический агент (исследования, отчёты)

Приоритет: эпизодическая → семантическая. Критично помнить, какие данные уже анализировали, какие гипотезы проверяли, какие выводы делали. Семантическая хранит контекст предметной области.

Паттерн хранения в PostgreSQL: практическая схема

Три таблицы под три типа памяти. Эпизодическая — append-only, индекс по времени для хронологических запросов. Семантическая — upsert по ключу, перезаписывает устаревшие факты. Процедурная — обновляет confidence и execution_count при каждом использовании. Все три таблицы используют pgvector (VECTOR(1536)) для семантического поиска с IVFFlat-индексами.

Чего не хватает и что дальше

Mengram решает базовую задачу — персистентность трёх типов памяти. Но остаются открытые вопросы.

  • Забывание. Человеческая память забывает — это не баг, а фича. Агент, который помнит всё, рискует тащить устаревший контекст. Нужен механизм decay: снижение веса старых воспоминаний.
  • Конфликты. Семантическая память говорит, что пользователь предпочитает Python, но последние три эпизода — он писал на TypeScript. Нужна стратегия разрешения конфликтов между типами.
  • Приватность. Персистентная память — это персональные данные. GDPR, право на удаление, шифрование at rest — всё это нужно решать на уровне архитектуры.
  • Объём контекста. Память может быть огромной, а контекстное окно — ограничено. Retrieval-стратегия — отдельная инженерная задача.

Выводы

Разделение памяти на три типа — не академическое упражнение, а практический паттерн проектирования. Семантическая память позволяет персонализировать. Эпизодическая — учиться на опыте. Процедурная — воспроизводить навыки.

Mengram показывает, что реализовать это можно без фундаментального переписывания агента — интеграция через несколько строк кода. PostgreSQL + pgvector дают нужную инфраструктуру для продакшена, SQLite — для экспериментов.

Агент без памяти — это терминал. Агент с памятью — это ассистент, который становится полезнее с каждой сессией.

Автор: Алик Завалишев

Эксперт по ИИ и автоматизации процессов

Больше статей