'현재값'에 건 두 가지 도박 — AI 에이전트 메모리는 모순을 어떻게 다루는가
몇 달에 걸쳐 AI 비서에게 이렇게 말했다고 해보자. “뉴욕에서 샌프란시스코로 이사했어요.” 몇 주 후 새 아파트 이야기를 한다. 다시 몇 주가 지나, 처음 대화 내용은 더 이상 남아 있지 않은 상태로 완전히 다른 화제의 대화가 이어진다. 그 시점에 묻는다. “지금 어디 살아요?”
사소한 질문처럼 보이지만, 사실 이것은 AI 에이전트 설계에서 가장 까다로운 미해결 문제 중 하나이며, 가장 눈에 띄는 상용 메모리 시스템인 Mem0와 Letta는 이 질문에 정반대의 방식으로 도박을 걸었다.
문제 아래 숨은 문제
가장 뻔한 실패는 이사를 그냥 잊어버리고 “뉴욕”이라고 답하는 경우다. 이건 통상적인 의미의 기억 문제 — 유한한 컨텍스트 윈도우에서 정보가 빠져나간 것뿐이다. 하지만 사실을 한 번도 잊지 않았는데도 발생하는 더 미묘한 실패가 있다. 만약 비서가 “뉴욕에 산다”와 “샌프란시스코에 산다”를 둘 다 저장해 두었다면 — 아무것도 삭제하거나 덮어쓰지 않으면 정확히 이렇게 된다 — 이제 저장소 안에는 서로 모순되는 두 사실이 함께 존재한다. 질문은 더 이상 “기억하고 있는가”가 아니라 “어느 쪽이 지금 맞는지 아는가”로 바뀐다. 이를 현재값 문제라고 부르자. 보존의 문제가 아니라 해소의 문제다.
최근 논문 “Supersede: Diagnosing and Training the Memory-Update Gap in LLM Agents”1는 실제 대화 데이터에서 이 특정 실패를 분리해 살펴보았고, 예상보다 훨씬 끈질기다는 것을 발견했다. 최상위 모델(GPT-5.4)에게 전체 대화 기록을 그대로 제공하면 LongMemEval의 지식 업데이트 질문에서 92%의 정확도가 나온다. 같은 모델에게 수백 자 정도의 유한한, 스스로 유지하는 메모리만 주면 — 실제 배포된 에이전트가 처한 현실적인 조건 — 정확도는 77%로 떨어진다. 이 차이는 통계적으로 유의하며(p<0.005), 모델 규모를 바꿔도 사라지지 않는다. 메모리 예산을 24배(약 300자 → 7,150자) 늘려도 개선은 전혀 없었다 — 28%에서 28%로 그대로였다. 유일하게 효과가 있었던 개입은 학습이었다. 작은 오픈 모델(Qwen2.5-3B)을 강화학습으로 미세조정해, 현재값을 답하면 보상하고 오래된 값을 답하면 벌점을 주는 방식으로 훈련하자, 학습에 쓰이지 않은 실제 데이터에서의 정확도가 거의 두 배(9.0% → 16.7%)가 되었다2. 훈련 후에도 상한선은 16.7% — 해결과는 거리가 멀지만, 병목이 ‘용량’이 아니라 ‘정책(policy)’의 문제라는 증거다. 메모리를 키워도 소용없다. 이 과제를 위해 훈련된 모델은, 조금이지만 효과가 있다.
첫 번째 도박: 쓰기 시점에는 해결하지 않고, 읽기 시점의 순위 매김으로 얼버무린다
Mem0는 2026년, 기존의 “추출 후 통합” 방식과는 근본적으로 다른 방향으로 메모리 파이프라인을 다시 설계했다. 새 버전은 단일 패스로 작동하며, 특히 추가 전용(ADD-only) 방식이다. 새로운 사실이 들어와도 관련된 기존 사실을 삭제하거나 병합하지 않고 그대로 나란히 저장한다3. 충돌 해소는 전적으로 검색 시점으로 미뤄지며, 의미적 유사도·키워드 일치·개체 일치·시간적 최신성을 결합한 순위 신호가 어떤 기억을 표시할지 결정한다. Mem0의 공식 문서에 따르면 이는 실수가 아니라 명시적인 설계 결정이며, ADD-only 파이프라인의 의미적 충돌과 관련된 이슈들은 “계획 없음(not planned)”으로 종결된 것으로 알려져 있다.
수치만 보면 성과는 강력하다. Mem0는 500문항짜리 LongMemEval에서 94.4%(기준선 93.4%에서 향상)를 보고했고, 각 기억에 타임스탬프 메타데이터(언제 일어났는지, 진행 중인지 완료됐는지, 정밀도, 종류)를 추가한 뒤 시간 추론 하위 범주가 93.2%에서 97.0%로 향상되었다고 밝혔다4. 게다가 검색 비용은 약 7,000토큰으로, 전체 컨텍스트 방식의 25,000토큰 이상에 비해 훨씬 가볍다.
두 번째 도박: 그 순간 에이전트 스스로 판단하게 한다
Letta(MemGPT 연구 프로젝트의 후속)는 반대 입장을 취했다. 컴퓨터 아키텍처에서 영감을 받은 명시적 계층 구조 — 항상 컨텍스트 윈도우에 존재하는 core memory, 검색 가능한 대화 기록인 recall memory, 장기 저장소인 archival memory — 를 유지하면서도, 무엇을 어디에 둘지, 언제 다시 써야 할지는 에이전트 스스로가 추론 도중에 판단하도록 맡겼다5. 전용 현재값 메커니즘도, 해소를 담당하는 순위 알고리즘도 없다. 에이전트가 “이건 업데이트할 가치가 있다”고 판단할 때 메모리 편집 함수를 호출할 뿐이다. 현재값 문제는 인프라가 아니라, 매 턴 새롭게 발휘되는 모델 자신의 판단력에 맡겨진다.
이 둘은 정말로 그 부정적 결과와 모순되는가
언뜻 보면 Mem0의 “시간 추론 97%”는 순위 매김 기반 해법이 효과가 없다는 Supersede의 주장에 대한 반박처럼 보인다. 나는 그렇게 생각하지 않는데, 그 이유는 벤치마크 수치를 조건을 꼼꼼히 따지지 않고 비교하는 것이 얼마나 위험한지 보여주는, 더 일반적인 교훈으로서 곱씹어 볼 가치가 있다.
Mem0의 향상은 시간적 순서화 — 어떤 사건이 다른 사건보다 나중에 일어났다는 것, 어떤 계획이 과거가 아니라 미래라는 것을 아는 것 — 에서 나온다. 반면 Supersede의 적대적 설정은 더 좁고 더 가혹하다. 최대 48개 세션이 지난 뒤, 겨우 수백 자의 메모리만 남아 있고 원본 대화는 영영 사라진 상태에서, “특정 사실 하나의 유일한 현재값이 무엇인가”를 묻고, 판정 모델 없이 정확한 문자열 매칭기로 채점한다. 두 가지는 관련된 능력이긴 하지만 같은 능력이라고 단정할 수는 없다. “LongMemEval”이라는 벤치마크 이름은 어떤 하위 집합인지, 어떤 버전인지, 어떤 채점 방식인지 명시하지 않은 채 둘 다를 포괄해 버린다. 사건들을 시간순으로 배열하는 데는 훨씬 능숙해지면서도, Supersede가 만든 그 특정 테스트에는 여전히 취약할 가능성은 충분히 있다. 만약 Mem0의 이슈 트래커가 실제로 일부 충돌 사례를 “계획 없음”으로 처리하고 있다면, 이는 문제를 해결했다는 자신감이라기보다는 순위 매김이 최선을 다한 휴리스틱일 뿐 보장은 아니라는 암묵적 인정에 가깝게 읽힌다 — 전형적인 사용자 대화 분포에서는 훌륭하게 작동하지만, Supersede가 파고들려 한 적대적인 꼬리 부분에서는 실패할 수 있다는 의미에서다.
이는 결론이 난 질문이 아니라 검증 가능한 미해결 질문으로 남는다. 누군가 Mem0의 실제 파이프라인을 Supersede의 프로토콜 그대로 — 48세션, 약 300자 제한, 판정 모델 없음 — 돌려서 수치를 낸 적이 있을까? 이번에 찾아본 범위에서는 없었다. 누군가 그것을 해내기 전까지는, Mem0의 벤치마크 강점과 Supersede의 부정적 결과가 서로 모순된다고 보기는 어렵다. 둘은 같은 근본 문제의 서로 다른 지점을 측정하고 있을 뿐이며, 진짜 적대적인 조건에서 그 간극이 얼마나 벌어지는지는 아직 아무도 모른다.
Letta의 도박에도 취약점이 있고, 이쪽은 더 직접적이다. 현재값 판단을 모델 자신의 추론에 맡기는 방식은 그 추론의 질만큼만 작동한다. 그리고 바로 이런 종류의 신념 유지 — 무관한 사실은 보존하면서 실제로 바뀐 사실만 업데이트하는 것 — 에서, 기본 LLM들이 일관되지 않다는 독립적인 증거가 있다. 이것은 우아하게 실패하는 보장이 아니다. 애초에 시스템에 공학적으로 내장된 보장 자체가 존재하지 않는데, “모델이 판단한다”고 말하는 편이 더 에이전트답게 들리기 때문에 그렇게 포장된 것일 뿐이다.
내가 얻은 결론
두 아키텍처 모두 Supersede가 정의하는 의미의 현재값 문제 — 판정 모델의 도움 없이, 적대적인 다중 세션 드리프트 아래서 신뢰성 있게 — 를 실제로 해결하지 못했다. Mem0는 흔한 경우에 맞춰진 순위 함수에 판단을 맡긴다. Letta는 모델의 그때그때 판단에 맡긴다 — 적응적이지만 그 아래 보장의 바닥은 없다. 둘 다 현실적인 제약(쓰기 시점 통합은 비용이 크고, 명시적인 현재값 포인터는 실질적인 인프라 투자를 요구한다)을 고려하면 합리적인 공학적 절충이다. 다만 ‘합리적인 절충’과 ‘해결된 문제’는 서로 다른 주장이라는 점은 정직하게 짚어둘 가치가 있다. 공개된 벤치마크 수치는, 실제로 무엇을 측정했는지 꼼꼼히 살피지 않으면 이 구분을 쉽게 뭉개버린다.
다음으로 던지고 싶은 질문은 이것이다. “이 사실의 현재값이 무엇인가”를 순위 신호도, 판단 호출도 아니라 능동적으로 유지되는 일급 포인터 — 데이터베이스에서 말하는 ‘최신 행 버전’에 가까운 무언가 — 로 다루는 시스템이 존재할까? 그것은 지금 실제 서비스에서 쓰이고 있는 두 도박과는 다른 세 번째 도박이 될 것이고, Supersede의 부정적 결과가 가리키고 있는 방향이 바로 그쪽인 것 같다.
-
Vedant Patel. “Supersede: Diagnosing and Training the Memory-Update Gap in LLM Agents.” arXiv:2606.27472. Accessed 2026-07-30. ↩
-
Vedant Patel. “Supersede: Diagnosing and Training the Memory-Update Gap in LLM Agents.” arXiv:2606.27472v1 (HTML). Accessed 2026-07-30. ↩
-
Mem0. “Introducing The Token-Efficient Memory Algorithm.” Mem0 Blog. Accessed 2026-07-30. ↩
-
Mem0. “The Token-Efficient Memory Algorithm Now Has Temporal Reasoning.” Mem0 Blog. Accessed 2026-07-30. ↩
-
Letta. “Agent Memory: How to Build Agents That Learn and Remember.” Letta Blog. Accessed 2026-07-30. ↩