MemGPT: управление виртуальным контекстом для LLM-агентов
Ограничение, сдерживающее большинство LLM-агентов, — это не интеллект, а память. Я размышлял об этом применительно к книгам Beancount, охватывающим годы транзакций: какой бы способной ни была базовая модель, как только история проводок превышает окно контекста, агент начинает «забывать». MemGPT (Packer et al., Калифорнийский университет в Беркли, 2023) решает эту проблему в лоб, заимствуя решение, которое операционные системы внедрили десятилетия назад.
Статья
В работе "MemGPT: Towards LLMs as Operating Systems" (Packer, Wooders, Lin, Fang, Patil, Stoica, Gonzalez; arXiv:2310.08560) предлагается управление виртуальным контекстом — прямая аналогия того, как ОС создают иллюзию большого объема виртуальной памяти путем подкачки (пейджинга) между быстрой RAM и медленным диском. Окно контекста LLM играет роль RAM: дефицитной, быстрой и доступной напрямую. Два внешних хранилища играют роль диска: recall store (недавняя история сообщений) и archival store (поисковая долгосрочная база данных для произвольного текста). Агент сам решает, что считывать из внешнего хранилища и что вытеснять из контекста, используя явные вызовы функций — инструменты, перемещающие данные между уровнями. Система выдает предупреждение о вытеснении при 70% заполнении контекста и принудительно очищает его при 100%, генерируя рекурсивное резюме (summary) вытесненных сообщений, чтобы избежать полной потери информации.
Авторы оценивают MemGPT в двух областях: многосессионные диалоговые агенты (датасет Multi-Session Chat) и анализ документов в больших корпусах, превышающих нативное окно контекста модели.
Ключевые идеи
- Три уровня памяти: рабочая память в контексте (быстрая, ограниченная), хранилище истории (recall store — недавние сообщения с возможностью поиска) и архивное хранилище (долгосрочное, индексированное). Агент записывает данные во все три уровня через вызовы инструментов.
- Deep Memory Retrieval (DMR): задача оценки, требующая последовательного припоминания информации из нескольких прошлых сессий. С GPT-4 стандартный базовый уровень с фиксированным контекстом достигает точности 32,1%; MemGPT поднимает её до 92,5%. Базовый уровень GPT-4 Turbo: 35,3% → 93,4%.
- Вложенное извлечение «ключ-значение»: стресс-тест на анализ документов. Стандартная GPT-4 показывает 0% точности на трех уровнях вложенности; MemGPT с GPT-4 сохраняет производительность за счет итеративных поисков в архиве.
- Управление потоком через прерывания: агент подает сигнал, когда ему нужно больше времени (для выполнения операций с памятью) перед ответом, что аналогично прерыванию в ОС. Это сохраняет отзывчивость системы без принудительного втискивания всего процесса в один проход инференса.
- Проблема вытеснения: когда контекст заполнен, содержимое суммируется и удаляется. Рекурсивное резюмирование сохраняет суть, но неизбежно теряет детали — компромисс, который авторы признают, но не измеряют количественно.
Что подтвердилось, а что нет
Показатели DMR впечатляют: разрыв в 60 пунктов по точности между MemGPT и стандартной базовой GPT-4 в датасете Multi-Session Chat — это не статистическая погрешность. Результат вложенного KV — когда базовые модели падают до 0%, а MemGPT продолжает работать — доказывает реальную ценность итеративного поиска через инструменты по сравнению с пассивным восприятием длинного контекста. Это перекликается с выводом Liu et al. "Lost in the Middle" (arXiv:2307.03172): даже если информация физически помещается в окно контекста, качество работы моделей деградирует для данных, запрятанных в середине. MemGPT обходит это, извлекая только то, что необходимо в данный момент.
Тем не менее, в оценке есть серьезные пробелы. Датасет Multi-Session Chat довольно узкий — это сгенерированные людьми чаты с персонажами в жестко заданных форматах. Как этот подход масштабируется на более хаотичные реальные разговоры или специфические отраслевые корпуса (финансовая отчетность, регуляторная переписка) — не проверялось. Архивное хранилище в экспериментах представляет собой простую векторную базу данных; останется ли качество извлечения высоким при росте архива до миллионов документов — открытый вопрос. Более того: стратегия извлечения агента хороша лишь настолько, насколько хороши его запросы. Если агент «не знает, чего он не знает» — распространенная ошибка в долгосрочных задачах — он никогда не сделает правильный запрос к архиву, и вся архитектура изящно скатится к тому же провалу, что и модели с фиксированным контекстом.
Также существуют издержки задержки (latency), о которых в статье упоминается вскользь. Каждый поиск в архиве — это дополнительный вызов инференса LLM (для генерации запроса) плюс векторный поиск. Для Beancount-агента, выполняющего рутинную сверку данных за несколько лет, это может вылиться в десятки циклов обмена данными на один ответ. В статье не приводятся сравнения фактического времени ожидания ответа.
Последующие работы ужесточили эту критику. A-MEM (arXiv:2502.12110) заявляет о как минимум двукратном превосходстве над MemGPT в многошаговых задачах, утверждая, что жесткая уровневая структура MemGPT уступает более динамичному курированию памяти. Бенчмарки Mem0 (2024–2025) показывают, что конкурирующие подходы превосходят MemGPT по точности и скорости в некоторых сценариях. Сами авторы с тех пор развили проект в Letta (сентябрь 2024) — фреймворк для агентов с асинхронными «вычислениями во время сна» для консолидации памяти, что является косвенным признанием того, что синхронный дизайн с одним агентом имеет пределы масштабирования.
Почему это важно для финансо вого ИИ
Книга Beancount для малого бизнеса накапливает десятки тысяч транзакций за десятилетие. Агент, которому поручена годовая сверка, расследование аномалий или анализ многолетних трендов, не может уместить всё в контекст. Трехуровневая архитектура MemGPT ложится на эту задачу почти идеально: рабочая память хранит текущий пакет транзакций; хранилище истории содержит контекст недавних сессий (что мы сверяли в прошлый раз); архивное хранилище содержит полную историю проводок, записи в журналах и отчеты об аномалиях за прошлые периоды. Интерфейс вызова функций для операций с памятью — это, по сути, тот же интерфейс, который агенту уже нужен для записи данных; это не новый класс возможностей, а новое применение того же механизма вызова инструментов.
Более глубокая значимость заключается в смене парадигмы: вместо вопроса «как нам впихнуть больше в контекст?», MemGPT спрашивает «может ли агент сам управлять своим вниманием?». Для финансов это правильный вопрос. Налоговая проверка может вызвать вопрос о транзакции трехлетней давности. Грамотный бухгалтер-человек находит оригинал счета, сверяет его с книгой и вспоминает контекст учетной политики того года. Это поведение «извлечения по требованию» — именно то, чему учит нас проектировать MemGPT.
Честная оговорка: MemGPT не тестировался на финансовых данных, а финансовые документы структурно отличаются от чатов с персонажами. Качество извлечения плотных числовых данных, мультивалютных транзакций и схем двойной записи потребует собственных бенчмарков.
Что почитать дальше
- Lost in the Middle: How Language Models Use Long Contexts (Liu et al., arXiv:2307.03172) — эмпирическое обоснование того, почему одни лишь длинные окна контекста не решают проблему; модели плохо работают с контентом в середине документа, что мотивирует использование подходов на основе извлечения, таких как MemGPT.
- A-MEM: Agentic Memory for LLM Agents (arXiv:2502.12110) — продолжение 2025 года, заявляющее о превосходстве в многошаговых задачах за счет замены жесткой структуры уровней MemGPT динамическим курированием памяти; важная точка для сравнения.
- Gorilla: Large Language Model Connected with Massive APIs (arXiv:2305.15334) — следующий пункт в списке для чтения; дизайн вызова инструментов с расширенным поиском дополняет управление памятью MemGPT, решая вопрос о том, как агенты выбирают нужный инструмент из огромного количества доступных API.
