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에서 직접 가져온 것입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트