컨텍스트 예산이 좁으면 원문 턴 선택이 LLM 추출 메모리를 대체한다

When Does Selection Replace Extraction? A Pre-Registered Test of Agent Memory with a Typed Decision Model

HF Daily2609.34227

Rishabh Sharma, Rishika Lall2026-09-28

무엇인가

대화형 에이전트의 메모리는 무엇을 저장해야 하는가. LLM으로 사실(fact)을 추출해 저장하는 방식과 원문 발화 턴을 그대로 저장한 뒤 검색 시점에 잘 고르는 방식이 갈린다. mem0, SeCom 같은 추출 기반 시스템은 증류된 사실의 이득을 보고하고, SmartSearch는 원문 이력에 좋은 랭킹만 있으면 충분하다고 주장하며, Fidelity Before Structure는 원문 청크가 LLM 추출물보다 LoCoMo에서 15.9점, LongMemEval-S에서 22.0점 앞선다고 보고한다. 그런데 SmartSearch는 랭킹을 병목이라고 하고 Fidelity는 리랭킹이 거의 무의미하다고 하니 서로 어긋난다. 이 논문은 그 불일치의 원인을 컨텍스트 예산, 즉 답변 모델이 실제로 읽는 검색 항목 수로 설명한다.

어떻게 동작하나

저자들은 사전 등록(pre-registration)된 비열등성 검정으로 이 가설의 앞부분을 시험한다. 선택기로 쓰는 것은 TypeSafe의 타입 지정 결정 모델 Jev다. Jev는 텍스트를 생성하지 않고 고정된 선택지 집합에 대해 한 번의 짧은 요청으로 각 선택지의 확률을 반환하며, 파싱이 필요 없고 확률을 임계값으로 쓸 수 있다. 읽기 경로는 먼저 질문과 저장 항목의 코사인 유사도로 상위 n=30개를 추린다(식 3). 그다음 Jev에게 후보 턴마다 '이 턴이 질문에 도움이 되는가'라는 관련성 질문 Q_rel을 한 요청으로 던져 확률 ρ를 얻고, ρ>0.5인 턴을 ρ 내림차순으로 유지한다. 여기에 코사인 순위 상위 f=10개 턴을 바닥(cosine floor)으로 덧붙이고, 답변 모델은 그 앞 k개를 읽는다(식 4). 비교 대상인 engram v2는 gpt-4o-mini가 mem0의 추출 프롬프트로 사실을 뽑고 Jev가 타입·관계·갱신 판단을 하며, 읽기 경로는 같은 Jev를 원문 턴 대신 추출된 사실에 적용한다. 즉 선택기를 고정하고 저장 내용만 바꾼 통제 비교다. 그 외에 Turns+cosine(Jev 호출 없는 코사인 순서), Turns+LLM(gpt-4o-mini listwise 리랭커), mem0 2.1.0, Jev-Mem(턴을 노드로 두고 Jev가 엣지를 타입 지정하는 그래프, 읽기당 2~16회 Jev 호출), 전체 컨텍스트를 비교한다. 모든 비교는 토큰을 맞춘다. 비교군이 k=3일 때의 평균 렌더링 토큰에 가장 가까운 k를 Turns+Jev의 k*로 삼는다(식 5).

무엇과 다른가

데이터는 LoCoMo의 사전에 쓰이지 않은 대화 conv-44, 47, 48, 49, 50으로, 3,122턴과 채점 대상 778문항, 추가로 적대적(adversarial) 209문항을 담는다. 개발에는 conv-26 하나만 썼다. LongMemEval_S cleaned에서는 등록된 70문항 샘플을, 수정 계획(amendment)에서 500문항 전체(채점 470, 기권 30)를 추가했다. 답변과 판정은 gpt-4o-mini temperature 0, mem0의 LoCoMo 답변·판정 프롬프트를 쓴다. 주 검정 H1은 문항별 차이의 평균에서 단측 95% 하한이 -5점 마진을 넘는지 보는 비열등성 검정이다(식 7). 보조 검정 S1~S7은 Holm 보정 아래 McNemar 검정이고 S4만 같은 마진의 비열등성 검정이다. 계획의 검정력 분석은 개발 대화의 차이가 유지되면 H1 통과 확률을 0.89로 봤다.

어떻게 쓰나

H1은 통과했다. 토큰을 맞춘 조건(Turns+Jev 265토큰, engram v2 251토큰)에서 차이는 -0.5점, 단측 95% 하한 -3.0점으로 등록된 -5점 마진을 넘었다(단측 p=0.0017). 즉 이 예산에서 추출이 더하는 정확도는 3.0점 미만이며, 쓰기 비용은 3,061배 차이다(1,000턴당 engram v2 $1.865, Turns+Jev $0.00061). 리랭크는 코사인 검색과 추출 사이 정확도 격차의 94%를 닫는다. 블라인드 사람 채점은 차이를 -1.7~-2.6점으로, 하한을 -3.9~-4.7점으로 옮겼지만 결론은 바뀌지 않았다. 두 번째 답변 모델 Llama 3.3 70B Instruct로도 H1은 통과했다(75.3% 대 75.6%). 보조 검정에서는 S1(코사인 대비), S2(Jev-Mem 대비), S3(mem0 대비), S4(LLM 리랭커 대비), S7(전체 LongMemEval)이 Holm 보정 후 기각됐고 S5·S6은 기각되지 않았다. S4에서 Jev는 gpt-4o-mini 리랭커에 비열등했고(차이 -0.4점, 하한 -2.0점), 지연 시간은 약 3분의 1이었다(Jev가 LLM 리랭커보다 약 3.0배, Jev-Mem보다 4.9배 빠름).

전제와 한계

핵심 결과는 예산 의존성이다. 리랭크가 코사인 검색 위에 더하는 이득 Δ(k)는 LoCoMo에서 k=3일 때 +17.4점, k=20일 때 +1.5점이었고, 전체 LongMemEval에서 k=3일 때 +9.1점, k=20일 때 +1.1점이었다. 후보 30개 중 3개만 남기면 순서가 어떤 근거가 답변 모델에 도달하는지를 결정하지만, 20개를 남기면 코사인 순서만으로도 대부분의 근거가 포함된다는 해석이다. 예산이 넉넉할 때는 추출이 더 정확하고 더 압축적이다. engram v2는 k=20에서 1,238토큰으로 82.4%를 기록해 이 연구에서 측정한 가장 정확한 시스템이었고, Jev-Mem은 k=40에서 1,987토큰으로 80.3%, mem0은 k=20에서 839토큰으로 78.7%, 전체 컨텍스트는 78.3%였다. Turns+Jev는 어떤 k에서도 약 77.6%에서 멈춘다. 손실이 어디서 생기는지도 분해했다. 9개 사전 미사용 대화 1,388문항에서 모든 근거 턴이 30턴 후보 목록에 들어간 경우는 76.9%, 최소 하나가 들어간 경우는 88.5%였다. 근거가 후보에 있는데도 리랭크가 전부 버린 경우가 10.4%로, 약 11.5%는 후보 목록에서, 9.2%는 리랭크에서 손실이 발생한다. 시간(temporal) 근거는 후보에는 잘 들어가지만 22.7%가 리랭크에서 버려진다. 또한 리랭킹은 올바른 기권을 낮췄다. k=3에서 적대적 질문에 대한 정확한 기권율은 코사인 63.6%, Jev 54.1%, LLM 리랭커 48.8%였고, LongMemEval k=20에서도 70.0% 대 63.3%였다.

실무적으로 이 논문이 주는 판단 기준은 명확하다. 답변 모델에 넣을 컨텍스트가 좁고 후보 대비 남기는 비율이 낮다면, 매 메시지마다 LLM을 호출해 사실을 추출·갱신하는 쓰기 파이프라인은 비용 대비 이득이 작을 수 있다. 원문 턴을 날짜·화자와 함께 저장하고 검색 시점에 한 번의 짧은 결정 모델 호출로 관련성을 점수화하는 것만으로 추출 기반 메모리에 비열등한 정확도를 얻을 수 있다는 것이 이 연구의 등록된 결론이다. 반대로 예산이 넉넉해 30개 중 20개를 넣을 수 있는 상황이라면 추출이 더 정확하고 토큰도 적으므로 추출 파이프라인이 여전히 합리적이다. 또 하나 실무적으로 중요한 지적은 평가 방식이다. mem0의 LoCoMo 판정 프롬프트처럼 관대한 LLM 판정을 쓰면 짧은 답변에 유리하게 채점되어 시스템별 사람-판정 일치도가 달라진다(엄격 매핑 81%, 관대 매핑 79%, engram v2 답변에 대한 관대 매핑 일치도 77% 대 Turns+Jev 82%). 답변 스타일이 다른 시스템을 비교한다면 시스템별 판정-사람 일치도를 함께 보고해야 한다.

저자가 밝힌 한계는 다음과 같다. 벤치마크가 설정당 한 계열뿐이고(LoCoMo는 LLM 생성 대화), 주 대화 5개가 778문항이라 범주별 표본이 작다. engram v2는 LongMemEval에서 실행되지 않았으므로 긴 이력에서 추출에 대해 이 연구가 주장할 수 있는 것은 없다. 사람 채점자는 평가 대상 시스템을 직접 만든 제1저자이며, 부분 점수 매핑이 사전 지정되지 않았고, 판정이 어긋난 문항만 재채점했으므로 판정이 일치한 문항의 오류는 남는다. Jev는 닫힌 버전 모델이라 결과는 jev-1.13.0에 한정된다. mem0의 추출 호출은 등록과 달리 OpenRouter(약 절반은 Azure)로 서빙됐다. Turns+Jev (wide)는 등록된 결과 이후에 설계되어 같은 문항에 한 번만 시험된 사후 변형이다. k=20 비교는 예산과 Turns+Jev 읽기 경로의 상한(임계값과 코사인 바닥 때문에 k=20에서도 496토큰만 읽음)이 섞여 있다. 적대적 콘텐츠(프롬프트 인젝션)는 시험하지 않았고, 모든 설계 선택은 대화 하나(conv-26)에서 이뤄졌다. 절대 정확도는 다른 프로토콜을 쓰는 SmartSearch의 91.9%보다 낮다.