Dense-Mem은 AI 에이전트를 위한 셀프호스팅 메모리 서버다. 단순히 텍스트 조각을 벡터 검색하는 데 그치지 않고, evidence fragment, typed claim, verification gate, conflict detection, fact promotion을 명시적인 수명주기로 다룬다.
문제의식
에이전트 메모리는 “나중에 검색 가능한 텍스트”만으로는 부족하다. 사용자가 한 말, 에이전트가 추출한 claim, 검증을 통과한 fact, 서로 충돌하는 기억, 폐기된 기억을 구분하지 않으면 오래된 정보가 조용히 덮어써지고 신뢰하기 어려운 장기 메모리가 된다.
Dense-Mem의 설계 원칙은 다음과 같다.
- 증거(evidence)를 claim이나 fact보다 먼저 저장한다.
- claim은 타입과 검증 단계를 거친 뒤 fact로 승격된다.
- 기존 fact와 충돌하면 조용히 덮어쓰지 않고 clarification task를 반환한다.
- Host LLM은 후보 기억을 추출하고 사용자에게 질문하며, Dense-Mem은 영속 상태와 gate를 관리한다.
아키텍처
| 구성 | 역할 |
|---|---|
| MCP Streamable HTTP | Claude Code, Codex 등 MCP 클라이언트가 호출하는 메모리 도구 |
| REST/OpenAPI | 운영·통합용 HTTP API |
| PostgreSQL | 메타데이터와 영속 상태 저장 |
| Neo4j + GDS | 관계·커뮤니티·그래프 기반 recall |
| Embedding provider | fragment embedding과 recall query embedding |
| Control portal | 팀, 프로필, API 키, 감사 메타데이터 관리 |
기본 Compose 예시는 로컬 호스트에만 포트를 열고, PostgreSQL·Neo4j·Dense-Mem 서버를 함께 띄운다. Redis와 public HTTPS는 선택 사항이다.
메모리 워크플로
| 도구 | 목적 |
|---|---|
remember | 일반 대화에서 증거 저장, claim 생성, 검증, 승격 |
import_memories | 과거 대화 요약을 대량 가져오기 |
recall_memory | fact, validated claim, fragment, clarification 검색 |
trace_memory | fact나 claim의 근거, lineage, contradiction 추적 |
assemble_context | 프롬프트에 넣을 bounded context block 구성 |
reflect_memories | stale memory, disputed claim, clarification 필요성 점검 |
confirm_memory | 사용자 확인으로 claim 수락·거절·supersession 처리 |
기존 메모리 방식과의 차이
| 방식 | 한계 | Dense-Mem의 접근 |
|---|---|---|
| 파일 메모리 | 사람이 직접 충돌과 변경 이력 관리 | claim/fact 수명주기와 audit metadata |
| 벡터 DB | 비슷한 chunk를 찾지만 참·거짓 이력은 모름 | evidence → claim → fact 승격 |
| 일반 MCP 메모리 | 구현마다 책임 경계가 불명확 | host LLM과 memory server 책임을 분리 |
| 그래프 메모리 | 관계 저장은 가능하지만 검증 흐름은 별도 | typed claims, gates, clarifications 내장 |
어디에 적합한가
- 장기 사용자 기억을 다루는 AI 비서
- 팀·프로필 단위로 메모리를 격리해야 하는 에이전트 서비스
- 기억의 출처, 검증, 충돌 처리 과정을 감사해야 하는 엔터프라이즈 환경
- 단순 RAG보다 신뢰 가능한 fact lifecycle이 필요한 연구·운영 시스템
한계와 운영 고려사항
Dense-Mem은 에이전트의 brain, planner, 외부 truth arbiter가 아니다. README가 명확히 구분하듯 host LLM이 대화 판단과 후보 추출을 맡고, Dense-Mem은 저장과 gate를 맡는다. 따라서 좋은 성능을 내려면 메모리 후보를 추출하는 프롬프트, 사용자 clarification UX, 삭제·보존 정책까지 함께 설계해야 한다.
관련 문서
- agentic-memory — AI 에이전트 장기 메모리 아키텍처
- mem0 — 범용 AI 에이전트 메모리 레이어
- graphiti — 시간 인식 지식 그래프 기반 메모리
- mcp — Model Context Protocol 개요
참고 자료
- markhuangai/dense-mem — GitHub 공식 저장소
- Governed Enterprise AI Memory Beyond RAG — Zenodo preprint