Трехуровневая память агента: эксперимент с архитектурой

👁 33 IVOL-Service

Память агента снова начала сыпаться. Буквально два дня — и контекст теряется, хотя сообщений накопилось нормально. Не мог понять, в чем дело.

Вчера пришла идея — сделать как у человека.

Как работает человеческая память

У нас есть краткосрочная и долгосрочная память. Мы не сразу помним всё. Чтобы что-то вспомнить, нужно начать копать в глубину. Нужны маячки — определения того, что было и как это искать.

У меня стоит векторная база, которая помнит всё. Но нужны ориентиры для поиска.

Как я это реализовал

Краткосрочная память

Общий контекст — 60 сообщений (30 моих, 30 агента).

Нейросеть держит их в оперативном доступе. С каждым новым сообщением старые смещаются вниз.

Среднесрочная память (слепки)

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

Этот слепок:
• Заталкивается в базу
• Передаётся в системный промпт

Получается цепочка:

  1. 25 новых сообщений накопилось → делается слепок
  2. Слепок уходит в память
  3. Сообщения смещаются ниже
  4. Модель помнит суть через слепки

Таким способом я передаю в системный промпт максимум 20 суммаризаций вместо тысяч сообщений.

Долгосрочная память

Векторная база хранит вообще всё. Дал модели доступ к поиску по среднесрочным слепкам.

Что получилось

Три уровня памяти:
• Краткосрочная: 60 последних сообщений (держит постоянно)
• Среднесрочная: слепки блоков по 25 сообщений (маячки для поиска)
• Долгосрочная: векторная база (хранит всё)

Пока работает хорошо.

Что дальше

Нужно ждать и тестировать. Когда наберётся очень большое количество сообщений, станет понятно, насколько сильно растягивается промпт.

Думаю, можно будет добавить ещё один уровень маячков выше — чтобы модель могла искать ещё глубже.

Посмотрим, как поведёт себя система под нагрузкой.


Время чтения: 2 мин
Всего слов: 286
Обновлено: