핵심 한 줄: 에이전트에게 과거 경험을 “그대로 복사해서 붙여넣기”하면 성능이 떨어진다. MemHarness는 인간의 기억 작동 방식처럼, 검색된 경험을 현재 상황에 맞게 비판하고 재구성하는 중간 단계를 GRPO 훈련으로 끼워 넣어, 7B 모델이 Gemini-2.5-Pro를 +23% 압살하는 결과를 만들어낸다.
문제의 출발: 메모리가 독이 되는 순간
LLM 에이전트에 “이전에 성공한 경험”을 넣어주면 당연히 도움이 될 것이라 생각한다. 하지만 실제로는 그렇지 않다. 상황이 조금만 달라져도 과거 경험은 오답 노트가 된다.
예를 들어 ALFWorld(가정 환경 시뮬레이션)에서 “apple을 refrigerator에 넣었더니 성공했다”는 경험이 있다고 하자. 이걸 그대로 재생하면, 현재 작업이 “tomato를 microwave에 넣기”일 때 에이전트는 여전히 refrigerator를 찾으러 다닌다. 의미적으로는 “음식을 보관하기”라는 관련성이 높지만, 실행 수준에서는 완전히 다른 행동이 필요하기 때문이다.
이것을 논문은 “negative transfer”(부정 전이)라고 부른다. 검색은 관련성 기준으로 되지만, 행동은 상태 의존적이기 때문에 벌어지는 틈이다.

인지과학이 주는 단서: 기억은 재생이 아니라 재구성이다
1974년 Loftus와 Palmer의 고전적 연구 이후, 인지과학에서는 인간의 기억이 비디오 재생이 아니라 재구성 과정이라는 것이 정설이다. 우리는 과거 사건을 그대로 꺼내는 게 아니라, 현재 맥락과 일반 지식을 바탕으로 다시 조립한다.
MemHarness는 이 통찰을 에이전트 설계로 옮긴다. 메모리 증강 에이전트의 의사결정을 다섯 단계로 분해한다:
- 환경 관찰(Environment observation) — 현재 상태 파악
- 경험 검색(Experience retrieval) — 관련 과거 경험 호출
- 메모리 비판(Memory critique) — 이 경험이 현재 상황에 맞는가?
- 맥락적 재구성(Contextual reconstruction) — 맞으면 유지, 틀리면 수정 또는 거부
- 행동 생성(Action generation) — 재구성된 가이드로 행동
핵심은 3번과 4번, 즉 검색과 행동 사이에 끼어드는 “비판+재구성” 단계다. 기존 에이전트에는 이 단계가 없었다.
MemHarness 프레임워크: 검색 → 재구성 → 행동

MemHarness의 추론 파이프라인은 세 단계로 구성된다:
1. 검색(Retrieval)
의사결정 스텝마다 에이전트가 메모리 뱅크를 쿼리한다. 각 메모리 엔트리는 추상적 전략()과 그 전략이 만들어진 원래 관찰()로 구성된다. 원래 상태를 함께 저장하는 것이 핵심이다 — 나중에 현재 상태와 비교하기 위해서다.
2. 맥락적 재구성(Contextual Reconstruction)
정책 모델 가 현재 히스토리 와 검색된 메모리를 함께 보고, 이 경험이 현재에 적용 가능한지 판단한다. 그 결과 세 가지 행동 중 하나를 취한다:
- 유지: 경험이 현재 상황에 그대로 적용 가능 → 가이드로 사용
- 수정: 일부만 맞음 → 현재 상황에 맞게 변형
- 거부: 전혀 맞지 않음 →
<EMPTY>출력, 자기 추론에 의존
거부 메커니즘이 중요하다. 나쁜 메모리를 쓰느니 메모리 없이 스스로 생각하는 게 낫다는 판단이다.
3. 행동 생성(Action Generation)
재구성된 가이드 를 받아 동일한 정책 가 실행 가능한 행동을 생성한다. 재구성과 행동 생성이 같은 모델 파라미터를 공유한다는 점이 중요하다 — 별도의 재구성 모델이 필요 없다.
GRPO로 재구성 능력을 훈련하는 법
여기가 이 논문의 가장 영리한 부분이다. “좋은 재구성”의 정답 라벨이 없다. 그래서 재구성을 잠재 변수(latent variable)로 취급하고, GRPO로 end-to-end 훈련한다.
보상 설계는 간결하다:
- : 성공 시 10, 실패 시 0 (희소 태스크 보상)
- : 올바른
<think>/<action>블록 구조, 적절한 메모리 검색 빈도(에피소드당 1~5회), 영어 출력 — 각각 1/3 가중치
GRPO는 궤적 그룹에서 정규화된 어드밴티지를 계산한다:
이 어드밴티지가 궤적의 모든 토큰(생각, 재구성, 행동 포함)에 공유된다. 즉 태스크 성공이라는 궁극적 신호만으로 재구성 전략이 자동 학습된다.
직관적으로: 성공한 궤적에서 “이 메모리를 거부한 결정”이 반복되면, 그 거부 패턴이 강화된다. 실패한 궤적에서 “틀린 메모리를 맹목으로 따른 결정”이 반복되면, 그 재생 패턴이 억제된다. 명시적 감독 없이 판별력이 생겨난다.
실험 결과: 7B가 GPT-4o와 Gemini를 넘는다
| 방법 | ALFWorld Avg. SR | WebShop SR |
|---|---|---|
| GPT-4o | 49.2% | 23.7% |
| Gemini-2.5-Pro | 62.1% | 35.9% |
| Qwen2.5-7B (베이스) | 14.5% | 7.8% |
| GRPO only | 76.4% | 66.1% |
| EvolveR (재현) | 70.1% | 72.6% |
| Mem0+GRPO | 52.0% | 37.5% |
| MemHarness | 85.2% | 75.6% |
가장 주목할 만한 숫자들:
- Gemini-2.5-Pro를 ALFWorld에서 +23.1%, WebShop에서 +39.7% 압살 (7B 모델이)
- 순수 GRPO 대비 ALFWorld +8.8%, WebShop +9.5% 향상
- Mem0+GRPO(메모리를 넣기만 한 버전)는 순수 GRPO보다 더 나쁘다 (76.4% → 52.0%) — 메모리가 해가 되는 현상의 직접적 증거
핵심 발견: 재구성을 빼면 메모리가 다시 독이 된다
이 논문의 가장 설득력 있는 데이터는 제거 실험(ablation)에 있다.
| 변형 | ALFWorld Avg. SR |
|---|---|
| MemHarness (완전판) | 85.2% |
| 재구성 제거 (메모리만 그대로 삽입) | 79.6% |
| 메모리 자체를 끔 (재구성 훈련만 남김) | 83.0% |
| 외부 LLM으로 재구성 대체 | 77.7% |
세 가지 통찰이 여기서 나온다:
첫째, 재구성 없이 메모리만 넣으면 성능이 떨어진다 (85.2% → 79.6%). 이는 “메모리를 넣는 것” 자체가 아니라 “메모리를 적응시키는 것”이 핵심이라는 증거다.
둘째, 메모리를 꺼도 성능이 83.0%로 높다. 재구성을 훈련하는 과정에서 정책 자체의 추론 능력이 향상된다. 재구성이 일종의 잠재적 추론 훈련(latent reasoning training) 역할을 하는 것이다. 태스크 보상만으로 “비판적 사고”를 가르치는 셈이다.
셋째, 외부 LLM(Qwen2.5-7B-Instruct)으로 재구성을 대체하면 안 된다 (85.2% → 77.7%). 제로샷 텍스트 재작성은 환경 역학에 정렬되지 않기 때문이다. end-to-end RL로 학습된 재구성만이 실제 효과가 있다.
OOD 일반화: 본 적 없는 환경에서도 메모리가 안전하게 작동한다

OOD(Out-of-Distribution) 시나리오는 메모리 시스템의 진짜 시험대다. 학습 때와 다른 방 구조, 다른 물건 배치에서 어떻게 되는가?
- MemHarness: 85.9% (최고)
- 메모리 있으나 재구성 없음: 82.4% (메모리가 오히려 방해)
- 메모리 제거: 83.0%
재구성 없이 메모리를 쓰면 OOD에서 성능이 더 떨어진다 (83.0% → 82.4%). 반면 MemHarness는 메모리를 안전하게 활용하여 OOD에서도 향상된다 (83.0% → 85.9%). 재구성 메커니즘이 상태 불일치를 감지하고 필터링하기 때문이다.
메모리 사용 행동의 진화: 에이전트가 검색과 거부를 학습한다

훈련이 진행되면서 메모리 사용 패턴이 변한다. 초기에는 검색된 메모리를 대부분 수용하지만, 점차 거부 비율이 증가한다. 이는 에이전트가 “이 경험은 현재 상황에 맞지 않는다”는 판단을 학습하고 있음을 보여준다.

더 흥미로운 건 Figure 4다. 메모리를 거부한 궤적의 성공률도 올라간다. 거부는 실패의 징후가 아니라, “이 상황에서는 내 추론이 더 낫다”는 적응적 판단이다. 에이전트가 자기 인지적 한계를 인식하고 메모리 의존을 조절하는 셈이다.
기술적 의의: 명시적 메모리와 매개변수 메모리의 다리
MemHarness는 기존 메모리 패러다임 두 개를 연결한다:
| 패러다임 | 추적 가능성 | 적응성 | 한계 |
|---|---|---|---|
| 명시적 메모리(Mem0 등) | 높음 (검사 가능) | 낮음 (그대로 재생) | 부정 전이 |
| 매개변수 메모리(가중치 내재화) | 낮음 (블랙박스) | 높음 (상태 의존적) | 불투명, 수정 어려움 |
| MemHarness | 높음 (메모리 뱅크 유지) | 높음 (재구성 정책) | 두 세계의 장점 |
메모리는 여전히 명시적 뱅크에 저장되어 검사 가능하고 수정 가능하다. 하지만 사용 시점에 정책이 상태에 맞게 재구성한다. 추적성과 적응성을 동시에 가지는 구조다.
한계와 향후 방향
논문이 인정하는 한계들:
- 벤치마크 다양성: ALFWorld와 WebShop 두 환경에서만 평가. 더 복잡한 실세계 환경(코딩, 웹 탐색 등)에서의 검증이 필요.
- 메모리 뱅크 규모: 현재 top-3 검색으로 작동. 메모리가 수백~수천 개로 늘어나면 검색 자체의 품질이 병목이 될 수 있다.
- 모델 스케일: 7B에서만 검증. 더 큰 모델에서 재구성 패턴이 어떻게 달라지는지 미지수.
- 재구성 품질 평가: “좋은 재구성”을 독립적으로 측정하는 메트릭이 없다. 태스크 성공이라는 궁극적 신호에만 의존.
향후 방향으로는 더 큰 모델로의 확장, 오픈엔디드 환경으로의 일반화, 그리고 재구성 품질을 직접 평가하는 프로브(probe) 개발이 제시된다.
더 실습해보고 싶은 분들께
MemHarness가 다루는 문제 — “에이전트가 과거 경험을 어떻게 안전하게 재사용할 것인가” — 는 실제 에이전트 하네스를 설계하고 운용하는 모든 분에게 직접적인 과제입니다. 메모리를 넣기만 하면 되는 게 아니라, 언제 쓰고 언제 버릴지 판단하는 메커니즘이 있어야 합니다. 이건 하네스 설계, 루프 엔지니어링, 도구 활용과 직결되는 주제입니다.
이 블로그에서 다루는 에이전트 자동화·하네스·루프 설계와 직접 관련 있는 실습 자료 두 가지를 추천합니다:
- 『이게 되네? 오픈클로 미친 활용법 50제』 — 에이전트 하네스와 자동화 루프를 직접 만들어보면서 겪는 설계 결정들을 다룹니다. 메모리를 언제 넣고 언제 뺄지 같은 판단은 하네스 설계의 핵심입니다.
- 「모두를 위한 루프 엔지니어링」 — 에이전트 루프 안에서 재구성, 검증, 자기 교정 같은 메커니즘을 어떻게 배치할지 체계적으로 다룹니다. MemHarness의 “재구성 단계”를 자신의 루프에 어떻게 옮길 수 있을지 고민하는 분들에게 특히 유용합니다.
원문: MemHarness: Memory Is Reconstructed, Not Replayed — Rong Wu et al., arXiv:2607.28272, 2026.