Memory Portability Paper review
Does Your Agent’s Memory Survive a Model Upgrade? A Controlled Study of Memory Portability
https://arxiv.org/abs/2609.05339
이 논문은 LinkedIn에서 쓴 논문으로, 모델을 바꿨을 때 에이전트 메모리가 그대로 살아남는지를 실험한 논문이다.
2026년 9월 4일에 올라왔고, 저자 2명에 18쪽이다.
논문 첫 문장이 “모델 업그레이드는 일상적이다. 메모리 마이그레이션은 그렇지 않다.”이다.
앞에서 본 A-MEM 리뷰에서 구조를 에이전트에게 맡기면 구조가 모델에 묶인다고 적었고, Anatomy 리뷰에서는 백본을 바꾸면 형식 오류율이 30%였다. 여기서는 그 문제를 통제 실험으로 잰다.
좀 더 자세히 알아보자.
1. 문제
에이전트는 같은 메모리 저장소를 그대로 두고도 잊을 수 있다고 한다.
이유는 세 가지다.
- 새 모델이 옛 노트를 다르게 해석할 수 있다
- 임베딩 버전이 섞이면 검색이 깨질 수 있다
- 원본 증거가 없으면 복구가 안 될 수 있다
2. 네 가지 메모리 형식
같은 이력을 네 가지 방식으로 저장해서 비교한다.
- LC-RAW : 원문 그대로 두고 긴 컨텍스트로 읽음. 쓰기 단계가 없음
- RAG : 청크로 나눠서 검색. 쓰기 단계는 없는데 임베딩에 의존
- NOTES : 모델이 자연어 노트로 압축. 쓰기 모델에 의존
- KG-fixed : 고정 스키마 지식그래프로 정리. 쓰기 모델에 의존
LC-RAW와 RAG는 쓰는 모델이 없어서 대조군으로 쓴다.
실험 설정은 이렇다.
- 합성 이력 48개에 무작위 정답 코드를 심어서 정확하게 채점
- 100억 파라미터 미만 오픈웨이트 모델 둘(Llama, Qwen) 사용
- 컨텍스트 예산을 맞춤
- 결과를 보기 전에 가설과 분석 계획을 서명된 Git 태그로 고정
3. 고정 스키마는 옮겨가고, 자유형 노트는 안 옮겨간다
쓰는 모델을 바꾸고 읽는 모델은 고정한 채로 쟀다.
| 형식 | 리더 | 자기 저장소 정확도 | 물려받은 저장소 정확도 | Swap ∆ |
|---|---|---|---|---|
| NOTES | Llama | 0.3762 | 0.4753 | +9.91pp |
| NOTES | Qwen | 0.4719 | 0.3391 | −13.28pp |
| KG-fixed | Llama | 0.8456 | 0.8445 | −0.11pp |
| KG-fixed | Qwen | 0.9878 | 0.9880 | +0.02pp |
KG-fixed는 거의 변하지 않는다. abstract를 보면 +0.0004 ± 0.0020이다.
고정 스키마로 정리해 두면 누가 썼든 읽는 쪽이 똑같이 해석한다는 것이다.
NOTES는 방향에 따라 부호가 바뀐다. Llama가 Qwen 노트를 읽으면 +9.91pp 좋아지고, Qwen이 Llama 노트를 읽으면 −13.28pp 나빠진다.
그런데 두 방향을 평균하면 −1.7pp 정도라서 별 차이 없어 보인다. 실제로 미리 등록한 대칭 가설(H1, H4a)은 5pp 임계를 못 넘어서 기각됐다.
논문도 평균이 이런 실패를 숨긴다고 하고, 그래서 방향별 결과를 따로 보여준다고 한다.
-> A→B가 괜찮아도 B→A는 무너질 수 있으니, 교체 방향별로 따로 테스트해야 한다.
4. 임베딩을 반만 옮기면 대부분을 잃는다
임베딩을 bge-large-en v1.0에서 v1.5로 바꿀 때 네 가지 방식을 비교한다.
- 옛 인덱스 그대로
- 완전 재구축
- 50/50 혼합
- 어느 인덱스에 답이 있는지 아는 이상적 라우터 (상한선)
| 방식 | 정확도 개선 |
|---|---|
| 50/50 혼합 인덱스 | +4.96pp |
| 완전 재임베딩 | +11.90pp |
혼합 인덱스는 전체 이득의 절반도 못 가져온다.
미리 등록한 가설 H2는 +6.95pp로 5pp 임계를 넘어서 지지됐다고 한다(Holm 보정 p = 1.3 × 10⁻⁶).
논문은 혼합 인덱스를 “조용한 부분 마이그레이션”이라고 부른다.
-> 임베딩 모델을 바꿀 때 기존 벡터는 그대로 두고 새로 들어오는 것만 새 모델로 넣는 경우가 많은데, 그러면 이렇게 된다는 거다.
5. 손실은 리더보다 앞에서 일어난다
정확도 손실이 어느 단계에서 생기는지 나눠서 봤다.
| 형식 | 주 원인 | 기여 | 비중 |
|---|---|---|---|
| NOTES | 저장 단계(쓰기) | 0.467 ± 0.014 | 80% |
| NOTES | 노트 내 검색 | 0.036 ± 0.009 | 6% |
| RAG | 검색 단계 | 0.364 ± 0.012 | 81% |
| RAG | 저장된 청크 자체 | 거의 0 | — |
둘이 정반대다.
NOTES는 쓸 때 이미 잃는다. 노트를 새 리더 문체에 맞게 다시 써봤는데 회복이 안 됐다고 한다.
문제는 낯선 표현이 아니라 빠지거나 망가진 내용이라고 한다.
RAG는 반대로 청크에는 정보가 거의 다 남아 있는데 검색이 못 찾는다. 검색을 건너뛰고 맞는 청크를 바로 주면 두 리더 모두 대체로 잘 푼다.
그래서 리더를 바꾸기 전에, 결정적 증거를 저장했는지, 검색했는지, 전달했는지부터 확인하라고 한다. NOTES는 요약·쓰기 단계를, RAG는 청킹·색인·랭킹을 고쳐야 한다고 한다.
6. 검색이 먼저 무너진다
모델을 바꾸기 전부터 RAG 파이프라인 자체가 병목이었다.
| 방식 | 정확도 범위 |
|---|---|
| LC-RAW (원본 그대로) | 0.712 ~ 0.911 |
| RAG | 0.535 ~ 0.565 |
리더 모델과 상관없이 검색이 필요한 증거를 실제로 가져오는 건 약 60%뿐이라고 한다.
40%는 못 찾는다는 뜻이다.
다만 논문은 이게 RAG 전체의 한계라고 하지는 않는다. 일부러 단순하게 만들었기 때문이다. 단일 단계 dense 검색기, 이벤트 기반 청크, 코사인 top-k=8을 썼고 리랭커나 어휘 검색은 없다.
앞에서 본 MemMachine 리뷰는 이웃 턴 확장으로, SYNAPSE 리뷰는 BM25+dense 이중 트리거로 이 부분을 채웠다. 그런 장치가 없으면 40%를 놓친다는 걸 여기서 보여준다.
7. 원본을 남기면 두 번째 기회가 생긴다
모델이 쓴 노트는 원본을 압축한 사본이다. 쓰는 모델이 사실을 빠뜨렸으면 노트를 다시 써도 되살릴 수 없다.
그래서 원본 이력을 남겨두면 복구가 되는지 시험했다. 목표는 새 리더가 자기 저장소에서 내는 성능의 90%까지 회복하는 것이다.
| 복구 방식 | 결과 | 비용(중앙값) |
|---|---|---|
| store-only NOTES 재작성 | 48건 전부 실패 — 어떤 예산에서도 90% 미달 | — |
| raw-history 복구 (Qwen) | 48건 중 34건 성공 | 약 $0.76 |
| raw-history 복구 (Llama) | 0건 — 매번 출력 토큰 한도에 걸림 | — |
| RAG 재임베딩 | 96건 전부 회복 | 약 $0.013 |
| KG-fixed 재구축 | 96건 중 91~96건 | 거의 0 |
원본 없이 노트만 다시 쓰면 48건 중 0건이다. 이미 없어진 증거는 다시 만들 수 없으니까.
원본이 있어도 복구하는 모델이 못 쓰면 소용없다. Llama는 매번 출력 토큰 한도에 걸려서 0건이었다.
논문은 출력 한도를 늘리면 달라질 수 있고, 복구 모델이랑 마이그레이션 방향이 같이 바뀌어서 모델 능력을 깔끔하게 비교한 건 아니라고 한다.
RAG 재임베딩은 $0.013, KG-fixed 재구축은 거의 공짜다. 구조화된 데이터는 복구가 싸고 확실하다.
8. 지금 관점: 모델을 갈아끼울 때
앞의 논문들이 무엇을 만들지를 다뤘다면, 이 논문은 만든 다음에 모델이 바뀌면 어떻게 되는지를 다룬다.
세션 요약, 대화 압축, 추출한 사실 같은 건 다 NOTES 쪽이다. 모델을 바꾸면 방향에 따라 ±10pp 넘게 흔들릴 수 있고, 손실의 80%는 쓸 때 이미 생긴 거라서 나중에 고칠 수가 없다.
KG-fixed는 ∆가 0.0004였다. 자유롭게 쓰게 하지 말고 정해진 필드에 값을 채우게 하면 모델이 바뀌어도 해석이 안 흔들린다.
-> 꼭 그래프까지 가야 하는 건 아닌 것 같다. 스키마가 고정인 게 중요한 거 아닌가??
임베딩은 전부 다시 만드는 게 맞다. 50/50 혼합은 전체 이득의 42%만 가져온다. 논문도 임베딩 공간을 엄격하게 분리하라고 권한다.
원본도 남겨야 한다. 원본 없는 복구는 48건 전부 실패했다. 앞에서 본 Rate-Distortion 리뷰에서 가역성이 중요하다고 했는데, 여기서 운영 상황으로 확인된다.
대신 논문은 전체 이력을 보존하면 프라이버시·보안·보관·삭제 의무가 생긴다고 한다.
-> 새 모델이 “잊었다”고 보이면 리더 탓을 하기 전에 저장·검색·전달부터 봐야겠다.
9. Conclusion
모델 업그레이드를 단순 교체가 아니라 메모리 마이그레이션으로 다루라고 한다.
- 옛 저장소로 새 모델을 테스트한다
- 벡터 인덱스를 완전히 다시 만든다
- 정책이 허용하면 보호된 원본 이력을 유지한다
- 복구 방법을 고르기 전에 정보가 쓰기·검색·읽기 중 어디서 사라졌는지 확인한다
마지막 문장은 메모리 시스템이 그걸 만든 모델보다 오래 살아야 한다는 것이다. 나중 모델이 읽고, 출처를 확인하고, 필요하면 다시 만들 수 있어야 한다고 한다.
논문이 밝힌 범위 한계도 있다.
- KG-fixed 결과는 이 워크로드에서 이식성이 높았다는 것뿐이고, 지식그래프가 자연어 노트보다 항상 낫다는 뜻은 아니라고 한다
- 40% 검색 실패율과 혼합 인덱스 성능 저하는 같은 차원 임베딩 공간 사이를 옮기는 단일 단계 dense 검색기에만 해당한다고 한다
- 원본 보존으로 복구가 된 건 한 방향뿐이었다
여태까지 메모리 논문들이 한 모델 안에서 성능을 쟀다면, 이 논문은 모델이 바뀐 다음에도 메모리가 쓸 수 있는지를 잰다.
다음은 Agent Memory 논문 21편 회고다. 21편을 논문이 나온 순서대로 다시 늘어놓고 흐름을 정리했다.
Leave a comment