mnemosyne-oss/mnemosyne

Zero-cloud AI memory that works everywhere. SQLite-backed. One pure-Python dependency.

Mnemosyne – 에이전트를 위한 로컬 우선 AI 메모리

개요

Mnemosyne는 LLM 기반 에이전트가 사용할 수 있는 오픈소스, SQLite 기반 메모리 레이어입니다. 사실, 임베딩, 시간적 트리플을 로컬에 저장하며 다음을 통해 액세스할 수 있습니다:

  • MCP 서버(JSON-over-STDIO / SSE / HTTP 프로토콜)는 기존의 많은 에이전트(Claude Code, Cursor, Codex, OpenWebUI 등)와 호환됩니다.
  • Python SDK(remember, recall), 또는
  • Hermes 플러그인(Hermes 에이전트 프레임워크용).

이 모든 것은 단일 pip install mnemosyne-memory로 실행되며 외부 벡터 DB나 클라우드 서비스가 필요 없습니다 – 유일한 의존성은 SQLite 데이터베이스 파일입니다.

핵심 개념

구성 요소 역할
작업 메모리 LLM 호출 전에 자동으로 주입되는 핫 컨텍스트. TTL 후 항목이 만료됩니다.
에피소드 메모리 SQLite-vec + FTS5를 사용한 하이브리드 벡터-키워드 검색을 위한 장기 저장소.
TripleStore 버전 관리가 포함된 시간적 지식 그래프(주어-술어-목적어).
BEAM(이중 레벨 에피소드-연상 메모리) 세 계층을 결합하고 결과를 50% 벡터 유사도 + 30% FTS5 순위 + 20% 중요도로 점수화하는 전체 아키텍처.

벡터는 **이진(MIB)**입니다. 384차원 부동 소수점 임베딩이 48바이트로 압축되어 32배 크기 감소를 실현하고 SQLite 내에서 직접 해밍 거리 검색이 가능합니다.

사용 방법

CLI(빠른 시작)

pip install mnemosyne-memory          # 핵심
pip install "mnemosyne-memory[all]"   # 전체 기능 세트

# MCP 서버 시작(기본 stdio)
mnemosyne mcp

# 사실 저장 및 검색
mnemosyne store "User prefers dark mode"
mnemosyne recall "preferences"

Python SDK(모든 에이전트에 임베드)

from mnemosyne import remember, recall

remember("User prefers dark mode", importance=0.9)
results = recall("dark mode", top_k=3)

범위, 만료 시간, 엔터티 추출을 설정하거나 LLM이 사실을 추출하도록 할 수도 있습니다(extract=True).

통합 예시

플랫폼 통합 방법
Cursor, Claude Code, Codex, Windsurf 플랫폼의 *.json 설정에 MCP 항목을 추가합니다.
OpenWebUI 한 줄 브리지 파일을 data/tools/에 넣습니다.
OpenClaw mnemosyne-memory[openclaw]를 설치하고 설정에서 공급자를 참조합니다.
Hermes Agent mnemosyne-hermes를 설치합니다. 플러그인이 메모리 공급자를 자동으로 등록합니다.
모든 Python 에이전트 import mnemosyne하고 SDK를 호출합니다.

전체 통합 가이드는 docs/integrations/에 있습니다.

벤치마크(보고된 기준)

  • BEAM 엔드투엔드 QA(100K 항목): 65.2%(v3.0.0, 2026년 5월) – 다른 오픈소스 메모리 시스템과 비슷합니다.
  • BEAM 순수 리콜: Recall@10은 100K에서 10M 항목까지 약 20%를 유지하며, 지연 시간은 10M에서 35ms로 감소하고 저장 공간은 서브리니어하게 증가합니다(10M 항목에 7.2MB).
  • LongMemEval: 이전에 98.9% 리콜을 주장했지만, 재현 가능한 재실행을 기다리며 철회되었습니다.

핵심 요점은 코퍼스가 성장해도 리콜 품질이 일정하며, 시스템이 에피소드 압축을 사용하여 저장 공간을 최소화한다는 것입니다.

보안 및 개인정보 보호 모델

  • 로컬 우선: 기본적으로 데이터는 머신 밖으로 나가지 않습니다.
  • 선택적 동기화: 장치 간 양방향 델타 동기화, 클라이언트 측 암호화(AES-128-CBC 또는 XSalsa20-Poly1305) 포함. 서버는 메타데이터만 봅니다.
  • 텔레메트리 없음: 원격 임베딩 API를 활성화하지 않는 한 분석이나 클라우드 호출이 없습니다.
  • 구성 가능한 TLS: 원격 동기화 또는 임베딩 엔드포인트용.

구성 하이라이트

변수 기본값 제어 내용
MNEMOSYNE_DATA_DIR ~/.hermes/mnemosyne/data SQLite 파일 위치
MNEMOSYNE_VEC_TYPE int8 벡터 압축 형식(float32, int8, bit)
MNEMOSYNE_EMBEDDING_API_URL OpenRouter 엔드포인트 원격 임베딩 서비스(로컬 임베딩을 실행하지 않는 경우)
MNEMOSYNE_EMBEDDING_MODEL BAAI/bge-small-en-v1.5 사용할 임베딩 모델
MNEMOSYNE_WM_MAX_ITEMS 10000 핫 작업 메모리 캐시 크기

환경 변수로 가중치(MNEMOSYNE_VEC_WEIGHT, FTS_WEIGHT, IMPORTANCE_WEIGHT)와 최근성 감쇠를 조정할 수 있습니다.

누가 사용할까요?

  • 사용자 정의 LLM 에이전트를 구축하는 개발자: 별도의 벡터 DB를 실행하지 않고 영구적이고 검색 가능한 메모리가 필요한 경우.
  • 온프레미스 또는 엣지 장치에 배포하는 팀(Raspberry Pi, 저RAM VPS): 전체 스택이 수백 MB에 들어가기 때문입니다.
  • 개인정보를 중시하는 사용자: 장치 간 암호화 동기화가 필요한 경우.

현재 상태

Mnemosyne는 실제로 활발히 유지 관리되는 오픈소스 프로젝트(MIT 라이선스)로, Mem0, Letta, Honcho 등과 동일한 문제 영역을 대상으로 하지만 다음과 같은 차별점이 있습니다:

  • 순수 Python, 단일 SQLite 파일,
  • 내장 MCP 서버로 기존의 많은 에이전트에 플러그 앤 플레이로 연결,
  • 클라이언트 측 암호화 동기화를 핵심 기능으로 제공.

위의 모든 세부 사항은 저장소의 README에서 직접 가져온 것입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트