'똑똑한 메모리'는 과거를 지운다. 자체 축소 실험으로 AI 에이전트 메모리의 변이 위험을 확인하다
요약
본 글은 AI 에이전트 메모리 기법의 변이 위험성을 자체 축소 실험으로 검증했습니다. 기존에 대화 기록을 요약하거나 수정하는 '똑똑한' 메모리 방식(MutatingSummaryMemory)보다, 원본 로그를 그대로 검색하는 Raw-RAG가 더 높은 성능을 보일 수 있음을 제시합니다. 제작자는 이를 위해 3가지 간소화된 메모리 기법을 직접 구현하여 비교했습니다.
핵심 포인트
- 복잡하게 가공하거나 변이시키는 에이전트 메모리는 오히려 해가 될 수 있음.
- 단순 검색(Raw-RAG)만으로도 높은 성능을 기대할 수 있어, 과도한 메모리 처리가 불필요함.
- 실험은 MutatingSummaryMemory, AppendOnlyMemory, RawRAG의 3가지 기법 비교를 통해 진행됨.
- 본 실험은 논문의 개념적 설계 사상에 기반하여 간소화된 환경에서 재현되었음.
오늘의 자료 출처
Hugging Face Daily Papers에 게재된 다음 논문을 검증했습니다.
- "Is Complex Agentic Memory Always Needed? Naive RAG Is Stronger Than We Thought"
- https://huggingface.co/papers/2610.30755 (arXiv:2610.30755, 제출일 2026-10-23경)
이 논문은 대화 기록을 요약 및 추출하고, 모순되는 새로운 정보가 들어오면 UPDATE/DELETE를 통해 가공해 나가는 기존의 '에이전트 메모리(agent memory)' 기법군에 대해, 원본 대화 기록에 단순 검색(密検索)과 Cross-Encoder 재랭킹만을 적용하는 순수한 'Raw-RAG' 베이스라인이 비교한 7가지 모델 설정 중 6가지에서 최고 성능을 기록했다고 보고하고 있습니다.
Mem0의 UPDATE/DELETE 작업을 추가만 하는 것으로 대체했을 때도 LoCoMo의 정확도가 67.36%에서 69.42%로 개선되는 사례를 보여주었으며, 메모리를 '가공하거나 변이'시키는 것 자체가 오히려 해가 될 수 있음을 지적하고 있습니다.
본 도전에서는 지금까지 Hindsight, Remory, AKV, Anti-Persistence 등 '에이전트 메모리를 똑똑하게 가공하는' 계열의 기법들을 여러 번 다루었기 때문에, 그 반대 개념(anti-thesis)으로서 흥미롭게 살펴보았습니다.
검증 방침 및 제약 사항
시작하기 전에 저자가 직접 구현한 코드가 Hugging Face Papers 페이지와 arXiv에 공개되지 않았는지 다시 확인했으나 찾을 수 없었습니다 (링크된 것은 MEME, Memobase, memU와 같은 베이스라인이나 벤치마크의 공개 리소스뿐이었습니다).
또한, 완전한 재현에는 GPT-4o/GPT-4.1-mini와 같은 클로즈드 API(closed API)와 LoCoMo, LongMemEval과 같은 대형 벤치마크가 전제되어야 하는데, 이는 본 도전의 '유료 API 키 필수 후보는 선택하지 않는다'라는 방침에 위배됩니다.
따라서 논문의 설계 사상 대비만을, 직접 만든 작은 대화 데이터와 Claude Code 자체 기능(Python 스크립트)을 사용하여 축소 재현하기로 했습니다.
추가적인 API 키나 GPU는 사용하지 않았습니다.
제작한 것
가상의 인물 3명에 대한 대화 로그(각각 20~25턴)를 직접 작성했습니다.
각 대화에서는 대화가 진행됨에 따라 '거주 도시', '직업', '반려동물', '좋아하는 음식' 등이 변화합니다 (이사/이직/반려동물 증가/취향 변화).
이 동일한 대화 로그를 대상으로 3가지 메모리 기법을 구현하여, 동일한 24문항의 질문 세트에 답하게 하여 비교했습니다.
- MutatingSummaryMemory (요약・변이형): 정규표현식 기반의 간이 추출로 사실을 가져오고, 모순되는 새로운 정보가 들어오면 이전 값을 덮어씁니다(overwrite). 논문에서 검증한 Mem0의 UPDATE/DELETE 작업을 모델링한 것입니다.
- AppendOnlyMemory (추가만 메모리): 추출 로직은 같지만, 이전 값을 지우지 않고 전체 기록을 보존합니다. 이는 논문 내 'UPDATE/DELETE를 추가만 하는 것으로 대체하는' 실험에 대응합니다.
- RawRAGMemory (순수 Raw-RAG): 추출이나 요약을 전혀 거치지 않고 원본 로그를 그대로 보존하며, 질문 시 직접 만든 경량 TF-IDF 유사도(외부 라이브러리 미사용)로 관련 발언을 검색합니다. 이는 논문의 '단순 검색 + Cross-Encoder 재랭킹'을 TF-IDF만으로 간략화한 것입니다.
추출은 실제 LLM이 아닌 정규표현식을 이용한 간이 규칙 기반으로 대체했기 때문에, 논문과 같은 실제 LLM의 추출/요약과는 다릅니다. 이 점은 간략화된 부분임을 미리 명시합니다.
질문은 2종류를 준비했습니다.
'현재 값에 대한 질문(current)' 12개와 '이미 덮어쓰거나 변경된 과거 값에 대한 질문(historical)' 12개입니다. 예를 들어, 'Aki의 현재 직업은?'이 current에 해당하고, 'Aki의 바로 전 직업은?'이 historical에 해당합니다.
실제로 구동한 결과
실행한 스크립트와 집계 결과는 다음과 같습니다 (실행 로그는 experiments/day-028/run_output.log에 그대로 저장되어 있습니다).
$ python3 run_experiment.py
=== 집계 ===
[current] n=12 | Mutating acc=66.67% | AppendOnly acc=66.67% | RawRAG acc=25.00%
...
질문별 출력 예시 (모순되는 기록이 어떻게 처리되는지 잘 알 수 있습니다).
⚠️ [conv_001_aki][job][historical] Q: 가장 최근 변경 사항 이전 Aki의 직업은 무엇이었나요?
gold='graphic designer'
Mutating -> 'product manager' (MISS)
...
재현된 부분: 메모리 변이는 과거를 지운다
덮어쓰기형 메모리(Mutating)는 historical 문제에 16.67%의 정답률을 보였다.
이는 구조적으로 당연하지만, 추출 로직을 전혀 변경하지 않고 '덮어쓰지 않고 추가만 하는' AppendOnly 방식은 100% 정답을 기록했다.
이 결과는 논문에서 Mem0의 UPDATE/DELETE를 단순히 추가(Append)하는 방식으로 바꿨더니 LoCoMo의 정확도가 67.36%에서 69.42%로 개선되었다고 보고한 현상과 방향성이 일치한다.
축소판에서도 '메모리 가공 및 변이 자체가 유해할 수 있다'는 논문의 지적을 명확하게 재현할 수 있었다.
재현되지 않은 부분: '순수한 Raw-RAG가 가장 강력하다'
반면, 논문 제목에 나온 '순수한 Raw-RAG가 가장 강력하다'라는 결과는 이번 축소 구현에서는 재현되지 않았다.
RawRAGMemory는 current 25.00%, historical 33.33%로 구조화된 메모리(특히 AppendOnly)보다 명확히 낮은 성능을 보였다.
실행한 결과를 있는 그대로 솔직하게 작성한다.
원인을 분리하기 위해 추가적인 Ablation Study도 진행했다.
$ python3 ablation_rag.py
=== RawRAG 검색 방식의 Ablation ===
[baseline (speaker label 포함, stem 없음)] current acc=25.00% | historical acc=33.33%
...
화자 레이블 제거나 간단한 어간 처리(stemming)를 적용해도, current acc는 25%에서 33.33% 수준의 개선에 그쳤으며, AppendOnly의 66.67%/100%에는 도달하지 못했다.
게다가 검색 건수(top_k)를 늘리면 정답률은 상승했지만 (top_k=10에서 current 41.67%/historical 75.00%), 이는 대화가 2025턴밖에 되지 않기 때문에 top_k=10으로 설정하면 대화의 약 45할을 읽어들이는 것과 같다.
즉, 단순한 구현 버그라기보다는 이번 구현 및 검증 규모 자체의 한계라고 생각한다.
- 논문의 방법은 학습된 밀도 벡터 검색(dense vector search) + Cross-Encoder 재랭킹을 사용하지만, 이번에는 외부 라이브러리나 API 키가 없다는 제약 때문에 직접 만든 TF-IDF만으로 근사했으며, Cross-Encoder에 해당하는 재랭킹 과정은 구현하지 않았다.
- RawRAG의 채점 기준은 '검색 결과의 원본 텍스트에 정답이 부분 문자열로 포함되는지'이며, 논문처럼 읽는 LLM(reading LLM)이 검색 결과로부터 실제로 올바른 답을 합성할 수 있는지까지는 검증하지 않았다 (읽는 LLM 사용에는 유료 API 키가 필요하여 생략함).
- 대화가 20~25턴으로 매우 짧아, 논문에서 사용하는 LoCoMo와 같은 장기 대화(수천 토큰 규모)에 비해 TF-IDF가 통계적 단서를 얻기 어려운 규모였다.
'순수한 Raw-RAG가 가장 강력하다'는 주장은, 이번처럼 검색기를 단순화하고 대화 규모까지 작게 만든 축소판에서는 재현하기 어려운 부분이 있다는 것이 솔직한 결론이다.
이는 논문의 주장 자체를 부정하는 것이 아니며, 재현하기 위해서는 논문과 동등한 검색기, 더 큰 대화 데이터, 그리고 읽는 LLM이 필요하다는 것을 보여주는 것이다.
추가 검증: 로컬 GPU에서 밀도 검색 + Cross-Encoder를 다시 구현해 보기
'Cross-Encoder 재랭킹 미구현이 원인일 수 있다'는 위의 가설을 실제로 확인해 보았다.
사용자의 로컬 PC(GPU 탑재) 환경에서, 공개된 무료 모델(sentence-transformers/all-MiniLM-L6-v2의 임베딩과 cross-encoder/ms-marco-MiniLM-L-6-v2의 Cross-Encoder (둘 다 Apache-2.0 라이선스로 API 키 불필요))를 사용하는 DenseRAGMemory를 새로 구현하여, 동일한 대화 데이터와 동일한 질문 24개, 그리고 동일한 채점 방식으로 재비교했다.
$ cd experiments/day-028/gpu_verification
$ python3 run_dense_experiment.py
[dense+rerank top5] current acc=66.67% | historical acc=83.33% | overall acc=75.00%
...
| 구현 | current | historical | overall |
|---|---|---|---|
| RawRAGMemory(TF-IDF만) | 25.00% | 33.33% | 29.17% |
| ... |
**가설은 입증되었다.**
TF-IDF만을 사용한 구현의 RawRAG는 overall 점수 29.17%로 구조화 메모리에 크게 뒤처졌지만, 이를 밀집 검색(dense search)으로 변경하고 크로스 인코더 재랭킹(cross-encoder re-ranking)을 추가하자 62.50%, 나아가 83.33%까지 개선되어 **AppendOnlyMemory (구조화 메모리 중 가장 높은 정답률을 보인 기법)와 완전히 동일한 수치에 도달했다.**
검색기를 취약한 TF-IDF 상태로 비교했던 것 자체가 Raw-RAG를 부당하게 불리하게 보이게 만들었음을 알 수 있다.
반면, “Raw-RAG가 구조화 메모리를 능가한다”라는 논문 제목의 결과 자체는 이번에도 재현되지 않았다.
도달한 것은 ‘동일 수준’에 머물렀을 뿐, ‘능가하는’ 단계에는 이르지 못했다.
남은 4개의 오답(MISS) 중 2개는 AppendOnlyMemory 역시 같은 질문에서 틀렸으며, 이는 데이터셋 측의 알려진 에지 케이스(단순 정규 표현식 추출로는 원래 포착되지 않았던 표현)임이 확인되었다.
논문에서 사용된 장기 대화 데이터(LoCoMo 등, 수천 턴 규모)나 읽는 LLM에 의한 답변 합성 과정이 없다면, ‘능가한다’는 부분까지 검증하기 어렵다고 생각한다.
## 비용 차이
구축 비용(총 3개 대화)과 저장 공간 크기도 기록했다.
| 기법 | 저장 공간 크기 |
|---|---|
| MutatingSummaryMemory | 165자 |
| ... |
RawRAG는 요약하지 않기 때문에 구조화 메모리보다 저장 공간이 약 19배 더 크다.
이는 논문에서도 지적하는 트레이드오프(trade-off)이며, 이번 축소 실험에서도 같은 경향을 보였다.
## 요약
- “메모리의 변이(덮어쓰기/삭제)는 과거 정보를 손실시켜 해가 될 수 있다”라는 논문의 핵심 지적은 자체 제작한 작은 규모의 축소 실험에서도 명확하게 재현되었다.
- “순수한 Raw-RAG가 최고다”라는 제목의 결과는 크로스 인코더 재랭킹을 구현하지 않았고 대화 규모도 작았던 이번 축소 버전에서는 재현되지 않았다. 검색기의 품질과 대화 규모가 결과를 크게 좌우한다는 점은 직접 실행해 보고 나서야 알게 되었다.
- 로컬 GPU 환경에서 밀집 검색 + 크로스 인코더 재랭킹으로 다시 구현하자, RawRAG는 구조화 메모리의 최고값과 완전히 동일한 수치에 도달했다. 검색기가 취약했던 것이 낮은 결과의 주원인이었다는 가설은 실측을 통해 입증되었다. 다만 ‘능가하는’ 부분까지는 재현하지 못했으며, 장기 대화 데이터나 읽는 LLM이 없는 한 검증할 부분이 남아있다.
- 구현, 데이터, 질문 세트는 모두 자체 제작한 것이며, 논문의 LoCoMo/LongMemEval 등의 데이터는 사용하지 않았다. 재현 절차 및 실행 로그는 `experiments/day-028/`에 모두 보관되어 있다.
## 출처・라이선스
- 논문: https://huggingface.co/papers/2610.30755 (arXiv:2610.30755)
- 저자 자체 구현 코드 공개는 확인되지 않음(2026-10-26 기준)
- 본 기사에서 사용된 대화 데이터, 질문 세트, 구현 코드는 모두 신규 제작한 것
### 토론 (Discussion)
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기