MemGPT: Управление на виртуален контекст за LLM агенти
Ограничението, което лимитира повечето LLM агенти, не е интелектът — а паметта. Мислил съм по този въпрос конкретно в контекста на Beancount регистрите, които обхващат трансакции в продължение на години: без значение колко способен е базовият модел, след като историята на регистъра надвиши контекстния прозорец, агентът започва да забравя. MemGPT (Packer et al., UC Berkeley, 2023) атакува този проблем директно, като заема решение, което операционните системи намериха преди десетилетия.
Докладът
„MemGPT: Towards LLMs as Operating Systems“ (Packer, Wooders, Lin, Fang, Patil, Stoica, Gonzalez; arXiv:2310.08560) предлага управление на виртуален контекст — съзнателна аналогия с начина, по който операционните системи (ОС) създават илюзията за голяма виртуална памет чрез пейджиране между бързата RAM и бавния диск. Контекстният прозорец на LLM играе ролята на RAM: оскъдна, бърза, директно достъпна. Две външни хранилища играят ролята на диск: хранилище за припомняне (recall store - история на последните съобщения) и архивно хранилище (archival store - база данни с възможност за търсене за произволен текст). Самият агент решава какво да прочете от външното хранилище и какво да изведе (evict) от контекста, използвайки изрични извиквания на функции — инструменти, които преместват данни между нивата. Системата задейства предупреждение за извеждане при 70% капацитет на контекста и принуждава изчистване (flush) при 100%, генерирайки рекурсивно резюме на изведените съобщения, за да избегне пълна загуба на информация.
Докладът оценява MemGPT в две области: многосесийни разговорни агенти (наборът от данни Multi-Session Chat) и анализ на документи върху големи корпус и, които надвишават естествения контекстен прозорец на модела.
Ключови идеи
- Три нива на паметта: работна памет в контекста (бърза, ограничена), хранилище за припомняне (последни съобщения, с възможност за търсене) и архивно хранилище (дългосрочно, индексирано). Агентът пише и в трите чрез извиквания на инструменти.
- Дълбоко извличане на памет (Deep Memory Retrieval - DMR): задачата за оценка, която изисква последователно припомняне през множество минали сесии. С GPT-4 стандартната базова линия с фиксиран контекст постига 32,1% точност; MemGPT я вдига до 92,5%. Базова линия на GPT-4 Turbo: 35,3% → 93,4%.
- Вложено извличане на ключ-стойност (Nested key-value retrieval): стрес тест за анализ на документи. Стандартният GPT-4 удря 0% точност при три нива на влагане; MemGPT с GPT-4 поддържа производителност, като прави итеративни архивни търсения.
- Контрол на потока чрез прекъсвания (interrupts): агентът сигнализира, когато се нуждае от повече време (за извършване на операции с паметта), преди да отговори, аналогично на прекъсване в ОС. Това поддържа системата отзивчива, без да принуждава всичко да се случва в един пас на инференция.
- Проблемът с извеждането (eviction): когато контекстът е пълен, съдържанието се резюмира и изчиства. Рекурсивното резюмиране запазва същината, но неизбежно губи детайли — компромис, който докладът признава, но не количествено определя напълно.
Какво издържа на времето — и какво не
Цифрите за DMR са поразителни: 60-точкова разлика в точността между MemGPT и стандартната базова линия на GPT-4 върху набора от данни Multi-Session Chat не е просто шум. Резултатът от вложените KV — базовата линия, пропадаща до 0%, докато MemGPT продължава да работи — демонстрира нещо реално за стойността на итеративното извличане чрез инструменти спрямо пасивното излагане на дълъг контекст. Това се свързва с откритието „Lost in the Middle“ на Liu et al. (arXiv:2307.03172): дори когато информацията физически се побира в контекстния прозорец, моделите се влошават за съдържание, погребано в средата. MemGPT заобикаля това, като извлича само това, което е непосредствено необходимо.
Въпреки това, оценката има реални пропуски. Наборът от данни Multi-Session Chat е тесен — генерирани от хора чатове с персонажи с плътно контролирани формати. Как подходът се мащабира към по-хаотични разговори от реалния свят или специфични за даден домейн корпуси (финансови отчети, регулаторна кореспонденция) не е тествано. Архивното хранилище в експериментите е обикновена векторна база данни; дали качеството на извличане остава високо, когато архивът нарасне до милиони документи, остава отворен въпрос. По-фундаментално: стратегията за извличане на агента е толкова добра, колкото са неговите заявки. Ако агентът не знае какво не знае — чест режим на отказ при задачи с дълъг хоризонт — той никога няма да направи правилното архивно търсене и цялата архитектура ще се срине по същия начин като при фиксирания контекст.
Съществува и цена под формата на латентност, която докладът разглежда повърхностно. Всяко архивно търсене е допълнително извикване на LLM инференция (за генериране на заявката) плюс векторно търсене. За Beancount агент, обработващ рутинно равнение (reconciliation) на данни от години, това може да се умножи в много преходи за един отговор. Докладът не съобщава сравнения на реалното време за изпълнение.
Последващи работи изостриха тези критики. A-MEM (arXiv:2502.12110) твърди, че има поне 2 пъти по-добра производителност от MemGPT при многостъпкови задачи, твърдейки, че твърдата йерархична структура на MemGPT отстъпва на по-динамичното куриране на паметта. Бенчмарковете на Mem0 (2024-2025) показват конкурентни подходи, превъзхождащи MemGPT по точност и скорост в някои настройки. Оригиналните автори оттогава развиха проекта в Letta (септември 2024), софтуерна рамка за агенти с отворен код с асинхронно „sleep-time compute“ за консолидация на паметта — косвено признание, че синхронният дизайн с един агент има лимити при мащабиране.