이 글에서는 AI 에이전트, 특히 클로드(Claude)의 메모리 설계에 대한 깊이 있는 통찰을 제공합니다. 인간의 기억 메커니즘에서 영감을 받아, 클로드가 어떻게 경험을 학습하고 장기적인 지식으로 통합하는지 설명하는데요. 특히 '꿈꾸기(Dreaming)'라는 독특한 개념을 통해 메모리를 정리하고, 오류를 수정하며, 새로운 지식 표현을 생성하는 과정을 상세히 다룹니다. 클로드가 실제 게임 플레이나 복잡한 문서 분석과 같은 다양한 시나리오에서 메모리를 효과적으로 활용하고 발전시키는 사례들을 통해 에이전트 메모리 시스템의 중요성과 발전 가능성을 탐구합니다.
1. 인간의 기억과 에이전트 메모리의 유사점 ✨
인생이 뒤돌아볼 때만 이해되지만 앞으로 나아가야 하는 것처럼, AI 에이전트의 메모리 설계도 비슷한 난관에 부딪힙니다. 인간은 해마의 도움으로 경험을 즉시 기억으로 인코딩하며, 그중 일부만이 장기적인 지식으로 통합됩니다. 흥미롭게도 이러한 지식 통합은 주로 수면 중이나 조용한 휴식 시간에 해마가 최근 경험을 반복 재생(replay)하며 일어납니다. 이를 통해 경험이 점진적으로 증류되어 뇌의 대부분의 지식을 저장하는 신피질에 통합되는 것이죠.
AI 에이전트의 메모리도 이와 유사한 방식으로 작동할 수 있습니다. 에이전트들은 작업 로그나 스크립트에 많은 정보를 기록합니다. 연구자들은 모델이 상호작용 사이의 유휴 시간을 활용하여 기존 컨텍스트를 재구성하는 방법으로 '수면 시간 컴퓨팅(sleep-time compute)'을 제안했습니다. 이 아이디어는 에이전트가 로그를 반성하여 실수를 고치거나 새로운 노트와 표현을 생성함으로써 메모리를 정리하는 데 도움을 줍니다. 이 과정을 종종 '꿈꾸기(dreaming)'라고 부르는데, 이는 클로드가 효과적인 메모리를 갖도록 돕는 유용한 도구임이 밝혀졌습니다.
Søren Kierkegaard는 인생은 '뒤돌아봐야 이해되지만, 앞으로 살아가야 한다'고 썼습니다. 우리는 AI 에이전트의 메모리를 설계할 때 비슷한 어려움에 직면했습니다.

2. 클로드 메모리의 종류와 중요성 🧠
에이전트 메모리는 클로드가 사용자 상호작용이나 할당된 작업과 같은 경험을 통해 얻고, 세션 간에 유지하여 나중에 읽을 수 있는 컨텍스트로 저장하는 지식을 의미합니다. 이는 모델의 '가중치(weights)' 변경, 단일 대화 내에서 얻는 '인컨텍스트 학습(in-context learning)', 그리고 오래된 대화를 요약하여 새 컨텍스트 창에서 계속 작업할 수 있게 하는 '압축(compaction)'과는 구분됩니다.
인간의 뇌에서는 경험 전후에 분비되는 화학 신호가 특정 기억을 중요하다고 표시할 수 있습니다. 이렇게 표시된 기억은 오프라인 기간 동안 더 자주 재생되어 장기 기억으로 안정화되고 통합됩니다. 마찬가지로 클로드도 세션 로그에서 중요한 이벤트를 발생 시점에 태그하여 나중에 쉽게 찾을 수 있도록 하거나, 메모리 노트와 같은 메모리 저장소에 기록할 수 있습니다.
클로드는 중요한 이벤트를 '메모리 노트'로 기록합니다. 하지만 클로드는 무엇이 중요한지 어떻게 미리 알 수 있을까요?
2.1. 미래를 예측하는 메모리 🔮
메모리는 때때로 미래에 대한 예측이기도 합니다. 에이전트가 규칙을 기록하는 것은 그 패턴이 미래에도 다시 관련성을 가질 것이라는 예측입니다. 예를 들어, 확인된 사실을 기록하는 것은 미래의 에이전트가 그 사실을 다시 확인하지 않고도 의존하고 싶어 할 것이라는 예측이죠. 시간이 지남에 따라 클로드는 이러한 종류의 예측을 훨씬 더 잘하게 되었습니다.
CL-Bench 1.0이라는 벤치마크 테스트를 통해 클로드의 메모리 활용 능력을 평가했습니다. 이 테스트는 클로드에게 데이터베이스에서 정보를 찾아 일련의 질문에 답하게 합니다. 클로드가 답변한 후, 올바른 해결책을 알려주어 미래의 질문에 답하는 데 도움이 되는 메모리를 작성하게 합니다.
클로드는 질문을 틀렸을 때 실패를 기록하고, 무엇이 잘못되었는지 이론을 세우고, 그 이론을 테스트하고, 미래에 어떻게 답할지에 대한 규칙으로 만들면서 학습 루프를 지원할 수 있습니다. 다양한 모델들이 자신만의 학습 루프를 만들면서 다른 수준의 성공을 거두었습니다.
- Claude Sonnet 4.6: 왜 답이 틀렸는지에 대한 이론을 생성하는 데 그쳤으며, 검증되지 않은 추측들이 메모리 디렉토리에 흩어져 있었습니다.
- Claude Opus 4.7: 노트를 단일 참고 문서로 통합하고, 어떤 사실이 확인되었고 어떤 사실이 아직 미확인인지 표시하기 시작했습니다.
- Claude Sonnet 5: 채점자가 확인한 후 각 답변을 확정된 것으로 표시하고, 틀렸을 때는 수정을 기록했습니다.
- Claude Opus 5: 루프를 닫은 첫 번째 모델로, 대부분의 항목에 규칙과 그 규칙이 사실인 이유, 이전 질문에 대한 답변, 그리고 발견한 함정에 대한 명확한 경고가 포함되었습니다.

Claude Opus 5와 마찬가지로 Claude Opus 5.5 및 Claude Sonnet 5.5도 메모리를 사용하여 미래 질문에 가장 잘 답하는 방법에 대한 검증된 규칙을 포착하며 학습 루프를 닫았습니다. 메모리 사용 시 두 모델 모두 Opus 5와 거의 동일한 점수를 기록했습니다.
2.2. 중요도 판단 능력 🧐
클로드가 포켓몬 레드(Pokémon Red) 게임을 플레이하는 능력을 평가하여, '무엇을 메모리에 저장할 것인가'에 대한 클로드의 판단력을 테스트했습니다. 이 게임은 복잡한 장기 작업을 수행해야 하는 도전적인 게임입니다. 각 모델은 게임을 플레이하는 동안 읽고 쓸 수 있는 메모리 파일 폴더를 받았습니다.
Claude Sonnet 3.7과 Claude Fable 5의 메모리 폴더를 비교한 결과, 두 모델이 기억할 가치가 있다고 생각하는 것에 큰 차이가 있었습니다.
- Sonnet 3.7: 모든 것이 중요하다고 가정하고 무차별적으로 메모리에 기록했습니다. 각 전투, 발견한 아이템, 만난 NPC(비플레이어 캐릭터)마다 별도의 파일을 만들 정도로 상세하게 기록했습니다. 결과적으로 225개 폴더에 413개의 메모리 파일을 작성하고 배지 1개를 획득했습니다.
- Fable 5: 두 개의 폴더에 9개의 파일과
global.md라는 최상위 파일을 작성하고 배지 4개를 획득했습니다.
Sonnet 3.7의 접근 방식은 포켓몬 게임의 상태가 끊임없이 변하기 때문에 문제가 되었습니다. 상세한 기록이 계속해서 최신 정보가 아니게 되면서, 클로드는 게임 플레이보다는 메모리를 뒤지는 데 더 많은 시간과 자원을 소모했습니다.
반면, Fable 5의 접근 방식은 게임이 명시적으로 알려주지 않는 것들을 메모리에 저장했습니다. 예를 들어 플레이어의 돈이나 지도상의 위치와 같은 정보는 매 턴 화면에서 읽을 수 있으므로 저장할 필요가 없습니다. Fable 5는 전략, 계획, 테스트된 규칙과 같은, 클로드가 스스로 알아내야만 존재하고 기록하지 않으면 사라지는 정보들을 메모리에 저장했습니다.
Fable 5는 메모리를 효율적으로 정리했습니다. global.md 파일은 대시보드 역할을 하여 현재 목표, 체육관(배지를 얻는 도전 과제)을 위한 사전 작성된 계획, 그리고 메모리 사용에 대한 모델 자체의 규칙을 담았습니다. locations 폴더는 특정 경로를 탐색하는 계획을, gameplay 폴더는 게임 작동 방식에 대해 학습한 전략을 담았습니다. Fable 5는 훨씬 작은 메모리 폴더를 사용하여 Sonnet 3.7보다 훨씬 더 게임을 진행했습니다. Opus 5.5도 비슷한 방식으로 게임을 클리어했습니다.

3. 클로드에게 메모리 작성을 지시하는 방법 ✍️
클로드에게 메모리의 목적을 알려주되, 사용 방법은 알려주지 않는 것이 도움이 된다는 것을 발견했습니다. CL-Bench에서는 단순히 메모리 폴더를 사용할 수 있다고만 알려주었습니다. 이러한 일반적인 지침만으로도 Opus 4.7과 Opus 5는 메모리를 효과적으로 사용하여 성능을 크게 향상시켰습니다.
메모리에 무엇을 기록해야 하는지에 대한 특정 규칙을 모델에 제공하는 테스트도 진행했습니다. 예를 들어, "오류만 기록"하라는 규칙을 설정했을 때, Opus 5와 Opus 4.7 모두 메모리가 제공했던 성능 향상의 상당 부분을 잃었습니다. 즉, 강한 모델의 경우, 중요도를 스스로 판단할 자유를 주는 것이 미리 정해진 규칙을 설정하는 것보다 더 효과적이며, 규칙이 오히려 성능을 약화시킬 수 있음을 알 수 있었습니다.

오히려 오래된 모델일수록 지침이 더 큰 도움이 되었습니다. 예를 들어, Sonnet 4.6은 종종 메모리 디렉토리에서 파일을 읽지 않거나 답이 틀린 이유에 대한 이론을 테스트하지 못했습니다. 이 경우, 클로드에게 답변하기 전에 메모리 파일을 읽고 명시적으로 이론을 테스트하도록 지시하자 벤치마크 점수가 거의 두 배로 증가했습니다. Sonnet 5는 이러한 작업을 스스로 수행했습니다.
최신 Claude 모델의 경우, 사용자가 요청하거나 명확히 기억할 가치가 있는 경우에 메모리 노트를 생성하도록 간단한 지침을 제공하고, 판단은 클로드에 맡깁니다.
4. 꿈꾸기: 메모리 수정 및 새로운 지식 생성 💭
클로드가 세션 내에서 중요하다고 판단한 내용을 기반으로 메모리 노트를 작성하기 때문에, 처음부터 잘못되었거나 환경 변화에 따라 변경된 노트는 나중에 클로드에 의해 읽히고 신뢰될 수 있습니다.
4.1. 메모리 오류 수정 🛠️
꿈꾸기(Dreaming)는 클로드가 원본 스크립트와 대조하여 노트를 테스트하는 방법을 제공합니다. 포켓몬 게임 플레이에서 잘못된 메모리를 수정하는 긍정적인 사례를 볼 수 있었습니다.
클로드가 포켓몬을 플레이할 때, 문마운틴(Mt. Moon)이라는 동굴 시스템에서 포켓몬센터의 위치를 잘못 기록하는 실수를 했습니다. 이 오류로 인해 클로드는 계속해서 왔던 길로 되돌아가는 함정에 빠지게 됩니다. 꿈꾸기 기능을 통해 클로드는 이 메모리 폴더를 확인하고, 세션 스크립트와 대조하여 오류를 발견하고 수정했습니다. 수정된 메모리 노트를 통해 클로드는 곧바로 문마운틴으로 돌아가 세루리안 시티에 도달할 수 있었습니다.
꿈꾸기(Dreaming)는 클로드가 원본 스크립트를 대조하여 노트를 테스트할 수 있는 방법을 제공합니다.


수정되지 않은 노트로는 클로드가 같은 함정에 세 번이나 빠졌고, 결국 "계속 루프에 빠지기보다는 멈추겠다"고 기록하며 포켓몬센터가 있는 산의 이전 도시까지 되돌아갔습니다. 이처럼 꿈꾸기는 잘못된 메모리로 인해 발생하는 반복적인 오류를 방지하고 올바른 방향으로 나아갈 수 있도록 돕습니다.
4.2. 새로운 메모리 표현 구축 (위키) 📚
꿈꾸기는 클로드가 메모리를 탐색하는 데 도움이 되는 새로운 표현을 구축할 수 있게 합니다. 그중 하나가 위키(wiki)인데, 이는 클로드가 작성하고 유지하는 페이지 모음으로, 특정 주제에 대한 클로드의 지식을 모으고 다른 노트와 연결합니다. 이러한 링크는 클로드가 메모리를 훑어보고 필요할 때 효율적으로 메모리를 찾을 수 있는 지도를 제공합니다.

이러한 위키와 같은 표현은 클로드가 끊임없이 성장하는 지식 기반을 탐색하는 데 도움을 줍니다. 우리는 35만 개의 내부 문서(약 4억 2천만 토큰)로 구성된 자료를 사용하여 위키의 이점을 탐구했습니다. 25개의 질문으로 구성된 평가 세트를 만들고 클로드에게 이를 탐색하도록 지시했습니다. 또한 클로드에게 꿈꾸기 기능을 사용하여 이 파일들을 기반으로 위키를 구축하도록 지시했습니다.
128세션에 걸쳐 진행된 이 과정에서, 꿈꾸기 스케일을 확장함에 따라 25개 질문에 대한 성능이 13%에서 48%로 증가했습니다. 클로드는 위키를 점진적으로 구축하며, 초기에는 신입 직원과 같다가 꿈꾸기를 더 많이 할수록 노련한 직원처럼 지식 지도가 풍부해집니다.

특히, 검색 도구와 위키를 함께 사용할 때 클로드의 종합 점수는 위키가 성장함에 따라 54%에서 61%로 상승했습니다. 반면 검색 도구만 사용했을 때는 53%, 위키만 사용했을 때는 48%였습니다. 검색과 위키를 함께 사용하면 질문당 약 2만 토큰을 절약할 수 있었습니다.
4.3. 메모리 계층 구조 최상단으로 노트 승격 ⬆️
꿈꾸기는 노트를 메모리 계층 구조의 최상단으로 끌어올릴 수도 있습니다. 이는 에이전트 하네스가 모든 세션 시작 시 해당 노트를 클로드의 컨텍스트에 미리 로드할 수 있게 하여, 클로드가 검색하거나 찾아야 할 필요성을 없앱니다.

새로운 세션으로 메모리를 주입하는 것은 신중하게 이루어져야 합니다. 주입된 메모리는 귀중한 토큰을 사용하며, 잘못된 노트는 모든 세션으로 전달될 수 있기 때문입니다. 또한 노트를 로드한다고 해서 클로드가 항상 그에 따라 행동하는 것도 아닙니다. 따라서 메모리 계층 구조의 최상위 계층은 비교적 작게 유지되어야 하며, 꿈꾸기의 많은 작업은 일부 세부 정보를 계층 아래로 이동시키고 링크를 남겨둠으로써 이를 유지하는 것입니다.
4.4. 특정 목표에 메모리 집중 🎯
꿈꾸기는 메모리가 성장하는 방식에 영향을 줄 수도 있습니다. 예를 들어, 클로드 듀엣(Claude Duet)과 같은 비서는 자신이 돕는 사람을 중심으로 정리된 메모리를 가질 때 이점을 얻으며, 꿈꾸기는 특정 목표를 달성하는 데 도움이 되도록 메모리를 구축하도록 조정될 수 있습니다.
LAB 벤치마크의 한 작업에서, 클로드에게 회사 인수합병 시나리오를 제시하고 계약 조건에 대한 법률 보고서를 작성하도록 했습니다. 초기에는 위키 생성에 대한 기본 지침만 제공되어 클로드가 위키를 어떻게 사용해야 할지에 대한 정보가 없었습니다. 이로 인해 여러 에이전트가 동시에 공유 테이블에 계약 조건을 작성하면서 중요한 사실이 누락되는 위키가 만들어졌습니다.

클로드가 실패를 반성하고 지침 변경을 제안하며 위키를 재구축하는 루프를 실행한 결과, 클로드는 계약 조건을 따르는 것이 얼마나 중요한지 깨닫고 위키 구축 지침을 그에 맞게 다시 작성했습니다. 각 계약은 단일 에이전트가 작성한 자체 페이지를 가지게 되었고, 조건을 요약하는 대신 단어 그대로 인용했습니다. 이 개선된 위키로 생성된 보고서는 100%의 기준을 충족할 수 있었습니다.
4.5. 세션의 공백 채우기 🩹
클로드가 메모리 노트를 작성할 때, 특정 세션의 컨텍스트만 볼 수 있습니다. 꿈꾸기는 여러 세션을 검색하여 공통 패턴을 찾거나 공통적인 실수를 수정할 수 있습니다.
LAB 벤치마크를 위한 위키를 구축할 때 (그림 14 참조), 클로드는 아직 생성되지 않은 페이지로 링크하는 경우가 있었습니다. 두 번째 꿈꾸기 통과에서 이러한 공백의 대부분이 채워졌습니다. 한 작업에서 꿈꾸기는 위키에서 누락된 페이지로 향하는 9개의 링크를 찾아 동일한 문서의 기존 페이지로 다시 연결했습니다. 또한 위키를 개선하기 위해 인덱스를 포함한 3개의 새로운 페이지를 추가했습니다.

5. 회고와 미래: 기억 시스템의 과제 🧐
에이전트의 기억 시스템을 설계하는 데에는 아직 많은 과제가 남아 있습니다.
- 메모리 생성 시점: 클로드가 작업을 수행할 때 메모리 저장소에 기록할 수 있지만, 이때 실시간으로 노트를 기록하는 것은 주요 작업에서 클로드의 주의를 분산시킵니다. 반면, 꿈꾸기는 메모리 생성을 배경으로 미룰 수 있지만, 그 결과물이 즉시 접근 가능하지 않을 수 있습니다.
- 메모리 최신성 유지: 클로드는 잘못된 예측을 하거나 처음부터 틀린 규칙을 메모리에 기록할 수 있습니다. 환경이 변하면서 메모리가 표류하고 관련성이 없어질 수도 있습니다. 꿈꾸기는 이러한 실수를 고치는 한 가지 방법이지만, 계산 자원이 필요합니다. 클로드에게 모든 메모리를 지속적으로 확인하도록 지시하는 것은 실용적이지 않을 수 있습니다. 대신, 변화 가능성이 있는 정보에 꿈꾸기를 집중하거나, 꿈꾸기 주기를 신중하게 조정하는 것이 중요할 수 있습니다.
- 스크립트 검색의 활용: 스크립트 검색을 클로드 메모리의 기초로 고려하는 것도 합리적입니다. 위키와 같은 표현과 검색을 결합하는 것이 효과적일 수 있지만, 클로드는 메모리 표현을 유지하고 오류나 환각이 쌓이지 않도록 계산 자원을 사용해야 합니다.
클로드의 중요도 판단 능력이 향상되었지만, 어떤 모델도 미래에 어떤 일이 일어날지 정확히 알 수는 없습니다. 꿈꾸기는 클로드에게 '뒤돌아보고' 계산 자원을 사용하여 메모리를 정리하고, 실수를 수정하며, 미래 세션이 메모리에 더 쉽게 접근할 수 있도록 표현을 유지할 기회를 제공합니다. 클로드의 역량이 향상됨에 따라 메모리 시스템도 발전할 것이며, 우리는 클로드의 메모리 시스템을 설계하는 방법에 대해 여전히 많은 것을 배워야 합니다.
마무리 👋
클로드의 메모리 시스템은 단순히 정보를 저장하는 것을 넘어, 인간의 기억 메커니즘을 모방하여 스스로 학습하고 발전하는 복잡한 구조를 가지고 있습니다. 특히 '꿈꾸기'라는 혁신적인 개념을 통해 클로드는 자신의 경험을 반성하고, 잘못된 정보를 수정하며, 지식을 체계적으로 조직하고 새로운 형태로 표현하는 능력을 길러왔습니다. 포켓몬 게임 플레이나 법률 문서 분석과 같은 다양한 실제 사례들은 클로드가 얼마나 유연하고 효과적으로 메모리를 활용하고 있는지 보여줍니다. 앞으로 클로드의 메모리 시스템이 더욱 고도화될수록, 우리는 더욱 지능적이고 신뢰할 수 있는 AI 에이전트를 만나볼 수 있을 것입니다. 🚀
