MemGPT: Towards LLMs as Operating Systems

Digest (CISELQ)

  • Context: LLM은 고정된 context window(수천~수십만 토큰)에 제한되어 있어, 긴 문서 이해나 지속적 대화와 같이 누적 정보가 필요한 애플리케이션에서 치명적 한계를 지닌다. 단순히 window를 늘리는 것은 연산/비용 측면에서 한계가 있고, 모델이 실제로 긴 컨텍스트를 효과적으로 활용하지 못하는 “lost-in-the-middle” 문제도 존재한다.
  • Issue: 실질적으로 “무제한” context를 제공하면서도, LLM이 중요한 정보를 능동적으로 관리(저장/불러오기/요약)할 수 있도록 하는 아키텍처가 필요하다.
  • Solution: 운영체제의 가상 메모리(virtual memory) 및 계층적 메모리 관리 개념을 차용해, LLM을 “프로세서”로, 컨텍스트 윈도우를 “메인 메모리(RAM)“로, 외부 저장소를 “디스크”로 매핑하는 MemGPT 프레임워크를 제안한다. LLM 스스로 함수 호출을 통해 메모리 페이지를 스왑(swap in/out)하고, 인터럽트(interrupt)로 제어 흐름을 조율한다.
  • Evidence: 두 가지 도메인에서 평가 — (1) document analysis: 긴 문서 QA/멀티 문서 QA, (2) multi-session chat: MSC 데이터셋 기반 Deep Memory Retrieval(DMR)·대화 일관성. 두 태스크 모두에서 고정 컨텍스트 baseline(GPT-3.5/GPT-4)을 능가한다.
  • Limitations: function-calling이 신뢰성 있는 LLM(GPT-4 수준)을 전제로 하고, 약한 모델에선 제어 루프가 붕괴할 수 있음. 메모리 정책이 heuristic(요약/검색)에 의존.
  • Questions: 계층적 메모리 정책의 학습 가능성, 메모리 정합성/일관성 보장, 대규모 에이전트 집단에서의 공유 메모리 확장성.

섹션별 요약

Introduction

Transformer 기반 LLM의 핵심 병목은 self-attention의 2차 복잡도fixed context window다. 저자들은 이 문제를 OS가 겪어 온 “제한된 물리 메모리”라는 오래된 문제로 재해석한다. OS가 가상 메모리·페이징·계층적 캐시로 이를 해결한 것처럼, LLM도 유한한 window 내에서 “보이는 것”만 처리하되, 필요 시 외부 저장소에서 데이터를 불러오고 오래된 정보를 페이징 아웃하면 된다. 이 관점에서 MemGPT는 LLM 에이전트를 가상 컨텍스트 관리(virtual context management) 시스템으로 설계한다.

Methods

MemGPT의 메모리는 두 계층으로 나뉜다. Main context(=RAM)는 system instructions, working context(스크래치패드/페르소나), FIFO message queue로 구성되며 실제 LLM 프롬프트에 직접 포함된다. External context(=disk)는 recall storage(과거 전체 대화 로그)와 archival storage(장기 지식 베이스)로 나뉘어, 검색(query) 함수로 접근한다. LLM은 매 턴마다 일반 응답 외에 function call을 발행해 메모리를 편집한다: core_memory_append/replace, conversation_search, archival_insert/search, pause_heartbeats 등. 또한 queue manager가 토큰 예산을 감시하고 warning(예: 컨텍스트 75% 초과)을 주입해 LLM이 스스로 요약/이주를 유도하게 하며, 외부 이벤트는 interrupt(예: 사용자 메시지, 타이머, 함수 반환)로 제어 흐름을 스케줄링한다.

Results

TaskSettingMetricBaseline (fixed ctx)MemGPT
Multi-Session Chat (DMR)MSC 5-sessionRecall@AnswerGPT-3.5/GPT-4 고정 컨텍스트 대비 열세일관되게 상회 (저자 보고)
Conversation OpenerMSC개성·과거 사실 참조성낮음높음
Document QALong docsRetrieval Accuracywindow 초과 시 급락window 넘어서도 유지
Multi-Doc QANested KV / multi-hopAccuracy문서 수 증가에 따라 하락더 완만한 하락

핵심 포인트는 고정 context baseline이 문서 수/대화 세션 수가 증가할수록 성능이 급격히 떨어지는 반면, MemGPT는 외부 저장소를 활용해 성능 저하 곡선을 완만하게 만든다는 점이다.

Discussion

MemGPT는 “LLM = CPU + prompt = RAM” 추상화를 구현 가능한 시스템으로 구체화한 사례다. 저자들은 이를 통해 (1) 긴 문서/대화 태스크에서 실질적 정확도 개선, (2) 에이전트가 자기 메모리를 반성/편집하는 self-directed 행동을 LLM의 function-calling 능력만으로 가능케 함을 보인다. 한계는 function call 실패가 누적되면 제어 흐름이 발산한다는 점과, 메모리 정책 자체가 프롬프트·heuristic에 의존해 “학습”되지 않는다는 점이다.

Insights

OS 메타포는 단순한 비유가 아니라 리소스가 유한한 계산 시스템의 일반 패턴이다. MemGPT는 이 패턴을 LLM에 적용해, “컨텍스트 확장” 문제를 “attention 연구”에서 “시스템 설계” 문제로 재프레이밍한다. 이는 이후의 LLM 에이전트(예: Letta, agent memory 연구)에 직접적 청사진을 제공한다.

Discussion Points

  • 메모리 정책을 휴리스틱이 아닌 강화학습/메타러닝으로 최적화할 수 있는가?
  • 멀티 에이전트 환경에서 공유 archival storage의 일관성(consistency) 을 어떻게 보장하는가?
  • function-calling 실패에 대한 graceful degradation 전략은?

메타데이터

항목내용
저자Charles Packer, Sarah Wooders, Kevin Lin, Vivian Fang, Shishir G. Patil, Ion Stoica, Joseph E. Gonzalez
소속UC Berkeley
발표arXiv preprint, 2023 (Oct)
arXiv2310.08560
코드https://memgpt.ai (현 Letta)
카테고리Application (LLM Agents, Memory Systems)

왜 이 연구를 하는가?

LLM은 사실상 “stateless” 함수에 가깝다. 호출마다 context window에 담긴 토큰만이 모델의 유일한 “기억”이다. 그러나 실제 애플리케이션(장기 챗봇, 문서 분석, 코드 에이전트, 개인 비서)은 누적되는 사용자 상태, 장기 지식, 반복된 상호작용을 요구한다. 단순 retrieval-augmented generation(RAG)은 “읽기”만 담당하고, 모델이 기억을 쓰고, 편집하고, 구조화하는 능력은 제공하지 않는다. MemGPT는 “LLM이 스스로 자신의 기억을 관리하는 agent”라는 아이디어를 최초로 시스템 수준에서 구현한 연구로, 단기-장기 기억의 경계를 허물고 에이전트의 지속성(persistence)을 다룬다.

방법 (Method)

flowchart TD
    U[User / External Event] -->|Interrupt| QM[Queue Manager]
    QM --> MC[Main Context<br/>System + Working + FIFO Queue]
    MC --> LLM[LLM Processor<br/>function-calling]
    LLM -->|Response| U
    LLM -->|core_memory_edit| WC[Working Context]
    LLM -->|archival_insert / search| AS[(Archival Storage)]
    LLM -->|conversation_search| RS[(Recall Storage)]
    QM -->|token budget warning| LLM
    AS -.page in.-> MC
    RS -.page in.-> MC
    MC -.evict / summarize.-> AS

핵심 루프:

  1. 외부 이벤트(사용자 입력, 타이머, 함수 반환)가 interrupt로 LLM을 깨운다.
  2. Queue manager가 main context를 구성해 LLM에 전달. 토큰 예산 초과 시 경고 삽입.
  3. LLM은 응답 또는 function call(메모리 읽기/쓰기)을 발행.
  4. Function call 결과는 다시 interrupt로 재진입해 heartbeat 루프를 돈다.
  5. 오래된 메시지는 recall storage로, 핵심 사실은 archival storage로 이주한다.

발견 (Findings)

발견근거함의
계층 메모리 + self-edit 함수만으로 “무제한 context” 근사 가능MSC DMR·Doc QA에서 window 초과 시에도 성능 유지OS 메타포의 실효성 입증
GPT-4 수준 function-calling이 필수약한 모델에서 루프 붕괴 보고에이전트 신뢰성 = 기반 LLM 능력에 종속
interrupt 기반 제어 흐름이 멀티턴 에이전트에 자연스러움타이머/외부 이벤트 통합 용이에이전트 아키텍처 표준 패턴 제시
conversation opener 품질 향상과거 세션 fact를 능동 recall개인화된 장기 챗봇 실현 가능성

이론적 의의

MemGPT의 이론적 기여는 “context window = 유한 리소스” 라는 관점을 명시화하고, 이를 시스템 자원 관리 문제로 환원했다는 점이다. 이는 (a) attention mechanism 개선(FlashAttention, Longformer 등)과 직교(orthogonal) 하는 접근이며, (b) LLM을 단일 함수가 아닌 상태 기계(stateful process) 로 보는 관점을 제도화한다. 이후 Letta, LangGraph, agent memory 벤치마크 등은 이 추상화를 계승한다. 또한 “모델이 자기 입력을 편집한다”는 점에서 메타인지(metacognition) 적 행동의 공학적 구현 사례로도 읽을 수 있다.

재현성 및 신뢰도 평가

등급근거
Evidence QualityB두 도메인 실험, 정량 지표 제공, 그러나 비교 baseline 범위가 좁고 ablation 제한적
ReproducibilityB오픈소스(memgpt→Letta) 제공, 그러나 결과는 GPT-4 API 의존 → 모델 버전 드리프트 위험
GeneralizabilityBMSC/doc QA에 한정, 코드/도구 사용 태스크로의 일반화는 후속 연구에 미룸
Theoretical NoveltyA-OS 메타포의 시스템적 구현은 명확한 기여

관련 연구

  • Long-context attention: Longformer, BigBird, FlashAttention — 내부 attention 최적화 (MemGPT와 직교)
  • Retrieval-Augmented Generation: REALM, RAG, Atlas — 읽기 전용 외부 메모리
  • Agent frameworks: ReAct, Toolformer, AutoGPT — tool-use/planning, MemGPT는 메모리 관리 특화
  • Memory-augmented NN: Neural Turing Machine, DNC — 학습형 메모리, MemGPT는 prompt-level
  • 후속: Letta, LangGraph memory, A-MEM, cognitive architectures for LLM agents

원자적 인사이트

  1. “Context = RAM” 추상화는 구현 가능하다: LLM의 function-calling만으로도 페이징·요약·swap을 모사할 수 있으며, 별도 파인튜닝이 필요 없다. 이는 에이전트 설계에서 “모델을 바꾸지 않고 시스템으로 문제를 푸는” 패러다임의 대표 사례다.
  2. 제어 흐름은 interrupt로 모델링하는 것이 자연스럽다: 사용자 입력, 함수 반환, 타이머를 동일한 interrupt 채널로 통합하면 멀티모달·멀티이벤트 에이전트 루프가 깔끔해진다. 이는 “LLM as CPU” 비유를 구현 디테일까지 일관되게 확장한다.
  3. 에이전트의 지속성(persistence)은 메모리 쓰기 능력에서 나온다: RAG가 “읽는 에이전트”를 만든다면, MemGPT는 “쓰는 에이전트”를 만든다. 장기 개인화·학습 행동의 최소 조건이 self-edit 권한임을 시사한다.

핵심 용어 정리

  • Main Context: LLM 프롬프트에 직접 포함되는 영역. system prompt, working context, FIFO 메시지 큐로 구성.
  • External Context: 프롬프트 외부의 저장소. recall(대화 로그) + archival(장기 지식) 두 계층.
  • Virtual Context Management: 한정된 window 뒤에 사실상 무제한 저장소를 두고, LLM이 능동적으로 페이징하는 기법.
  • Self-Directed Editing: LLM이 function call로 자신의 메모리를 수정하는 행동.
  • Heartbeat / Interrupt: 외부 이벤트·함수 반환을 통한 제어 흐름 재진입 메커니즘.
  • Queue Manager: 토큰 예산을 감시하고 경고/이주 신호를 주입하는 런타임 컴포넌트.
  • DMR (Deep Memory Retrieval): 장기 대화에서 과거 사실을 정확히 회상하는지 평가하는 태스크.

태그

agent memory llm-os long-context memgpt virtual-memory function-calling application