
Mastra придумала «память» для AI-агентов: сжатие диалогов в наблюдения и приоритеты светофором из эмодзи
Почему у агентных систем «ломается память»
Длинные диалоги и логи инструментов быстро раздувают историю переписки и съедают контекстное окно, из‑за чего агент становится дороже, медленнее и чаще ошибается. В Mastra (open-source фреймворк для агентных приложений) предлагают заменить привычную стратегию «таскать весь чат с собой» на новый механизм под названием observational memory — «память-наблюдения».
Как это устроено: наблюдения вместо полного чата
Ключевой сдвиг — хранить в контексте не всю переписку, а плотные заметки о фактах, решениях и изменениях состояния.
Два фоновых агента: Observer и Reflector
Mastra использует двух «служебных» агентов, которые следят за беседой и превращают ее в компактный журнал:
- Observer сжимает накопившиеся сообщения в набор «наблюдений».
- Reflector включается позже и конденсирует сами наблюдения: объединяет близкие пункты и отбрасывает то, что потеряло актуальность.
В итоге получается трехуровневая структура: текущие сообщения → observations → reflections.
Никаких векторных БД: только текст и обычные базы
Отдельный акцент — системе не нужна vector database или граф знаний. Наблюдения сохраняются как обычный текст в традиционных хранилищах (в статье в качестве примеров упоминаются PostgreSQL, LibSQL, MongoDB) и затем подгружаются в контекст напрямую, без embedding‑поиска.
Приоритеты «светофором»: эмодзи как уровни важности
Mastra помечает наблюдения простыми маркерами, похожими на уровни логирования — и использует для этого «светофорные» эмодзи:
- 🔴 (красный круг) — важное
- 🟡 (желтый круг) — возможно пригодится
- 🟢 (зеленый круг) — фон/контекст
Логика выбора прагматичная: языковые модели хорошо распознают такие шаблоны, а значит приоритизация работает надежнее и предсказуемее.
Работа со временем: модель из трех дат
Чтобы агент лучше рассуждал о сроках, Mastra описывает «временную рамку» наблюдений через три даты:
- дата самого наблюдения,
- дата события, на которое оно ссылается,
- «относительная дата» (например, «через неделю»), которая привязывается к конкретному календарному дню.
Когда включается сжатие: пороги токенов
Механизм не пытается подводить «итоговый пересказ» в последний момент. Вместо этого он работает как непрерывный, дополняемый журнал событий.
- По умолчанию после накопления примерно 30 000 токенов сообщений срабатывает Observer и превращает историю в observations.
- Если observations разрастаются примерно до 40 000 токенов, подключается Reflector и делает второй, более жесткий слой сжатия (reflections).
Заявленные коэффициенты компрессии
В статье приводятся оценки, которые Mastra заявляет для разных типов нагрузок:
- Для текстовых разговоров: примерно 3×–6× (на упомянутом бенчмарке — около 6×).
- Для «инструментальных» агентов (браузер, код, выводы инструментов): примерно 5×–40×. Отдельно отмечается, что «тяжелые» артефакты вроде больших токенизированных скриншотов могут ужиматься до сотен токенов в форме наблюдений.
Совместимость с prompt caching
Поскольку наблюдения добавляются постепенно и «префикс» промпта остается относительно стабильным, подход, по заявлению Mastra, хорошо сочетается с кешированием промптов у крупных провайдеров. Существенная «перетряска» контекста происходит в основном на стадии reflection, которая запускается редко.
Бенчмарк LongMemEval: заявка на новый лидерский результат
Mastra утверждает, что observational memory показывает топовый результат на LongMemEval:
- 94.87% с моделью “GPT-5 Mini”
- 84.23% с GPT‑4o
При этом подход позиционируется как более «прямой»: без сложных многоступенчатых retrieval/переранкинг‑цепочек, с упором на стабильное окно контекста и «лог событий».
Ограничения и что обещают дальше
В статье отмечаются несколько практических нюансов:
- Сейчас построение наблюдений выполняется синхронно и может блокировать диалог; заявлено, что асинхронный фоновый режим в планах.
- Сообщается, что модели Claude 4.5 не подходят на роли Observer/Reflector.
- Решение описывается как развитие предыдущих подходов Mastra к памяти (упоминаются «Working Memory» и «Semantic Recall»), а код доступен на GitHub.
Почему это важно: гонка «архитектур памяти» и контекст-инжиниринг
На фоне роста агентных систем усиливается внимание к тому, как бороться с «context rot» и как кормить модель правильной информацией в нужный момент. Mastra вписывается в этот тренд, предлагая вместо «одноразового пересказа» — операционный журнал наблюдений, который можно последовательно уплотнять.
Источник: The Decoder


