메모리 관리 이해하기

메모리 관리 이해하기

Letta는 MemGPT 메모리 관리 기법으로 LLM의 컨텍스트 윈도우를 제어해요. 기존 RAG 기반 장기 메모리와 달리, 에이전트가 도구 호출을 통해 스스로 메모리를 관리한다는 점이 달라요. 즉 에이전트 자신이 어떤 정보를 언제 컨텍스트에 넣을지 결정해요.

컨텍스트 안(in-context) 기억은 LLM 컨텍스트 윈도우에서 에이전트가 편집할 수 있도록 예약된 영역이에요. 시스템 프롬프트 같지만 에이전트가 수정할 수 있다고 보면 돼요. 기본적으로 에이전트는 사람과의 1:1 대화용 ChatMemory 클래스를 가져요.

외부 저장소에는 기본적으로 두 개의 테이블이 있어요.

  • Archival memory(아카이브 기억): 컨텍스트에 들어가기엔 큰 장기 기억과 외부 데이터("Data Source")를 담는 벡터 DB 테이블. 에이전트는 기본적으로 archival_memory_search(검색)와 archival_memory_insert(삽입) 도구를 받아요.
  • Recall memory(리콜 기억): 에이전트와 나눈 모든 대화 기록을 기록하는 테이블. 날짜 검색·텍스트 검색 도구로 대화 이력을 찾아요.

즉 에이전트가 인컨텍스트 메모리와 외부 메모리에 쓰는 도구, 외부 메모리를 검색해 컨텍스트에 넣는 도구를 조합하는 게 MemGPT 메모리 관리의 본질이에요.

더 알아보기