Перейти к содержанию
Innovialabs

Долгосрочная память ИИ-агентов: паттерны и хранение

Продвинутое4 мин

Коротко

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

Как на самом деле работает память агента

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

Цель — не запомнить все. Цель — помнить правильное, поддерживать его актуальным и забывать, когда нужно.

Четыре паттерна памяти

ПаттернЧто хранитсяПодходит дляСлабое место
Скользящее саммариСжатый пересказ прошлых диалоговПродолжения длинных разговоровПри каждом пересказе теряются детали
Извлеченные фактыКороткие утверждения: «предпочитает доставку после 18:00»Предпочтения, решения, ограниченияНужны хорошее извлечение и разрешение конфликтов
Векторный поискЭмбеддинги прошлых сообщений и заметок«Что мы обсуждали про X?»Может достать устаревшее или нерелевантное
Профиль пользователяСтруктурные поля: язык, город, тариф, рольСтабильные атрибуты, персонализацияЖесткий, покрывает только известные поля

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

Запись воспоминаний

Не сохраняйте каждое сообщение. Запускайте отдельный шаг memory writer после реплики или в конце сессии:

  1. Модель читает последний обмен репликами и предлагает кандидатов в память.
  2. Каждый кандидат проверяется: касается ли он пользователя, долговечен ли, пригодится ли позже, сказал ли это пользователь, а не модель догадалась.
  3. Он сравнивается с существующей памятью: добавить, обновить, объединить или игнорировать.
  4. Запись сохраняется с метаданными.

Минимальная запись памяти:

{
  "user_id": "u_123",
  "type": "preference",
  "text": "Prefers answers in Uzbek",
  "source": "chat:2026-10-02:msg_88",
  "confidence": "stated",
  "created_at": "2026-10-02",
  "expires_at": null,
  "sensitivity": "low"
}

Поле source позволяет понять, почему агент так считает. Поле confidence отделяет сказанное пользователем от выведенного моделью; выведенные факты используйте осторожно или уточняйте у пользователя.

Чтение воспоминаний

От качества выборки зависит, поможет память агенту или запутает его.

  • Сначала фильтр, потом поиск: по пользователю, типу, сроку действия. Никогда не ищите по всем пользователям сразу.
  • Ранжируйте по релевантности и свежести: новый факт обычно важнее старого на ту же тему.
  • Ограничивайте объем: несколько точных воспоминаний лучше множества отдаленно связанных.
  • Подавайте память как данные: в явно отмеченном блоке промпта, чтобы модель воспринимала ее как контекст, а не инструкции.

Устаревание и обновление

Память стареет. Клиент переезжает, меняет тариф или завершает проект.

  • Фактам с ограниченным сроком давайте дату истечения: «в командировке до пятницы».
  • При противоречии заменяйте старый факт и сохраняйте запись в истории, если нужен аудит.
  • Периодически консолидируйте: объединяйте дубликаты, удаляйте то, что ни разу не понадобилось.
  • Пересобирайте саммари из фактов, а не делайте саммари из саммари бесконечно — так теряются детали.

Контроль приватности

Запомненные данные — это персональные данные, часто более чувствительные, чем исходный чат, потому что они сжаты и упорядочены.

  • Сообщайте пользователям, что агент запоминает, и какую информацию.
  • Дайте возможность просматривать, редактировать и удалять память, включая удаление всего сразу.
  • Не храните чувствительные категории — здоровье, платежные данные, пароли, — если продукт без этого не может и у вас нет правового основания.
  • Строго изолируйте клиентов: каждый запрос ограничен ID пользователя и организации на уровне базы.
  • Удаляйте везде: вместе с записью удаляйте ее эмбеддинг, кэши и копии в логах.
  • Применяйте к хранилищу памяти те же требования локализации данных, что и к основной базе.

Частые ошибки

  • Хранить сырые расшифровки и называть это памятью.
  • Сохранять догадки модели как факты.
  • Нет срока жизни, и агент уверенно использует устаревшие данные.
  • Поиск по памяти без фильтра по пользователю, из-за чего данные утекают между аккаунтами.
  • Считать сохраненный текст доверенными инструкциями — это открывает путь для prompt injection через память.

Частые вопросы

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

Поможем с этим

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

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.