팀이 "agent memory가 필요하다"고 말할 때 실제로는 최소 세 가지 서로 다른 문제를 함께 이야기한다.
앞의 두 가지는 이제 흔한 요구 사항이다. 세 번째가 대부분의 프로덕션 시스템이 불편해지는 지점이다.
컨텍스트 창이 아무리 커져도 그것은 여전히 작업 집합일 뿐이다. 정책 엔진도, 영속 저장소도, 리뷰 워크플로도, 롤백 메커니즘도 아니다. agent가 질문에 답하는 수준이면 검색만으로 충분할 수 있다. 그러나 agent가 온보딩 노트, 장애 runbook, 고객 계획, 정책 요약, 생성된 리포트를 수정하는 순간 메모리는 운영 상태가 된다.
Cloudflare의 현행 Agents 문서는 영속 대화 저장, context block, 압축, 검색, 그리고 AI가 제어할 수 있는 memory 도구를 Session API로 정리한다(Cloudflare Agents memory 문서, Session API 레퍼런스). Redis는 다른 각도에서 같은 전환을 표현한다: agent memory는 무상태 모델 호출을 상태 있는 시스템으로 바꾸는 인프라이다(Redis agent memory 개요).
모두 유용한 신호다. 그러나 구매자의 질문은 더 좁다: 실제로 통제해야 할 실패 모드에 어떤 종류의 memory 플랫폼이 맞는가?
대부분의 비교는 모든 것을 "long-term memory"로 뭉뚱그린다. 그래서 좋은 retriever를 사고도 여전히 안전하게 배포할 수 없다는 사실을 나중에 깨닫는다.
대신 3계층 모델을 사용하자.
| 계층 | 무엇에 답하는가 | 누락 시 전형적 실패 |
|---|---|---|
| Memory 계층 | 어떻게 저장·랭킹·검색·요약·만료하는가? | 무관한 리콜, 오래된 사실, 중복 메모리, 높은 토큰 비용 |
| 거버넌스 계층 | 누가 메모리를 읽고, 쓰고, 승인하고, 삭제하고, 조사하고, 롤백할 수 있는가? | 조용한 드리프트, 위험한 개인화, 컴플라이언스 공백, 복구 경로 부재 |
| 분배 계층 | 여러 agent, 도구, 런타임, 사람이 같은 컨텍스트를 어떻게 소비하는가? | 프레임워크 락인, 복제된 컨텍스트, 단일 진실 파괴 |
많은 플랫폼이 먼저 광고하는 것은 memory 계층이다. 그러나 멀티 에이전트와 실제 회사 데이터와 맞부딪혔을 때 시스템의 생존을 결정하는 것은 거버넌스와 분배 계층이다.
컨텍스트를 인프라로 생각하는 팀이라면 파일 워크스페이스 측면을 깊게 다룬 puppyone의 AI agent infrastructure and versioned filesystems 글도 함께 읽어보면 좋다.
메모리, 파일, 롤백이 필요한 agent를 위한 거버넌스 컨텍스트 층 구축Get started쓸모 있는 비교는 "어느 도구가 최고인가"가 아니라 "어떤 아키텍처가 이 워크플로에 맞는가"다.
| 접근 방식 | 가장 적합 | 얻는 것 | 여전히 직접 풀어야 할 것 |
|---|---|---|---|
| 매니지드 memory 서비스 | 이미 하나의 클라우드나 agent 런타임 위에서 만들고 있는 팀 | 영속 세션, context block, 압축, 관리형 저장 패턴 | 크로스 플랫폼 분배, 조직 차원의 쓰기 정책, 더 깊은 리뷰 워크플로 |
| Memory SDK 또는 레이어 | 개인화나 스코프 리콜을 빠르게 추가하려는 제품 팀 | 메모리 추가·검색·스코프 API | 동의, 보존, 시크릿 처리, 감사, 롤백 |
| 세션 + 지식 그래프 메모리 | 대화 중심, 사용자 사실과 관계가 핵심인 제품 | 추출된 사실, 사용자 그래프, 그룹 그래프, 해석 가능한 관계 | 변경 승인, 진실 원천 거버넌스, 운영 산출물 처리 |
| 상태 보존 agent 런타임 | 장시간 실행되며 자신의 메모리 도구를 다루는 agent | agent 수준 메모리 연산과 도구 기반 리콜 | 팀·런타임을 넘는 공유 컨텍스트 거버넌스 |
| 자체 구축 기반 | 데이터·지연·컴플라이언스 요구가 엄격한 플랫폼 팀 | 저장, 인덱싱, 배포, 관측성에 대한 최대 통제 | 추출 로직, UX, 정책, 평가, 유지보수 |
| Agents Filesystem | 공유 파일과 산출물, 거버넌스된 쓰기를 가진 멀티 에이전트 워크플로 | agent가 읽을 수 있는 구조, 영속 파일, 경로 권한, 버전, 롤백 | 메모리 정책 설계, 승인 게이트, 검색·오케스트레이션과의 통합 |
이 표는 의도적으로 "우승자"를 뽑지 않는다. 서포트 챗봇, 코딩 agent, 재무 백오피스 agent의 메모리 문제는 같지 않다.
매니지드 memory 서비스의 매력은 영속, 압축, 검색을 런타임 원시 요소로 묶는다는 점이다. 예를 들어 Cloudflare의 Agent memory 모델은 agent가 도구로 검색·로드·업데이트할 수 있는 세션 저장소와 context block을 중심에 둔다.
적합한 경우:
주의할 점:
매니지드 memory는 배관 비용을 줄이는 데 쓰고, 정책 층을 대체한다고 가정하지 말자.
영속 개인화, 스코프 리콜, 혹은 전체 런타임을 도입하지 않고 메모리 API만 필요하다면 SDK가 보통 가장 빠른 길이다.
Mem0는 대화, 세션, 사용자, 조직 메모리를 명확히 구분한 문서로 유용한 예다. 또한 검색 가능한 메모리에 시크릿이나 마스킹되지 않은 PII를 저장하지 말라고 경고한다(Mem0 memory types). 스코프가 없으면 "memory"는 잡동사니 서랍이 된다.
적합한 경우:
주의할 점:
실용적인 시작 규칙: 세션 메모리에서 사용자/조직 메모리로 넘어가는 모든 항목은 오너, TTL 또는 보존 정책, 감사 추적을 가져야 한다.
중요한 정보가 관계형(사람, 계정, 선호도, 엔티티, 정책, 의존성, 시간에 따른 이벤트)일 때 그래프 지향 메모리가 가장 강하다.
예를 들어 Zep 문서는 세션별 대화 이력과 관련 컨텍스트를 검색할 수 있는 사용자 지식 그래프·그룹 그래프를 다룬다(Zep quickstart, Zep group graph 가이드). 사실과 관계가 명시 구조를 가지므로 순수 임베딩보다 해석 가능성이 높다.
적합한 경우:
주의할 점:
그래프 메모리는 보통 context base의 보완이지 대체가 아니다.
상태 보존 런타임은 agent가 도구를 통해 능동적으로 메모리를 다루게 한다: 읽기, 쓰기, 검색, 요약, 재구성. Letta의 메모리 벤치마크는 실무적 포인트를 보여준다: 메모리 성능은 저장 백엔드뿐 아니라 agent가 그 메모리 도구를 신뢰성 있게 사용할 수 있는지에도 달려 있다(Letta memory benchmark).
이 지점에서 파일 기반 메모리가 흥미로워진다. agent는 파일 연산과 잘 맞는다: 목록, 읽기, 검색, 편집, diff, 쓰기. 개발자는 파일 리뷰에 익숙하다. 보안 팀도 경로, 마운트, 아이덴티티, 감사 로그로 사고하는 데 익숙하다.
적합한 경우:
주의할 점:
파일 수준의 안전 패턴은 puppyone의 AI agent를 위한 파일시스템 설계 참조.
어떤 팀은 스택을 더 많이 직접 가져야 한다. 데이터 거주지, 지연, 배포 토폴로지, 통합 깊이가 핵심 요건이라면 조립 가능한 기반이 정답일 수 있다.
Redis는 흔한 예다. 한 스택에서 저지연 상태, 캐시, 벡터 검색을 함께 지원할 수 있다. 관련 글은 인코딩·저장·검색·agent 응답 통합의 파이프라인을 설명한다. 이름 붙이기 쉬운 부분은 여기까지다. 진짜 어려운 건 주변이다:
적합한 경우:
주의할 점:
통제 자체가 목적이라면 자체 구축. 플랫폼 엔지니어링이 차별화가 아니라면 구매 또는 채택.
Agents Filesystem은 단순한 폴더가 아니다. agent를 위해 설계된 거버넌스된 컨텍스트 워크스페이스다.
다음 조건에서 정답이 된다:
이것이 바로 puppyone이 풀려는 문제다: 회사 데이터 소스를 연결하고, 컨텍스트를 agent가 읽을 수 있는 파일(Markdown, JSON 등)로 표현하고, Access Point로 접근을 스코프하고, agent 네이티브 인터페이스로 노출하고, agent 작업에 버전 이력과 감사 로그를 남긴다.
모든 팀이 처음부터 전체 파일 시스템 층으로 시작할 필요는 없다. 챗봇에 사용자별 선호도만 필요하다면 memory SDK로 충분할 수 있다. 그러나 agent가 공유 runbook, 정책 요약, 컨텍스트 파일, 워크플로 산출물을 편집한다면 거버넌스된 파일시스템이 더 나은 복구 모델을 준다.
핵심 차이는 단순하다: 검색 메모리는 agent가 기억하도록 돕고, 거버넌스된 파일시스템은 팀이 agent의 변경을 신뢰하도록 돕는다.
플랫폼을 선택하기 전에 소규모 bakeoff를 실행하자. 일반 데모가 아니라 대표 워크플로 두세 개를 사용한다.
| 테스트 | 측정 대상 | 중요한 이유 |
|---|---|---|
| 정확 리콜 | ID, 정책명, 계정 사실, 최신 결정 | 운영 사실에는 의미 유사도만으로 부족 |
| 구식 정보 처리 | 낡은 사실이 억제되거나 구식으로 표기되는지 | agent가 만료된 컨텍스트를 되살리면 안 됨 |
| 쓰기 안전성 | 누가 쓰는지, 어디에 착지하는지, 어떻게 리뷰하는지 | 메모리 쓰기는 변이 연산 |
| 멀티 에이전트 격리 | 저신뢰 agent가 공유 컨텍스트를 오염시키지 않는지 | 나쁜 쓰기 하나가 퍼지면 안 됨 |
| 설명 가능성 | 왜 해당 메모리가 검색·업데이트되었는지 | 디버깅은 추적을 요구 |
| 롤백 | 이전 상태로 얼마나 빨리 돌아갈 수 있는지 | 나쁜 메모리·파일은 피할 수 없음 |
| 이식성 | 여러 런타임이 동일 컨텍스트를 쓸 수 있는지 | 엔터프라이즈 agent는 한 클라이언트에만 머물지 않음 |
bakeoff는 결정을 위해 쓴다. 가장 예쁜 데모를 감상하기 위함이 아니다.
아키텍처 토론이 애매해질 때 쓰는 지름길.
더 깊은 아키텍처 프레이밍을 원한다면 이 체크리스트를 Context Engineering: RAG만으로는 부족할 때와 함께 읽자. 경계는 비슷하다: 단순 리콜은 단순 검색으로 풀리지만 프로덕션 agent는 구조화·거버넌스·재사용 가능한 컨텍스트가 필요하다.
agent 스택의 거버넌스 메모리 및 파일 층으로 puppyone을 평가해 보세요Get startedRAG는 보통 관련 문서를 가져와 프롬프트에 추가하는 검색 패턴이다. agent memory는 더 넓다: 영속 선호도, 결정, 워크플로 상태, 산출물, 쓰기 정책, 보존 규칙, 그리고 그 컨텍스트를 이후 검색·변경할 수 있는 메커니즘을 포함한다.
플랫폼의 일부가 될 수 있다. 전체가 되는 경우는 드물다. 벡터 검색은 의미적 리콜에 도움되지만, 엔터프라이즈 agent memory는 결정적 조회, 스코프 권한, 변경 이력, 감사, 보존, 롤백도 필요하다.
먼저 scope: 세션, 사용자, 조직, agent 역할, 워크플로. 그다음 저장해도 되는 것, 절대 저장하면 안 되는 것, 누가 공유 메모리를 쓸 수 있는지, 롤백 방법을 정의한다. 그 이후에 인덱싱과 검색을 최적화한다.
메모리가 개인화나 검색만이 아니라 공유 운영 컨텍스트일 때 puppyone이 맞는다. agent가 거버넌스된 파일, MCP 접근 컨텍스트, 샌드박스 마운트, 버전 이력, 감사 로그를 필요로 한다면, puppyone은 기존 모델·런타임 주위에 context base와 Agents Filesystem 층으로 자리할 수 있다.