2P by obst2580 8시간전 | ★ favorite | 댓글과 토론

AI 코딩 도구(Claude Code, Cursor, Codex, Gemini 등)를 쓰다 보면 세션이 바뀔 때마다 맥락이 사라집니다.
어제 결정한 아키텍처, 지난주 디버깅 결과, 내가 선호하는 코딩 스타일 -- 매번 다시 설명해야 합니다.

MemRosetta는 이 문제를 풀기 위한 로컬 장기 기억 엔진입니다.

한 줄 설치:
npm install -g memrosetta && memrosetta init --claude-code

어떻게 동작하나

하나의 로컬 SQLite 파일(~/.memrosetta/memories.db)에 모든 기억을 저장합니다. Claude Code, Cursor,
Codex, Gemini가 같은 DB를 공유하므로, 한 도구에서 저장한 기억을 다른 도구에서 검색할 수 있습니다.

기존 RAG처럼 문서를 텍스트 조각(chunk)으로 쪼개는 대신, 원자적 기억(atomic memory) 단위로 저장합니다.
하나의 사실이 하나의 레코드입니다.

// 월요일 세션 — Claude가 대화 중 자동으로 MCP 호출
store({
"content": "인증은 OAuth2 + PKCE로 결정",
"memoryType": "decision",
"keywords": ["auth", "oauth2", "pkce"]
})

// 화요일 새 세션 — Claude가 MCP로 검색
search({ "query": "auth" })

→ [0.95] 인증은 OAuth2 + PKCE로 결정 (decision, 2026-03-31)
→ [0.82] API rate limit은 유저당 100req/min (fact, 2026-03-31)
→ [0.41] 로그인 페이지 UI 완성 (event, 2026-03-28)

100개의 기억이 쌓여 있어도, 키워드 매칭 + 시맨틱 유사도 + ACT-R 활성화 점수를 종합해서 관련도 높은
상위 5개만 반환합니다. 인간의 뇌가 관련 기억을 떠올리는 방식과 같습니다 — 자주 떠올린 기억은 더 잘
떠오르고, 오래 안 쓴 기억은 자연스럽게 흐려지지만 사라지지는 않습니다.

주요 특징

  • 하이브리드 검색: FTS5 키워드 매칭 + 벡터 시맨틱 유사도 + Convex Combination 융합
  • 모순 감지: 로컬 NLI 모델(71MB)이 새 사실과 기존 기억의 모순을 자동 감지하고 관계로 연결
  • 적응적 망각: 인지과학의 ACT-R 모델 기반. 자주 검색되는 기억은 활성화 점수가 올라가고, 안 쓰이는
    기억은 자연스럽게 퇴색 (삭제는 아님)
  • 시간 모델: 기억마다 4개 타임스탬프 -- 언제 저장했는지, 대화가 언제 일어났는지, 실제 사건 시점,
    무효화 시점
  • 관계 그래프: updates, extends, derives, contradicts, supports -- 기억끼리 연결
  • LLM 불필요: 코어 엔진은 외부 API 호출 없이 로컬에서 동작. 임베딩(33MB)과 NLI(71MB) 모두 로컬

도구별 통합

memrosetta init --claude-code # Claude Code: hooks + CLAUDE.md + MCP
memrosetta init --cursor # Cursor: MCP + .cursorrules
memrosetta init --codex # Codex: config.toml + AGENTS.md
memrosetta init --gemini # Gemini: settings.json + GEMINI.md

MCP(Model Context Protocol)를 통해 AI가 세션 중에 직접 기억을 저장/검색합니다. Claude Code의 경우,
세션 중에는 Claude가 직접 MCP로 저장하고(품질 최고, 비용 $0), 세션 종료 시 Stop Hook이 안전망으로 놓친
것을 보완합니다.

경쟁 제품과 비교

Mem0, Zep, Letta 같은 기존 AI 메모리 솔루션은 클라우드 기반이고 LLM 의존성이 있습니다. MemRosetta는
로컬 SQLite 하나로 동작하며, 모순 감지, ACT-R 망각 모델, 시간 모델, 관계 그래프 등은 기존 솔루션에
없는 기능입니다.