1P by 0xvinsohn 10시간전 | ★ favorite | 댓글과 토론

AI 에이전트 메모리 시스템을 만들면서 기존 벤치마크들의 공통적인 한계를 발견했습니다.

LoCoMo, LongMemEval, MemoryAgentBench 등 기존 메모리 벤치마크는 전부 같은 걸 테스트합니다: "과거 대화에서 답을 찾을 수 있는가?" 이건 검색 엔진 성능 테스트이지, 메모리 시스템 테스트가 아닙니다.

실제 멀티세션 에이전트에서 어려운 건 유저가 언급하지 않은 과거 맥락을 스스로 떠올리는 것입니다.

예시

Easy — 키워드가 겹쳐서 검색으로 찾을 수 있는 경우:

"고양이 Luna가 새 소파를 계속 긁어요. 훈련법 추천해줘."
→ Luna가 유저의 고양이라는 걸 기억해야 함

Medium — 같은 도메인이지만 키워드가 다른 경우:

"8시 30분 미팅에 맞춰 알람을 몇 시에 맞출까?"
→ 6주 전에 언급한 편도 45분 통근 시간을 기억해야 함. "알람 미팅"으로 검색하면 통근 대화는 안 나옴

Hard — 완전히 다른 도메인 간의 연결:

"2010년에 졸업한 대학 성적표를 요청했는데 현재 이름으로 기록이 없대요."
→ 유저가 성을 Johnson에서 변경했다는 걸 기억해야 함. "성적표"와 "개명"은 키워드 겹침이 전혀 없음

결과

900개 질문 (각 난이도 300개)에 대한 베이스라인:

방법 Easy Medium Hard 전체
메모리 없음 1.0% 0.7% 0.7% 0.8%
BM25 검색 4.7% 1.7% 2.0% 2.8%
BM25 + 벡터 검색 6.0% 3.7% 0.7% 3.4%

핵심 발견:

  • BM25 검색은 거의 도움이 안 됨. 0.8% → 2.8%로 미미한 개선에 토큰은 5배 소모
  • 벡터 검색도 Hard에서 0.7% — 메모리 없는 것과 동일. 시맨틱 유사도로는 "성적표 요청" → "개명" 연결 불가
  • "항상 검색하라"는 전략은 비용만 낭비. 질문당 ~4.7K 토큰을 소모하지만 대부분 무관한 노이즈

현재 RAG 기반 메모리(ChatGPT Memory, Mem0, MemGPT 등)는 전부 "매번 검색" 패턴인데, implicit context에서는 구조적으로 한계가 있다는 걸 데이터로 보여줍니다.

LongMemEval (ICLR 2025, MIT 라이선스) 세션 데이터 기반이고, 자체 메모리 시스템을 테스트할 수 있는 플러그인 구조로 되어있습니다.

Hard 난이도를 풀 수 있는 접근법에 대한 의견이 궁금합니다.