"Три типа памяти AI-агента: почему ваш бот забывает всё после каждой сессии"

Три типа памяти AI-агента: почему ваш бот забывает всё после каждой сессии

Вы собрали AI-агента на LangChain. Он отвечает на вопросы, выполняет задачи, помнит контекст разговора. А потом пользователь закрывает чат и возвращается завтра — и агент не помнит ничего. Ни имени, ни предпочтений, ни того, что вчера три часа отлаживали webhook.

Стандартная память LangChain работает внутри сессии. Между сессиями — амнезия. И это не баг фреймворка, а архитектурный пробел, который нужно закрывать отдельно.

Три типа памяти — как у человека

Когнитивная психология давно разделила долговременную память на три типа. Оказывается, эта модель отлично ложится на AI-агентов:

**Семантическая — «что я знаю».** Факты и предпочтения. «Пользователь работает на Python, проект на FastAPI, деплой в Kubernetes». Агент с семантической памятью не задаёт одни и те же вопросы дважды.

**Эпизодическая — «что произошло».** Журнал событий с результатами. «Позавчера настраивали CI/CD, проблема была в nginx конфиге, решили за три итерации». Агент не повторяет неудачных рекомендаций и учитывает контекст прошлых взаимодействий.

**Процедурная — «как я это делаю».** Усвоенные алгоритмы. «Для деплоя этого проекта: тесты → Docker → Helm → health check». Агент воспроизводит успешные паттерны, а не изобретает их заново.

Mengram: персистентная память для LangChain

Mengram — интеграция, которая добавляет все три типа памяти в LangChain-агентов. Память сохраняется в PostgreSQL или SQLite и переживает перезапуски сессий.

Подключение — несколько строк:

```python from mengram import MengramMemory

memory = MengramMemory( backend="postgresql", connection_string="postgresql://...", user_id="user_123" ) ```

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

Когда какой тип нужен

Для **саппорт-бота** — семантическая память в приоритете. Знать клиента, его тариф, историю обращений.

Для **coding-агента** — процедурная. Помнить, как деплоить конкретный проект, какие грабли уже собирали.

Для **аналитического агента** — эпизодическая. Какие гипотезы проверяли, какие данные уже смотрели, какие выводы делали.

Практика: схема хранения

Семантическая память — key-value с upsert. Факт обновился — перезаписываем.

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

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

Все три таблицы используют векторные эмбеддинги (pgvector) для семантического поиска — агент находит релевантные воспоминания, а не перебирает всё подряд.

Открытые вопросы

**Забывание.** Человек забывает — и это полезно. Агент, помнящий всё, тащит устаревший контекст. Нужен механизм decay.

**Конфликты между типами.** Семантика говорит «пользователь любит Python», но последние пять эпизодов — TypeScript. Как разрешать?

**Приватность.** Персистентная память — это персональные данные. GDPR и право на удаление нужно закладывать в архитектуру.

**Контекстное окно.** Памяти много, а промпт ограничен. Выбор — что именно подтягивать — отдельная инженерная задача.

Итог

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

Mengram показывает, что реализовать это можно без переписывания агента. Несколько строк кода, PostgreSQL с pgvector — и агент начинает помнить.

А ваши агенты помнят пользователей между сессиями? Или каждый раз — знакомство с чистого листа?

1
Начать дискуссию