Agent Memory 논문 21편 회고
에이전트 메모리 논문 21편을 일주일 동안 리뷰했다.
한 편씩 읽을 때는 다들 좋은 수치를 내놓는 것처럼 보였는데, 논문이 나온 순서대로 다시 늘어놓으니까 흐름이 보였다.
처음에는 구조를 쌓는 쪽으로 가다가, 최근 1년은 그 구조가 정말 필요했는지 다시 묻는 쪽으로 돌아오고 있다.
개별 논문 내용은 각 리뷰에 있으니 여기서는 메모리를 어떻게 나눠왔는지부터 보고, 큰 흐름을 정리해보자.
1. 메모리는 어떻게 나눠왔나
논문들을 보기 전에 기본부터 정리해두자. 메모리를 뭐로 나누는지가 3년 사이에 꽤 바뀌었다.
1.1 사람 기억: 단기와 장기
출발점은 사람 기억이다. From Human Memory to AI Memory에서 Atkinson-Shiffrin 다중저장 모델로 정리한 걸 보면 이렇다.
- 단기 기억 : 적은 양을 초~분 단위로 잠깐 들고 있는 것
- 감각 기억 : 눈, 귀, 촉각으로 들어온 걸 아주 잠깐 저장
- 작업 기억 : 지금 문제 푸는 데 쓰려고 들고 있는 정보
- 장기 기억 : 분 단위부터 평생까지 남는 것
- explicit : 의식적으로 떠올리는 것. 일화 기억(겪은 일), 의미 기억(아는 사실)
- implicit : 의식하지 않고 쓰는 것. 절차 기억(자전거 타는 법 같은 기술), 조건반사
에이전트 메모리 용어는 거의 다 여기서 가져왔다.
1.2 LLM에 옮기면
LLM은 stateless다. 호출 사이에 아무것도 기억하지 않는다.
그래서 LLM에서는 대충 이렇게 나뉜다.
- 단기 : 컨텍스트 창 안에 있는 것. 지금 대화, 프롬프트, KV 캐시
- 장기 : 컨텍스트 창 밖에 따로 저장해둔 것. 필요할 때 꺼내서 컨텍스트에 넣어야 쓸 수 있다
MemGPT가 이걸 운영체제에 빗대서 정리했다. 컨텍스트 창(main context)은 RAM, 바깥 저장소(external context)는 디스크고, LLM이 함수 호출로 둘 사이에 정보를 옮긴다.
CoALA는 여기서 한 단계 더 나눴다. 단기는 working memory 하나고, 장기를 사람 기억처럼 셋으로 쪼갰다.
- Working : 지금 의사결정에 쓰는 정보. 매 LLM 호출의 프롬프트가 여기서 만들어진다
- Episodic : 과거 경험 기록. Reflexion의 반성문 같은 것
- Semantic : 세계에 대한 지식. RAG가 읽어오는 지식 베이스
- Procedural : 행동하는 방법. Voyager의 스킬 코드, LLM 가중치
2023~2024년 논문들은 대부분 이 틀 안에서 얘기한다.
1.3 단기/장기만으로는 부족해졌다
2025년에 나온 두 서베이가 이 틀을 다시 짰다.
From Human Memory to AI Memory(2025-04)는 단기/장기를 축 하나로 남겨두고, 누구의 기억인지(personal/system), 어디에 담는지(parametric/non-parametric)를 축으로 더해서 8칸으로 나눴다. 사용자 정보랑 에이전트 자기 작업 기록을 나눈 게 이 논문의 특징이다.
Memory in the Age of AI Agents(2025-12)는 한 발 더 나가서 장기/단기 이분법으로는 요즘 시스템을 다 담을 수 없다고 한다. 저장소는 하나고, 어떻게 쓰느냐에 따라 장기·단기가 갈린다는 것이다.
대신 세 축으로 나눈다.
- Forms (어디에 담나) : Token-level / Parametric / Latent
- Functions (무엇을 위해) : Factual / Experiential / Working
- Dynamics (어떻게 움직이나) : 만들기 → 합치기·고치기·지우기 → 꺼내기
CoALA의 네 가지랑 맞춰보면 이렇다.
- Working → Working : 거의 그대로. KV 캐시 압축까지 포함
- Semantic → Factual : 사용자에 대한 사실과 환경에 대한 사실로 나눔
- Episodic → Experiential : 겪은 일뿐 아니라 거기서 뽑은 교훈, 스킬까지 포함
- Procedural → 없어짐 : 스킬 코드는 Token-level, 가중치는 Parametric으로 Forms 쪽에 흩어짐
-> 내가 이해한 건 이렇다. 단기/장기는 “지금 컨텍스트에 있냐 없냐” 정도로 보면 되고, 3년 동안 바뀐 건 장기 쪽을 무슨 기준으로 나누느냐였다. 처음엔 사람 기억 이름을 그대로 가져왔다가, 나중엔 무엇을 위한 기억인지로 나누게 됐다.
그리고 실제로 나온 시스템들은 거의 다 장기 쪽이다. Mem0, Zep, A-MEM, MemMachine이 사용자 사실(Factual)을, Experience-Following, Janus, NEMORI가 경험(Experiential)을 다룬다. 단기 쪽은 KV 캐시 압축이나 컨텍스트 관리처럼 모델 쪽 연구에 가깝다.
2. 논문이 나온 순서대로 다시 정리
리뷰도 이 순서대로 올려뒀다. 한 편씩 읽으면 각자 따로 노는 것 같은데, 표로 한 번에 놓고 보면 어떻게 발전했는지가 보인다.
| 나온 시기 | 논문 | 무엇을 했나 | 기억할 것 |
|---|---|---|---|
| 2023-09 | CoALA | 에이전트 기억을 네 종류로 분류 | 작업·일화·의미·절차 기억 구분의 원조 |
| 2023-10 | MemGPT | LLM이 스스로 기억을 넣고 빼게 함 | 컨텍스트 창은 RAM, 외부 저장소는 디스크 |
| 2024-05 | HippoRAG | 문서에서 개념 그래프를 만들어 검색 | 그래프로 찾고 답은 원문 구절로 |
| 2024-10 | LongMemEval | 챗봇 장기 기억 벤치마크 | 5가지 능력, 모른다고 답하기 포함 |
| 2025-01 | Zep | 사실을 시간 정보가 붙은 그래프로 저장 | 틀린 사실을 지우지 않고 만료 표시 |
| 2025-02 | A-MEM | 새 기억이 들어오면 관련 기억과 자동 연결 | 옛 기억의 설명까지 고쳐 씀 |
| 2025-04 | Mem0 | 대화에서 사실만 뽑아 저장 | 추가·수정·삭제를 LLM이 판단, 빠름 |
| 2025-04 | From Human Memory to AI Memory | 인간 기억 분류를 AI에 대응 | 사용자 기억과 시스템 기억을 구분 |
| 2025-05 | Experience-Following | 경험을 쌓을수록 좋아지는지 실험 | 전부 넣으면 오히려 나빠짐 |
| 2025-08 | What Deserves Memory | 무엇을 기억할지 자동 판단 | 예상과 달랐던 것만 저장 |
| 2025-12 | Memory in the Age of AI Agents | 메모리 연구 전체 지도 | 장기/단기 대신 형태·목적·동작으로 분류 |
| 2026-01 | SYNAPSE | 연관된 기억이 연쇄로 떠오르게 검색 | 모르는 건 모른다고 답함 |
| 2026-02 | Anatomy of Agentic Memory | 기존 평가 방식이 맞는지 검증 | 대화 전체를 넣은 것보다 못한 경우가 많음 |
| 2026-02 | AMV-L | 기억이 쌓여도 느려지지 않게 관리 | 자주 쓰는 기억만 검색 대상으로 |
| 2026-03 | Multi-Layered Memory | 기억 계층을 하나씩 빼보는 실험 | 개념 기억 층이 가장 중요 |
| 2026-04 | MemMachine | 원문을 그대로 저장하는 메모리 시스템 | 저장 방식보다 검색 튜닝 효과가 큼 |
| 2026-05 | LongMemEval-V2 | 웹 에이전트용 장기 기억 벤치마크 | 사용자 정보 대신 업무 요령을 기억하나 |
| 2026-05 | MemFail | 메모리가 어디서 틀리는지 진단 | 요약·저장·검색 중 어디서 깨졌나 |
| 2026-06 | The Past Is Prologue | 기억을 고치기 전에 검증 | 새 버전이 나쁘면 옛 버전 유지 |
| 2026-07 | What to Keep, What to Forget | 무엇을 버릴지를 이론으로 정리 | 되돌릴 수 있는 방식이 이김 |
| 2026-08 | ReFind | 구조 없이 원문 검색만 반복 | 그래프·요약 방식을 전부 이김 |
| 2026-09 | Memory Portability | 모델을 바꿔도 기억이 유지되나 실험 | 요약형 기억은 모델 따라 흔들림 |
이렇게 놓고 보면 대충 네 시기로 나뉜다.
3. 네 시기
3.1 다른 분야에서 아이디어를 가져온 시기 (2023 ~ 2024)
이때 질문은 하나였다. 컨텍스트 창보다 긴 걸 어떻게 다루나.
답은 다른 분야에서 가져왔다.
- MemGPT : 운영체제의 가상 메모리, 페이징
- CoALA : 인지과학의 기억 분류
- HippoRAG : 신경과학의 해마 색인 이론
셋 다 지금까지 남아 있는 게 있다.
MemGPT의 main/external context 구분이랑 함수로 자기 메모리를 관리하는 방식은 이후 거의 모든 시스템의 기본 틀이 됐다. CoALA의 네 분류는 2025년 서베이가 나오기 전까지 다들 쓰던 용어였다. HippoRAG는 3년 뒤 ReFind 비교표에서도 구조화 메모리 중에 유일하게 BM25를 넘었다.
HippoRAG가 살아남은 이유는 이때 이미 있었던 것 같다. 그래프를 만들긴 하는데 검색 결과로는 원래 구절을 돌려줬다. 그래프는 색인이고 저장소가 아니었다.
-> 이 차이가 3년 뒤에 이렇게 크게 돌아올 줄은 몰랐다.
3.2 구조를 쌓아 올린 시기 (2025 상반기)
LongMemEval이 평가 기준을 세우고 나서 제품형 시스템이 쏟아졌다. Zep, A-MEM, Mem0가 반년 사이에 나왔다.
셋 다 대화를 뭔가로 바꿔서 저장한다.
- Mem0 : 사실을 뽑는다
- Zep : 엔티티랑 관계로 그래프를 만든다
- A-MEM : 노트를 만들고 서로 잇는다
차이는 바꾼 걸 어떻게 고치느냐였다. Mem0는 모순이면 지우고, Zep은 무효화 시각만 찍고 남기고, A-MEM은 이웃 노트의 설명을 덮어쓴다.
그때는 구현 취향 차이 정도로 보였을 것 같은데, 1년 반 뒤 Rate-Distortion 논문이 이걸 가역·비가역 문제로 정리하면서 큰 차이가 된다.
같은 시기에 나온 From Human Memory to AI Memory는 아직 장기/단기를 분류 축으로 뒀다. 8개월 뒤 2025년 서베이가 그 이분법으로는 부족하다고 한다.
3.3 무엇을 남길지 고민한 시기 (2025 하반기 ~ 2026 초)
구조가 어느 정도 갖춰지고 나니 질문이 바뀌었다. 어떻게 저장하느냐에서 무엇을 저장하느냐로.
- Experience-Following : 실행 경험을 전부 넣으면 네 에이전트 모두에서 고정 메모리보다 나빠진다고 한다. 비슷한 과거를 그대로 따라 하니까 나쁜 경험도 따라 한다
- What Deserves Memory : 중요도 점수 대신 “기존 지식으로 예측했는데 틀린 부분”만 남긴다
- SYNAPSE : 잘 찾는 것에 더해서, 못 찾았을 때 모른다고 답하게 만들었다
그리고 이 시기 끝에 2025년 서베이가 전체 지도를 다시 그렸다. Forms(어디에 담나), Functions(무엇을 위해), Dynamics(어떻게 움직이나)로 나누고, 장기/단기 이분법으로는 요즘 시스템을 담을 수 없다고 한다.
3.4 다시 검증하는 시기 (2026)
올해 나온 논문들은 좀 다르다. 새 구조를 내놓기보다 지금까지 쌓은 게 맞았는지 따진다.
-
평가를 의심한다. Anatomy of Agentic Memory는 메모리 시스템 점수를 같은 모델에 대화 전체를 넣은 점수랑 나란히 놓으라고 한다. 그렇게 계산하면 MemGPT랑 Mem0는 오히려 마이너스다. MemFail은 점수 하나로 뭉뚱그리지 말고 요약·저장·검색 중 어디서 틀렸는지 나눠 보자고 한다.
-
병목을 다시 찾는다. MemMachine은 저장 방식 개선(+0.8%p)보다 검색 개선(검색 개수만 바꿔도 +4.2%p)이 크다고 한다. AMV-L은 느린 원인이 저장 용량이 아니라 검색 후보가 계속 커지는 데 있다고 한다.
-
구조 자체를 의심한다. ReFind가 제일 멀리 갔다. 아무 구조도 안 만들고 원문 대화에 키워드 검색만 반복시켰더니 그래프·트리 기반 시스템을 전부 넘었다. Mem0랑 Zep은 BM25의 절반 정도였다.
-
운영을 본다. Memory Portability는 모델을 바꾸면 요약형 메모리가 방향에 따라 ±10%p 넘게 흔들리고, 원본이 없으면 복구가 48건 전부 실패한다고 한다. The Past Is Prologue는 갱신을 무조건 받지 말고 옛 버전이랑 비교해서 나은 쪽을 남기자고 한다.
-> 1년 전만 해도 어떤 구조가 더 좋냐를 겨뤘는데, 올해는 구조가 필요하긴 하냐를 묻고 있다.
4. 반복해서 나온 결론 넷
21편이 각자 다른 걸 재는데, 결론이 겹치는 데가 네 군데 있었다.
4.1 되돌릴 수 있어야 이긴다
제일 여러 번 나왔다.
- HippoRAG : 그래프는 색인, 답은 원래 구절
- Zep : 지우지 않고 무효화 시각만 기록
- Rate-Distortion : 같은 예산에서 가역 0.95 vs 비가역 0.33~0.56
- ReFind : 원문을 안 건드려서 1위
- Memory Portability : 원본 없으면 복구 48건 중 0건
- The Past Is Prologue : 옛 버전이 있어야 비교하고 되돌릴 수 있음
반대로 성적이 나빴던 쪽은 원본을 버렸다. Mem0는 사실만 남기고, 요약형 NOTES는 쓸 때 이미 정보의 80%를 잃었다.
그렇다고 원본을 전부 검색 대상으로 두면 AMV-L에서 말한 문제가 생긴다. 남겨두되 검색 대상에서는 뺄 수 있게 두는 게 맞는 것 같다.
4.2 저장보다 검색이 자주 막힌다
같은 방향으로 나온 게 네 개다.
- MemMachine : 검색 최적화 효과가 저장 최적화의 5배
- Memory Portability : RAG 손실의 81%가 검색 단계
- AMV-L : 병목은 검색 후보 크기
- ReFind : 반복 검색 하나로 1위
예외도 있다. What Deserves Memory는 검색을 단순하게 두고 저장 단계 증류만으로 이겼다.
이 둘은 MemFail로 보면 정리가 된다. 요약에서 틀리는 문제면 검색 개수를 늘려도 소용없고, 검색에서 틀리는 문제면 늘리면 좋아진다.
-> 결국 어디가 막혔는지 먼저 재봐야 한다는 얘기다.
4.3 모델을 올려서는 안 풀린다
MemFail은 더 강한 모델이 오히려 장황한 메모리를 만들어서 성능을 깎는다고 한다. Anatomy는 작은 모델에서 메모리 쓰기 형식 오류가 30%까지 오른다고 하고, Memory Portability는 모델을 바꾸면 기존 메모리 해석이 흔들린다고 한다.
-> 모델만 좋아지면 메모리도 알아서 좋아질 줄 알았는데 그렇지 않다.
4.4 대화 전체를 넣은 점수와 먼저 비교한다
Anatomy에서 제안한 방식이다. 메모리 시스템 점수에서 같은 모델에 대화 전체를 넣은 점수를 빼본다. 이 차이가 없거나 마이너스면, 그 시스템은 정확도가 아니라 지연이랑 비용 때문에 쓰는 것이다.
이렇게 보면 Mem0는 정확도를 6점 내주고 지연을 12배 줄인 시스템이다. 나쁘다는 게 아니라 뭘 얻으려고 쓰는 시스템인지가 분명해진다.
5. 아직 비어 있는 곳
21편을 서베이의 분류에 올려보면 몇 칸이 비어 있다.
- 파라미터에 기억을 넣는 방식 : 두 서베이 모두 축으로 세웠는데, 21편 중에 실제로 구현한 시스템이 없다
- 경험 기억 평가 : 대부분 사용자에 대한 사실을 재고, 에이전트가 경험에서 배우는지 재는 건 LongMemEval-V2랑 Experience-Following 정도다
- 어시스턴트가 한 말 기억하기 : Zep(−17.7%)이랑 What Deserves Memory(−5.3점) 둘 다 여기서 대화 전체를 넣은 경우보다 졌다. 추출하면서 안내나 추천 같은 발화가 흐려지는 것 같다
- 반복 갱신의 누적 효과 : A-MEM의 진화나 Mem0의 갱신을 수천 번 돌리면 어떻게 되는지 잰 논문이 없다. Rate-Distortion이 작은 규모로 위험을 보여준 정도다
-> 마지막 건 실제로 오래 돌리는 서비스라면 제일 먼저 궁금할 부분인데 아무도 안 쟀다??
6. 다시 만든다면
21편을 읽고 나서 메모리를 다시 만든다면 이 순서로 해볼 것 같다.
- 대화 전체를 넣은 경우를 먼저 재본다. 메모리가 정말 필요한지부터
- 원문은 남긴다. 요약이나 추출은 그 위에 색인으로 얹는다
- 검색부터 손본다. 검색 개수, 이웃 턴 같이 꺼내기, BM25랑 벡터 검색 같이 쓰기, 시간 감쇠. 저장 구조를 안 바꾸고 할 수 있다
- MemFail 네 과제로 어디서 틀리는지 본다. 조건부 사실, 같이 있는 선호, 없는 사람에 대한 질문, 흩어진 사실 잇기
- 그다음에 구조를 얹는다. 삭제 대신 무효화, 갱신 전에 옛 버전이랑 비교
- 모델을 바꿀 때마다 메모리를 다시 확인한다. 임베딩은 다시 만들고, 바꾸는 방향별로 따로 잰다
처음 이 시리즈를 시작할 때는 어떤 메모리 구조를 고를지가 궁금했다.
다 읽고 나니 질문이 바뀌었다. 구조를 고르기 전에, 원문 남기고 검색만 제대로 해도 어디까지 가는지부터 봐야겠다.
Leave a comment