저장하는 표현과 되찾는 표현은 다른 문제다

Microsoft Research가 2026년 6월 29일 공개한 에이전트 장기 메모리 아키텍처 Memora는 "무엇을 저장하나"와 "어떻게 되찾나"를 하나의 표현으로 뭉뚱그리지 않습니다. 저장은 풍부한 원문 메모리로 남기고, 검색은 경량 추상화와 큐 앵커(cue anchor)로 처리해 하나의 기억에 서로 다른 단서로 도달할 수 있게 설계한 점이 핵심입니다. 블로그, ICML 2026 논문, 공식 코드 저장소 microsoft/Memora가 같은 날 함께 나왔고, 아직 제품에 통합되지 않은 연구 단계라는 전제는 분명히 해 둘 필요가 있습니다.

요약 저장이 만드는 두 가지 손실

많은 에이전트 메모리가 대화를 요약해 저장하고, 그 요약 임베딩 하나로만 회수합니다. 이 구조에서는 두 곳이 동시에 무너집니다. 첫째, 원문 디테일이 요약 과정에서 사라져 나중에 정확한 수치나 날짜를 복원할 수 없습니다. 둘째, 표현이 다른 질문이 들어오면 단일 임베딩 단서가 매칭에 실패해 회상 자체가 누락됩니다. Memora가 LoCoMo와 LongMemEval에서 Mem0, RAG, 풀컨텍스트 방식을 모두 제치고 SOTA를 기록하면서도 컨텍스트 토큰을 최대 98% 적게 쓴 결과는, 저장 표현과 검색 표현을 갈라놓았기에 나온 수치입니다.

큐 앵커: 하나의 기억에 여러 입구를 다는 장치

큐 앵커는 원문 메모리 하나에 서로 다른 회수 단서를 여러 개 붙여, 질문이 어떤 표현으로 오든 같은 원문으로 되돌아오게 하는 색인 장치입니다. 검색용 추상화는 가볍게 유지해 주입 토큰을 통제하고, 매칭이 성사되면 보존된 원문에서 필요한 만큼만 끌어옵니다. 추상화로 찾고 원문으로 답한다는 분업이 회상 정확도와 토큰 비용을 동시에 누르는 지점입니다.

큐 앵커 패턴을 자체 메모리 계층에 이식하는 실험 설계

(가) 기획과 목표 수치: 이식 실험은 지표를 먼저 고정하고 시작합니다. 회상 정확도 R@k, 세션당 메모리 주입 토큰, 원문 접근 가능률(요약 뒤 원문 보존 여부) 세 축을 대시보드에 올립니다. 출발 합격선으로는 요약 단일 임베딩 기준선 대비 R@5 상대 개선 +15%p 이상, 세션당 주입 토큰 50% 이상 절감, 원문 접근 가능률 100%를 제안합니다. 벤치마크는 LongMemEval 전체가 아니라 관리 가능한 서브셋을 잘라, 기준선과 큐 앵커 변형을 같은 조건에서 비교합니다.

지표가 없으면 "회상이 좋아진 것 같다"는 인상평으로 실험이 퇴화합니다. 서브셋을 200~500 세션 규모로 고정하고 질의를 표현 변형별로 분류해 두면, 다음 반복에서는 같은 표를 숫자로만 채우게 됩니다.

(나) 실패 패턴 세 가지: 첫째, 요약만 저장해 원문 디테일이 소실되고 복원이 불가능해지는 경우 — 원문 접근 가능률이 100% 아래로 떨어지는 순간 이 위험이 현실화됩니다. 둘째, 단일 임베딩 단서로만 회수해 표현이 다른 질문에서 매칭에 실패하는 경우로, 큐 앵커가 없으면 재현율이 특정 질의 유형에서만 급락합니다. 셋째, 메모리 주입 토큰이 상한 없이 늘어 컨텍스트가 부풀고 비용이 조용히 오르는 경우입니다.

(나') 복구 분기: 원문 접근 가능률이 100% 미만으로 관측되면 요약 저장 경로를 차단하고 원문 보존을 강제합니다. 특정 질의 유형에서 R@k가 임계선 아래로 떨어지면 그 유형의 표현 변형을 큐 앵커로 추가해 입구를 늘리고, 주입 토큰이 세션 상한을 넘으면 추상화 길이를 줄이되 원문 참조 포인터는 유지해 복원 경로를 남겨 둡니다.

(다) 운영 체크리스트: 저장 시점에는 원문과 추상화를 분리 보관하고, 원문에는 불변 식별자를, 추상화에는 복수의 큐 앵커를 연결합니다. 로그 필드로 질의 표현 유형, 매칭된 앵커, 주입 토큰 수, 원문 참조 여부를 남겨야 회상 실패가 어느 단서에서 났는지 사후에 추적됩니다. PII가 원문에 남는 구조이므로 저장 계층에서 마스킹 규칙과 접근 권한을 검색 계층과 별도로 적용합니다.

(라) 지속 개선 루프: 주간 단위로 R@k 하위 질의 유형을 뽑아 부족한 큐 앵커를 역으로 채우고, 세션당 주입 토큰 중앙값이 목표선 아래로 유지되는지 추적합니다. 큐 앵커 추가가 재현율을 올리는데도 토큰이 함께 뛴다면 추상화가 무거워졌다는 신호이므로, 앵커 수와 추상화 길이를 분리해 변경 로그를 남깁니다.

바로 적용하는 이원화 설계 포인트

Memora가 준 교훈은 저장과 검색을 한 표현으로 합치지 말라는 것입니다. 원문은 접근 가능률 100%로 보존하고, 검색은 경량 추상화와 복수 큐 앵커로 분리한 뒤, R@k·세션당 주입 토큰·원문 접근 가능률을 LongMemEval 서브셋에서 기준선과 나란히 재면, 회상 정확도를 올리면서 컨텍스트 토큰을 절반 이하로 누르는 설계를 자체 메모리 계층에서도 검증할 수 있습니다.

참고 링크

Memora: A Harmonic Memory Representation Balancing Abstraction and Specificity — Microsoft Research

microsoft/Memora (공식 코드) — GitHub