MRAgent의 핵심 수치와 벤치마크 성능

싱가포르 국립대학교 연구진이 LLM 에이전트의 장기 추론 능력을 개선하기 위해 메모리 추론 아키텍처인 MRAgent(Memory Reasoning Architecture for LLM Agents)를 공개했다. 이 프레임워크는 기존의 '검색 후 추론(retrieve-then-reason)' 방식이 가진 컨텍스트 윈도우 포화 문제와 노이즈 유입 문제를 해결하는 데 집중한다.

연구진은 Gemini 2.5 Flash와 Claude Sonnet 4.5를 백본 모델로 사용해 LoCoMo와 LongMemEval 산업 벤치마크에서 성능을 검증했다. 비교 대상으로는 표준 RAG, A-MEM, MemoryOS, LangMem, Mem0가 포함됐다. MRAgent는 모든 모델과 질문 유형에서 베이스라인 모델들을 유의미한 차이로 앞섰다.

특히 기업용 개발자에게 중요한 지표인 계산 비용에서 큰 차이를 보였다. LongMemEval 테스트 결과, MRAgent의 샘플당 프롬프트 토큰 소모량은 118K에 불과했다. 이는 A-Mem의 632K, LangMem의 3.26M(326만 개)과 비교해 매우 낮은 수치다. 실행 시간(Runtime) 역시 A-Mem의 1,122초에서 586초로 약 절반 가까이 단축했다.

Cue-Tag-Content 구조와 능동적 재구성 메커니즘

MRAgent는 메모리를 정적인 데이터베이스가 아닌 상호작용 가능한 환경으로 취급한다. 기존 RAG 파이프라인이 벡터 검색이나 그래프 탐색을 통해 문서를 한 번에 가져오는 '수동적' 방식이었다면, MRAgent는 인지 신경과학에서 영감을 받은 '능동적 연상 재구성' 프로세스를 따른다.

이 시스템의 핵심은 메모리 데이터베이스를 'Cue-Tag-Content'라는 3단계 연상 그래프 구조로 조직화한 것이다.

- Cues: 사용자 상호작용에서 추출한 엔티티나 문맥적 속성과 같은 세밀한 키워드다.

- Tags: 특정 Cue와 Content 사이의 관계적 연관성을 요약한 시맨틱 브리지(Semantic Bridge) 역할을 한다.

- Content: 실제 저장된 메모리 단위로, 구체적 사건을 기록한 에피소드 메모리와 안정적인 사실 및 사용자 선호도를 기록한 시맨틱 메모리로 나뉜다.

작동 방식은 순차적 회상 구조를 가진다. 먼저 사용자 프롬프트에서 'Nate', '비디오 게임 대회'와 같은 세밀한 시작 Cue를 추출한다. 이후 에이전트는 Cue에서 연결된 후보 Tag들을 탐색한다. 이때 LLM은 Tag의 짧은 요약본을 보고 관련성을 판단해 불필요한 경로를 가지치기(Pruning)한다.

최종적으로 선택된 Tag와 연결된 상세 Content(에피소드 메모리 등)에만 접근함으로써, LLM의 컨텍스트 윈도우에 무관한 노이즈가 유입되는 것을 방지한다. 에이전트는 가져온 정보를 바탕으로 다시 Cue를 업데이트하고, 필요한 정보가 모두 모일 때까지 이 탐색과 가지치기 과정을 반복한다.

실무 도입을 위한 자동 증류 파이프라인과 운영 제약

개발자가 MRAgent를 도입할 때 가장 먼저 고려해야 할 점은 쿼리 전 단계에서 Cue-Tag-Content 구조의 메모리 그래프가 미리 준비되어 있어야 한다는 점이다. LLM이 효율적으로 경로를 탐색하고 가지치기를 수행하려면 데이터가 연상 구조로 설계되어 있어야 하기 때문이다.

연구진은 이를 위해 개발자가 데이터를 수동으로 레이블링하거나 구조화할 필요가 없는 '자동 증류 파이프라인(Automated Distillation Pipeline)'을 설계했다. 이 파이프라인은 LLM을 이용해 가공되지 않은 상호작용 이력을 처리하고, 자동으로 메모리 그래프를 생성해 채우는 방식으로 작동한다.

실무자는 다음과 같은 인프라 구성을 통해 이를 구현할 수 있다.

1. 원시 사용자 상호작용 데이터를 수집하는 스트리밍 파이프라인 또는 백그라운드 작업(Background Job)을 설정한다.

2. 정의된 프롬프트 템플릿을 통해 원시 데이터에서 메타데이터(Cue, Tag)를 추출한다.

3. 추출된 데이터를 그래프 데이터베이스에 저장하여 MRAgent가 쿼리 시 사용할 수 있도록 한다.

결과적으로 개발자의 역할은 데이터의 수동 태깅이 아니라, 원시 데이터를 그래프 구조로 변환하는 자동 수집 파이프라인을 설계하고 오케스트레이션하는 것에 집중된다. 해당 프레임워크의 코드는 GitHub를 통해 공개되어 있다.