Memory Store란 무엇인가
디렉터리로 마운트된 텍스트 문서 모음
공식 문서의 정의를 그대로 인용하자면 다음과 같습니다. "Memory store는 Claude에 최적화된 워크스페이스 범위의 텍스트 문서 모음입니다."
그리고 주목할 만한 작동 메커니즘은 다음과 같습니다. "세션에 store를 연결하면 세션의 샌드박스 내부에 디렉터리로 마운트됩니다. 에이전트는 파일 시스템의 나머지 부분에 사용하는 것과 동일한 파일 도구로 이를 읽고 쓰며, 각 마운트를 설명하는 메모가 시스템 프롬프트에 자동으로 추가되어 에이전트에게 어디를 확인해야 하는지 알려줍니다."
모델이 새로 학습해야 할 도구도 없고, 호출해야 할 검색(retrieval) API도 없습니다. 에이전트는 이미 파일을 읽고 쓰는 방법을 알고 있으므로, 메모리는 에이전트가 이미 작동하고 있는 파일 시스템의 일부가 됩니다. 그리고 시스템 프롬프트에 포인터가 제공되어 디렉터리의 존재를 알 수 있게 됩니다. 이는 모델에 영속성을 제공하는 매우 매끄럽고 마찰이 적은 방식입니다.
놓치면 소리 없이 오류를 발생시킬 수 있는 설정 요구사항이 하나 있습니다. "이러한 상호작용을 하려면 에이전트 도구 세트(agent toolset)가 필요합니다. 에이전트 생성 시 이를 활성화해야 합니다."
문서에 따르면 store에 담아야 할 내용은 다음과 같습니다. "사용자 선호도, 프로젝트 컨벤션, 이전의 실수, 도메인 컨텍스트."
불변 버전 및 실제 감사 추적(Audit Trail)
이 설계에서 가장 돋보이는 부분은 바로 이것입니다. "메모리가 변경될 때마다 불변의 memory version이 생성되므로, 에이전트가 작성하는 모든 내용에 대한 감사 추적(audit trail)과 특정 시점으로의 복구(point-in-time recovery)가 가능합니다."
이것이 어떤 문제를 해결하는지 생각해 보세요. 자율 에이전트가 자체 메모리를 유지할 때 모두가 걱정하는 실패 시나리오는 에이전트가 잘못된 내용을 기록한 뒤, 이를 바탕으로 자신 있게 작업을 이어 나가는 것입니다. 불변 버전 관리가 지원된다면 이 문제를 진단하고 되돌릴 수 있습니다. 즉, 항목이 언제 변경되었는지 확인하고 그 이전 상태로 롤백할 수 있습니다. 저희 시스템을 포함하여 쓰기 기록을 주요 아티팩트로 취급하는 메모리 시스템은 거의 없습니다. 이는 매우 훌륭한 결정이며, 첫 번째 잘못된 쓰기 오류를 겪고 나서야 비로소 그 중요성을 깨닫게 되는 기능입니다.
각 메모리는 경로 주소 지정이 가능하며 직접 편집할 수 있음
"Store의 각 메모리는 경로(path)로 주소가 지정되며, API 또는 Claude Console을 통해 직접 읽고 편집할 수 있어 튜닝, 가져오기(import), 내보내기(export)가 가능합니다."
경로 주소 지정이 가능하다는 것은 불투명한 블롭(blob)이 아니라 안정적인 레이아웃으로 구조를 파악할 수 있음을 의미합니다. 또한 API나 Console을 통해 직접 읽고 편집할 수 있다는 것은 외부에서 볼 때 이 store가 쓰기 전용이 아님을 뜻합니다. 즉, 초기 데이터를 주입(seed)하거나 수정하고, 내용을 다시 가져올 수 있습니다. 가져오기와 내보내기가 명시적으로 언급된 점은 주목할 만합니다. 이식성(portability)은 메모리 기능에서 가장 먼저 누락되기 쉬운 요소이기 때문입니다.
description 필드는 인터페이스의 일부입니다
Store를 생성할 때는 name과 description이 필요한데, 이 설명(description)은 단순히 대시보드 표시용이 아닙니다. "설명은 에이전트에게 전달되어 store에 무엇이 포함되어 있는지 알려줍니다."
따라서 설명 필드는 프롬프트 영역의 역할을 합니다. 문서의 예시인 "사용자별 선호도 및 프로젝트 컨벤션"은 에이전트에게 언제 그곳을 확인해야 하는지 알려줍니다. 설명이 모호하면 데이터가 잘 채워진 store라도 에이전트가 제대로 활용하기 어렵습니다. 이 필드를 단순한 라벨이 아니라 지시 사항(instructions)으로 취급하세요.
자체 호스팅 샌드박스에서는 라이브 마운트가 아닌 동기화된 복사본입니다
이 차이점을 모르면 반나절을 허비하게 될 것입니다. 매니지드(managed) 환경에서는 store가 마운트됩니다. 반면 자체 호스팅(self-hosted) 샌드박스에서는 다음과 같습니다. "해당 디렉터리는 라이브 마운트가 아닙니다. 대신 SDK의 환경 워커(environment worker)가 에이전트의 도구가 실행되기 전에 연결된 각 store를 샌드박스로 다운로드하고, 해당 복사본을 store와 동기화 상태로 유지합니다."
자체 호스팅 문서에서는 데이터 흐름 측면에서 동일한 경계를 다음과 같이 설명합니다. "에이전트의 스킬과 세션에 연결된 모든 memory store의 콘텐츠는 Anthropic에 저장되며 세션을 위해 샌드박스로 복사됩니다. 에이전트가 메모리 파일에 가한 변경 사항은 다시 store로 동기화됩니다." 또한 연산이 일어나는 위치에 대한 완전한 설명을 위해 다음과 같이 덧붙입니다. "도구의 입력과 출력은 여전히 Anthropic의 컨트롤 플레인(Claude가 실행되는 곳)으로 흘러가므로 모델이 결과를 확인하고 다음에 무엇을 할지 결정할 수 있습니다."
실무적 관점: 자체 호스팅 인프라에서 에이전트는 동기화된 로컬 복사본을 대상으로 작업합니다. 이는 제어 가능한 샌드박스에 적합한 설계이며, "라이브 공유 디렉터리"가 아니라 "도구 실행 전 다운로드, 쓰기 후 다시 동기화" 모델로 머릿속에 정리해야 함을 의미합니다.
베타 헤더 설정에서 한 번쯤 실수를 겪게 됩니다
설계 결함은 아니며, 혼란스러운 오류를 유발할 수 있는 세부 사항입니다. Managed Agents 요청은 managed-agents-2026-04-01 베타 헤더를 사용하지만, "memory store 엔드포인트는 대신 agent-memory-2026-07-22를 사용합니다." SDK는 자동으로 올바른 헤더를 설정해 줍니다.
헤더를 수동으로 설정하는 경우, 다음의 명시적인 경고에 주의하세요. "memory store 요청에 agent-memory-2026-07-22와 managed-agents-2026-04-01을 동시에 조합하여 사용하지 마십시오. 둘 다 전송하면 400 오류가 반환됩니다." 추가하는 것이 아니라 교체해야 합니다. 그리고 세션에 store를 연결하는 것은 세션 엔드포인트이므로, 해당 호출은 여전히 managed-agents-2026-04-01을 사용합니다.
동기화 작업을 빌드하기 전에 읽어볼 만한 페이지네이션 관련 참고 사항도 있습니다. 2026년 7월 22일 기준으로 이전 헤더는 GET /v1/memory_stores/{memory_store_id}/memories에서 동일한 목록 조회 동작을 채택하며, "헤더 없이 수행된 요청의 페이지 커서는 헤더가 있는 요청에서 유효하지 않으므로 첫 페이지부터 다시 시작해야 합니다."
Memory Store의 한계
여기에 적힌 내용은 비판이 아닙니다. 이는 명시된 범위 결정 사항이며, 이를 파악해야 그 위에 무엇을 구축할지 결정할 수 있습니다.
워크스페이스 범위 제한. 정의에 명시되어 있듯이, memory store는 워크스페이스 범위의 컬렉션입니다. 여러분의 아키텍처는 이 경계를 그대로 상속받으므로, 워크스페이스 간 지식 공유를 위한 별도의 계획이 필요합니다.
Claude에 최적화됨. 이 역시 정의에 포함된 내용입니다. 이 store는 Anthropic 플랫폼에 상주하며 Claude가 읽는 방식에 맞게 구성된 텍스트 문서입니다. Claude가 에이전트 런타임인 경우 정확히 원하는 방식이겠지만, 다른 런타임은 동일한 store를 읽을 수 없음을 의미합니다.
에이전트 중심 설계. 이 store는 에이전트가 사용할 수 있도록 세션에 마운트됩니다. 팀원들이 매일 사용하는 어시스턴트나 에디터(editors)를 위한 공유 지식 레이어로 포지셔닝되어 있지 않습니다.
베타 버전. 헤더가 이를 보여줍니다. 2026년 7월 22일 페이지네이션 참고 사항에서 알 수 있듯이, 동작과 엔드포인트는 여전히 변경되고 있습니다.
사람들이 이를 활용하는 방식
의도된 대로 에이전트 작업 메모리로 사용. Managed Agents를 기반으로 구축하는 경우 가장 명확하고 올바른 조치입니다. 이전의 실수와 프로젝트 컨벤션은 문서에 명시된 정확한 사용 사례입니다.
하나의 store를 회사 지식 베이스로 만들려고 시도. 매력적이지만, 워크스페이스 범위 제한 및 Claude 에이전트만 이를 읽을 수 있다는 사실과 충돌합니다. 여러분의 에디터나 다른 어시스턴트는 이를 읽을 수 없습니다.
설명(description) 필드 생략. 빠르게 처리할 수는 있지만, 에이전트가 해당 store가 관련이 있는지 판단하는 데 사용하는 포인터가 제거됩니다.
에이전트가 자유롭게 쓰도록 내버려 두고 전혀 확인하지 않음. 불변 버전 관리가 지원되므로 치명적인 오류 대신 복구 가능한 상태가 되며, 이것이 이 기능의 핵심입니다. 하지만 복구하려면 여전히 누군가가 문제를 감지해야 합니다.
헤더를 직접 작성하다가 400 오류로 한 시간을 허비함. 자동으로 헤더를 설정해 주는 SDK를 사용하면 피할 수 있습니다.
자체 호스팅이 매니지드처럼 작동할 것이라 가정. 동기화 복사본의 차이점이 문서화된 이유는 실제로 다르게 작동하기 때문입니다.
해결책: 플랫폼 Store에 둘 것과 외부에 둘 것 결정하기
유용한 프레임워크는 "어떤 메모리 시스템이 승리하는가"가 아닙니다. 에이전트 작업 메모리와 조직의 지식은 수명이 서로 다른 별개의 개념이며, 분리하여 보관하는 것이 가장 좋다는 점입니다.
에이전트 작업 메모리는 store에 보관하세요. 이전의 실수, 에이전트가 작동하는 동안 적용해야 할 컨벤션, 해당 워크스페이스의 사용자별 선호도 등이 이에 해당합니다. 경로별로 구조화하고, 실제 작동하는 설명을 작성하고, 쓰기 작업이 잘못되었을 때 버전 기록을 활용하세요.
지속적인 지식은 이식 가능하게 유지하세요. 결정 사항, 제약 조건, 거부된 접근 방식, 도메인 어휘 등 런타임 전반에 걸쳐 유효하고, 특정 에이전트보다 오래 지속되며, 팀의 사람들과 에디터 모두에게 유용한 자료들입니다. 이 레이어는 단일 플랫폼의 단일 워크스페이스 범위로 제한되어서는 안 됩니다.
이것이 바로 MemoryLake가 해결하는 문제입니다. MemoryLake는 어시스턴트와 에이전트가 MCP 또는 API를 통해 읽을 수 있는 메모리 레이어로, 단일 에이전트 런타임에 국한되지 않는 지식을 보관합니다. 설정은 세 단계로 진행됩니다.
1단계: API 키 생성
MemoryLake에 로그인하고 API 키를 생성합니다. 연결하는 도구 전반에 걸쳐 하나의 자격 증명만 사용하면 됩니다.

2단계: 첫 번째 메모리 업로드
각각 하나의 사실만 담은 짧은 항목들입니다. 에이전트의 작업 store가 아닌 이식 가능한 레이어에 속해야 하는 내용은 다음과 같습니다.

결정 사항 및 그 이면의 제약 조건. 컨벤션을 올바르게 만드는 추론 과정으로, 에이전트 프레임워크가 변경되어도 유지됩니다.
이미 제외된 접근 방식. 다시 발견하는 데 비용이 많이 들며, 이를 학습한 특정 에이전트뿐만 아니라 모든 에이전트와 엔지니어에게 유용합니다.
도메인 지식. 해당 분야의 어휘와 규칙입니다. 워크스페이스나 런타임에 종속되지 않습니다.
두 번 이상 수정한 사항. 에이전트가 실수를 했든 사람이 했든, 기록되는 항목은 동일합니다.
3단계: AI 및 에이전트 연결
사용 중인 도구를 연결합니다. MemoryLake는 MCP 및 API를 통해 액세스할 수 있으므로, Claude Code, Codex, OpenClaw를 포함한 MCP 네이티브 에이전트는 MCP 서버를 가리켜 연결하고, 다른 어시스턴트는 API를 통해 동일한 메모리를 읽습니다.

세 가지 솔직한 제한 사항이 있습니다. MemoryLake는 Anthropic의 memory store에 직접 연결되지 않습니다. 즉, 해당 기능과의 통합이 아니며, memory store를 읽거나 쓸 수 없습니다. Managed Agents를 기반으로 구축하는 경우 문서에 명시된 대로 에이전트 작업 메모리용 플랫폼 store를 사용해야 합니다. MemoryLake는 귀하 또는 귀하의 에이전트가 직접 작성한 내용만 보관합니다. 또한 규정 준수(compliance)나 보존(retention) 시스템이 아닙니다.
실무에서 변화하는 점
Managed Agents의 에이전트가 빈 상태로 시작하지 않습니다. 세션이 종료되면서 상태가 함께 사라지던 문서상의 고질적인 문제에 대해 이제 퍼스트 파티 해결책이 마련되었으며, 이는 매우 훌륭한 대안입니다.
에이전트의 잘못된 쓰기 작업을 복구할 수 있습니다. 특정 시점 복구가 가능한 불변 버전 관리는 자율 시스템의 중요한 안전 속성이며, 더 널리 채택될 가치가 있습니다.
메모리가 파일 시스템의 영역이 됩니다. 에이전트가 일반 파일 도구로 읽을 수 있는 마운트된 디렉터리로 메모리를 노출함으로써, 도구 사용 실패의 상당 부분을 제거합니다. 아키텍처 측면에서 이번 릴리스에서 가장 흥미로운 아이디어입니다.
자체 호스팅 배포에는 멘탈 모델이 필요합니다. '도구 실행 전 다운로드, 쓰기 후 다시 동기화' 방식이며, 라이브 마운트가 아닙니다.
범위 결정이 명확해집니다. 워크스페이스 범위 제한 및 Claude 최적화는 모호한 경계보다 훨씬 나은 명확한 한계입니다. 이를 파악하면 다른 곳에 보관해야 할 정보가 무엇인지 알 수 있습니다. 이에 대한 전반적인 개념은 영구 메모리의 의미에서 확인할 수 있습니다.
Agent Memory Store 모범 사례
에이전트 생성 시 에이전트 도구 세트를 활성화하세요. 에이전트가 store와 상호작용하는 데 필수적입니다. 놓치기 쉽고 디버깅 시 혼란을 줄 수 있습니다.
에이전트가 읽을 것을 염두에 두고 store 설명을 작성하세요. 실제로 에이전트가 읽기 때문입니다. 내부에 무엇이 들어있고 언제 관련이 있는지 명시하세요.
경로를 의도적으로 사용하세요. 메모리는 경로 주소로 지정됩니다. 첫날부터 안정적인 레이아웃을 설계하는 것이 좋습니다.
SDK가 베타 헤더를 설정하도록 하세요. 수동으로 설정해야 하는 경우, 조합하지 말고 교체하세요. memory store 요청에 두 헤더를 모두 보내면 400 오류가 발생합니다.
API 또는 Console을 통해 데이터를 주입하고 수정하세요. 가져오기 및 내보내기를 포함하여 직접 읽고 편집하는 기능이 지원됩니다. Store가 비어 있는 상태로 시작하거나 잘못된 상태로 방치될 필요가 없습니다.
모니터링 없이 실행한 후에는 버전 기록을 검토하세요. 감사 추적 기능은 활용하기 위해 존재하는 것입니다.
헤더 변경 후에는 페이지네이션을 다시 시작하세요. 최신 헤더 없이 수행된 요청의 커서는 최신 헤더와 함께 사용할 때 유효하지 않습니다.
런타임 독립적인 지식은 런타임 외부에 두세요. 에디터, 어시스턴트, 그리고 다음 에이전트 프레임워크 모두에 동일하게 적용되는 지식은 그 어떤 것도 소유하지 않는 독립된 레이어에 속해야 합니다. 이것이 MCP와 상태 비저장 에이전트 메모리의 배경이 되는 논리입니다.
결론
Memory store는 잘 만들어진 프리미티브(primitive)입니다. 에이전트가 일반 파일 도구로 읽을 수 있는 디렉터리로 메모리를 마운트함으로써 도구 사용의 복잡성을 크게 줄였습니다. 마운트에 대한 시스템 프롬프트 메모를 추가한 것은 사용성을 높이는 세심한 디테일입니다. 또한 특정 시점 복구가 가능한 불변 버전 관리는 자율적인 쓰기 작업을 위험 요소에서 감사 가능한 프로세스로 전환해 주는 훌륭한 기능입니다. Claude Managed Agents를 기반으로 구축하는 경우, 이 기능을 사용하고, 에이전트 도구 세트를 활성화하고, 실제 작동하는 설명을 작성하고, 자체 호스팅 샌드박스는 라이브 마운트가 아닌 동기화된 복사본을 받는다는 점을 기억하세요.
한계 또한 명확히 명시되어 있습니다. 워크스페이스 범위 제한, Claude 최적화, 베타 버전 등이 그것입니다. 이는 단점이 아니라 정의된 범위일 뿐이며, 다른 곳에 보관해야 할 정보가 무엇인지 알려줍니다. 에이전트의 작업 메모리는 에이전트 플랫폼에 속합니다. 다음 분기에 어떤 런타임을 사용하든 상관없이 유효한 결정 사항, 제약 조건, 거부된 접근 방식은 그 어떤 플랫폼에도 종속되지 않는 독립적인 레이어에 보관해야 합니다.