5.9 KiB
5.9 KiB
title, updated, tags
| title | updated | tags | ||||
|---|---|---|---|---|---|---|
| OpenMemory (Mem0) | 2026-03-14 |
|
개요
OpenMemory는 Mem0에서 개발한 오픈소스 AI 메모리 레이어. LLM 기반 앱들이 공유 가능한 영속적 메모리를 로컬에서 사용할 수 있게 해주는 시스템.
- 로컬 우선: 모든 데이터가 사용자 머신에 저장, 클라우드 동기화 없음
- 크로스 클라이언트: MCP 호환 도구 간 컨텍스트 공유
- 프라이버시 우선: "Nothing goes to the cloud"
- GitHub: https://github.com/mem0ai/mem0 (
openmemory/디렉토리) - 공식 문서: https://docs.mem0.ai/openmemory
현재 운영 환경
| 항목 | 값 |
|---|---|
| 호스트 | 100.115.154.78:8765 |
| Workers | 1 |
| Infer | False |
| MCP 연결 | SSE 방식, Claude Code에 등록 |
아키텍처
| 컴포넌트 | 기술 스택 | 포트 | 역할 |
|---|---|---|---|
mem0_store |
Qdrant (벡터 DB) | 6333 | 메모리 벡터 저장소 |
openmemory-mcp |
FastAPI + Uvicorn | 8765 | API 서버 + MCP 서버 |
openmemory-ui |
Next.js (React) | 3000 | 웹 대시보드 |
DB: SQLite(openmemory.db) + Qdrant 벡터 스토어 이중 구조. Alembic으로 마이그레이션 관리.
설치
# 원클릭 설치
export OPENAI_API_KEY=sk-xxx
curl -sL https://raw.githubusercontent.com/mem0ai/mem0/main/openmemory/run.sh | bash
# 수동 설치
git clone https://github.com/mem0ai/mem0.git
cd mem0/openmemory
make env # .env 템플릿 복사
make build # Docker 이미지 빌드
make up # 서비스 시작
지원 벡터 스토어 (--vector-store= 플래그):
Qdrant(기본), Weaviate, Redis, PostgreSQL(pgvector), Chroma, Milvus, Elasticsearch, FAISS
Makefile 명령어
| 명령 | 설명 |
|---|---|
make build |
Docker 이미지 빌드 |
make up |
서비스 시작 |
make down |
서비스 중지 + 볼륨 삭제 |
make logs |
로그 확인 |
make shell |
API 컨테이너 셸 접속 |
make migrate |
DB 마이그레이션 실행 |
make env |
.env 템플릿 복사 |
make ui-dev |
UI 개발 서버 실행 |
MCP 서버 통합
엔드포인트
GET /mcp/{client_name}/sse/{user_id} # SSE 연결
POST /mcp/{client_name}/sse/{user_id}/messages/ # 메시지 전송
POST /mcp/messages/ # 범용 메시지
MCP 도구 (4개)
| 도구 | 설명 |
|---|---|
add_memories |
텍스트를 메모리로 저장 (벡터 임베딩 + DB 기록) |
search_memory |
시맨틱 검색으로 관련 메모리 조회 |
list_memories |
사용자의 모든 메모리 목록 조회 |
delete_all_memories |
전체 메모리 삭제 |
클라이언트 등록
npx @openmemory/install local http://localhost:8765/mcp/<client-name>/sse/<user-id> --client <client-name>
지원 클라이언트: Claude Desktop, Cursor, Windsurf, Cline 등 MCP 호환 도구 전체
API 엔드포인트
기본 URL: http://localhost:8765 | API 문서: /docs (Swagger), /redoc (ReDoc)
메모리 API (/api/v1/memories/)
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/v1/memories/ |
메모리 목록 (페이지네이션, 필터, 검색) |
| POST | /api/v1/memories/ |
메모리 생성 |
| GET | /api/v1/memories/{id} |
메모리 상세 조회 |
| PUT | /api/v1/memories/{id} |
메모리 수정 |
| DELETE | /api/v1/memories/ |
메모리 삭제 (배치) |
| POST | /api/v1/memories/actions/archive |
메모리 아카이브 |
| POST | /api/v1/memories/actions/pause |
메모리 일시정지 |
| GET | /api/v1/memories/{id}/access-log |
접근 로그 조회 |
| POST | /api/v1/memories/filter |
고급 필터 검색 |
| GET | /api/v1/memories/{id}/related |
관련 메모리 조회 |
| GET | /api/v1/memories/categories |
카테고리 목록 |
설정 API (/api/v1/config/)
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET/PUT | /api/v1/config/ |
전체 설정 조회/수정 |
| POST | /api/v1/config/reset |
설정 초기화 |
| GET/PUT | /api/v1/config/mem0/llm |
LLM 설정 |
| GET/PUT | /api/v1/config/mem0/embedder |
임베딩 모델 설정 |
| GET/PUT | /api/v1/config/mem0/vector_store |
벡터 스토어 설정 |
기타 API
| 경로 | 설명 |
|---|---|
/api/v1/stats/ |
통계 (메모리 수, 앱 수) |
/api/v1/apps/ |
앱 관리 |
/api/v1/backup/ |
백업 관리 |
설정
config.json
{
"mem0": {
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o-mini",
"temperature": 0.1,
"max_tokens": 2000,
"api_key": "env:OPENAI_API_KEY"
}
},
"embedder": {
"provider": "openai",
"config": {
"model": "text-embedding-3-small",
"api_key": "env:OPENAI_API_KEY"
}
}
}
}
환경 변수
api/.env:
OPENAI_API_KEY=sk-xxx
USER=kaffa
ui/.env:
NEXT_PUBLIC_API_URL=http://localhost:8765
NEXT_PUBLIC_USER_ID=kaffa
LLM/임베딩 모델은 API를 통해 런타임에 변경 가능. 벡터 스토어도 REST API로 동적 전환 가능.
주요 기능
- 시맨틱 메모리 검색: 벡터 임베딩 기반 의미적 유사 메모리 검색
- 크로스 앱 메모리 공유: Claude, Cursor 등 여러 MCP 클라이언트 간 공유
- 메모리 상태 관리: active, paused, archived, deleted 4단계
- 접근 감사 로그: 어떤 앱이 언제 어떤 메모리에 접근했는지 기록
- 카테고리 자동 분류: 메모리에 자동 카테고리 태깅
- 관련 메모리 탐색: 같은 카테고리 관련 메모리 자동 추천
- 앱별 권한 제어: 앱 단위 메모리 접근 일시정지
- 웹 대시보드(UI): 메모리 관리, 통계, 설정 GUI
- 백업/복원: 데이터 백업 내장
- 다중 벡터 스토어: Qdrant, pgvector, Redis, Milvus 등 8개 백엔드