Mem은(는) 무엇을 하나요?
🧠 SQLite, 전체 텍스트 검색 및 벡터 유사도와 충돌 해결을 사용하여 AI 어시스턴트를 위한 지속적이고 하이브리드한 대화 메모리를 구축합니다.
개요
이 스킬은 AI 어시스턴트가 여러 세션에 걸쳐 맥락을 유지할 수 있도록 합니다. SQLite에 메모리를 저장하고, 전체 텍스트 검색(FTS5)과 벡터 유사도 검색을 모두 지원하며, 메모리 충돌 시 지능적인 해결 메커니즘을 제공합니다.
주요 기능
- 지속적 메모리: SQLite 데이터베이스에 메모리를 저장하여 어시스턴트 재시작 후에도 유지됩니다.
- 하이브리드 검색: 키워드 기반(FTS5) 및 의미 기반(벡터) 검색을 결합하여 최적의 결과를 제공합니다.
- 충돌 해결: 동일한 키에 대한 여러 메모리 업데이트를 병합하거나 최신 정보로 덮어씁니다.
- 경량: 추가 인프라 없이 SQLite 하나로 작동합니다.
지원 플랫폼
- Claude Code
- Cursor
- Codex
- 기타 AI 코딩 어시스턴트
설치 방법
# 저장소 복제
git clone https://github.com/Lilily58/Mem.git
cd Mem
# 의존성 설치
pip install -r requirements.txt
# 데이터베이스 초기화
python mem.py init
사용 예제
메모리 저장
from mem import MemoryStore
store = MemoryStore()
store.save("user_123", {"topic": "프로젝트 계획", "details": "새로운 AI 에이전트 개발"})
메모리 검색
# 전체 텍스트 검색
results = store.search("AI 에이전트", mode="fts")
# 벡터 유사도 검색 (임베딩 필요)
results = store.search("머신러닝 관련 내용", mode="vector")
# 하이브리드 검색
results = store.search("딥러닝 프레임워크", mode="hybrid")
충돌 해결
# 충돌 해결 정책 설정 (기본값: "merge")
store.set_conflict_resolution("latest") # 최신 메모리 우선
store.set_conflict_resolution("merge") # 내용 병합
구성
| 환경 변수 | 설명 | 기본값 |
|---|---|---|
MEM_DB_PATH | SQLite 데이터베이스 파일 경로 | ./mem.db |
MEM_EMBEDDING_MODEL | 벡터 임베딩에 사용할 모델 | all-MiniLM-L6-v2 |
MEM_SEARCH_MODE | 기본 검색 모드 | hybrid |
MEM_CONFLICT_RESOLUTION | 충돌 해결 정책 | merge |
라이선스
MIT