Alenryuichi/openmemory-plus: xMemory 4계층 메모리 아키텍처 · 지능형 분류 · 자동 추출 · 다중 IDE 지원
요약
OpenMemory Plus는 다양한 AI Agent 간의 메모리 단절 문제를 해결하기 위해 설계된 통합 메모리 관리 프레임워크입니다. xMemory 4계층 아키텍처를 통해 대화 컨텍스트부터 고수준 주제 요약까지 체계적으로 관리하며, 여러 IDE와 CLI 도구 간에 사용자 선호도와 프로젝트 컨텍스트를 공유할 수 있게 합니다.
핵심 포인트
- xMemory 4계층 아키텍처(L0~L3)를 통한 체계적인 메모리 관리
- Cursor, Claude, Augment 등 서로 다른 AI 도구 간의 메모리 동기화 지원
- 사용자의 기술 스택 선호도 및 프로젝트 설정을 자동 추출 및 저장
- npx 명령어를 통한 간편한 설치 및 다중 IDE 지원
xMemory 4계층 메모리 아키텍처 · 지능형 분류 · 자동 추출 · 다중 IDE 지원
AI 도구를 전환할 때마다 매번 자기소개를 반복하는 것에 지치셨나요? Cursor는 당신이 Claude에서 TypeScript를 좋아한다고 말한 것을 모르고, Augment는 당신의 어제 기술적 결정을 기억하지 못합니다...
OpenMemory Plus는 모든 AI Agent가 동일한 메모리를 공유하게 해줍니다.
OpenMemory Plus는 AI Agent를 위해 설계된 통합 메모리 관리 프레임워크로, xMemory 4계층 메모리 아키텍처를 채택하고 있습니다:
L3 Theme— 주제 클러스터링 계층, 고수준 개념을 자동으로 요약
L2 Semantic— 의미론적 메모리 (Semantic Memory) 계층, BGE-M3 벡터 검색 기반
L1 Episode— 에피소드 메모리 (Episode Memory) 계층, 대화 컨텍스트 저장
L0 Message— 원시 메시지 (Raw Message) 계층
# 5분 설치로 AI 건망증 종결
npx openmemory-plus install
자동 메모리 추출 실행 |
메모리 추출 결과 |
이러한 문제들을 겪어본 적이 있으신가요?
| 😤 페인 포인트 (Pain Point) | 📖 시나리오 설명 |
|---|---|
| 다중 CLI 메모리 단절 | Gemini, Augment, Claude, Cursor를 동시에 사용하지만, 각각 독립된 메모리를 가져 서로 통하지 않음 |
| Agent 건망증 | 새로운 대화를 시작할 때마다 Agent가 당신이 누구인지, 프로젝트가 어디에 있는지, 지난번에 무엇을 했는지 잊어버림 |
| 반복적인 자기소개 | CLI를 전환할 때마다 Agent에게 다시 말해야 함: "나는 TypeScript를 좋아하고, pnpm을 사용하며, 함수형 프로식을 선호해"... |
| 설정 파편화 | 배포 URL은 Slack에, API Key는 노트에, 경로는 머릿속에 있음 |
| 컨텍스트 손실 | 어제 Claude에서 논의했던 기술적 결정이 오늘 Augment에서는 전혀 기억되지 않음 |
🔗 다중 CLI 통합 메모리 계층
┌─────────────────────────────────────────────────────────────┐
│ OpenMemory Plus 미사용 시 │
├─────────────────────────────────────────────────────────────┤
...
💬 실제 대화 비교
┌─────────────────────────────────────────────────────────────┐
│ [Gemini CLI] 오전 │
│ 사용자: 나는 TypeScript와 pnpm을 사용하는 것을 좋아해 │
...
| 사용자 유형 | 사용 시나리오 |
|---|---|
| 독립 개발자 | 다중 프로젝트 개발 시, Agent가 각 프로젝트의 설정과 컨텍스트를 기억하기를 원함 |
| 풀스택 엔지니어 (Full-stack Engineer) | 프론트엔드와 백엔드 프로젝트를 빈번하게 전환하며, Agent가 기술 스택 선호도를 기억해야 함 |
| AI 도구 헤비 유저 | Cursor, Claude, Augment를 동시에 사용하며, 메모리가 서로 통하기를 원함 |
| 팀 테크 리드 (Tech Lead) | 프로젝트 설정을 버전화하고, 새로운 멤버인 Agent가 자동으로 컨텍스트를 습득하기를 원함 |
🔧 유스케이스 1: 프로젝트 설정 관리
시나리오: 5개의 프로젝트가 있으며, 각 프로젝트마다 서로 다른 배포 설정이 있음
OpenMemory Plus 미사용 시:
- 매번 Agent에게 프로젝트 경로를 알려줘야 함
- 매번 배포 URL을 제공해야 함
- 매번 프로젝트 구조를 설명해야 함
OpenMemory Plus 사용 시:
<!-- _omp/memory/techContext.md (자동 생성) -->
## 배포 설정
- Vercel URL: https://my-app.vercel.app
...
Agent가 자동으로 읽어오므로 반복적인 설명이 필요 없습니다.
🎨 유스케이스 2: 프로젝트 간 선호도 동기화
시나리오: 당신은 TypeScript, Tailwind, pnpm 사용을 선호함
OpenMemory Plus 미사용 시:
- 새로운 프로젝트를 시작할 때마다 Agent에게 선호도를 알려줘야 함
- IDE를 전환하면 선호도가 유실됨
OpenMemory Plus 사용 시:
openmemory (사용자 수준, 프로젝트 간 공유):
├── "사용자 선호도: JavaScript 대신 TypeScript 사용"
├── "사용자 선호도: npm 대신 pnpm 사용"
...
어떤 프로젝트, 어떤 IDE에서도 Agent는 당신의 선호도를 알고 있습니다.
📝 유스케이스 3: 기술적 결정 추적
시나리오: 팀 논의 후 MongoDB 대신 PostgreSQL을 사용하기로 결정함
OpenMemory Plus 미사용 시:
- 결정 사항이 Slack/Notion에 기록되어 있어 Agent는 알지 못함
- 다음에 Agent가 MongoDB 사용을 제안할 수 있음
OpenMemory Plus 사용 시:
<!-- _omp/memory/techContext.md (자동 기록) -->
## 기술 결정
### 데이터베이스 선정 (2026-02-01)
...
Agent는 결정을 기억하며, 이미 거부된 방안을 반복해서 제안하지 않습니다.
🔄 유스케이스 4: 다중 CLI 메모리 공유 (핵심 시나리오)
시나리오: Gemini CLI, Augment, Claude Code, Cursor를 동시에 사용함
OpenMemory Plus 미사용 시:
😤 매일 반복되는 고통의 굴레:
[오전 - Gemini CLI]
사용자: 나는 TypeScript를 선호하며, pnpm을 사용함
...
OpenMemory Plus 사용 시:
✅ 한 번의 설정으로 어디서든 적용:
[오전 - Gemini CLI]
사용자: 나는 TypeScript를 선호하며, pnpm을 사용함
...
공유되는 메모리 내용:
# openmemory (모든 CLI 공유)
사용자 선호도:
- 언어: TypeScript
...
npx openmemory-plus install
설치 마법사가 자동으로 안내합니다:
- ✅ 시스템 의존성 감지 (Docker, Qdrant, Ollama, BGE-M3)
- ✅ Docker Compose 원클릭 배포(권장) 또는 네이티브 설치
- ✅ IDE 유형 선택
- ✅ 프로젝트 설정 초기화
- ✅ 다음 단계 안내 표시
Docker만 설치하면 나머지 의존성은 자동으로 처리됩니다!
# 방식 1: 설치 시 자동 감지 및 Docker Compose 사용
npx openmemory-plus install
# 방식 2: Docker Compose 모드 명시적 사용
...
장점:
- 🎯 Docker라는 단 하나의 의존성만 설치
- ⚡ 원클릭으로 모든 서비스 시작
- 📦 BGE-M3 모델 자동 다운로드
- 💾 데이터 지속성(Persistence) 보장, 재시작 시에도 유실 없음
설치가 완료되면, AI Agent 대화에서 다음과 같이 사용하세요:
/memory # 메모리 상태 표시 + 빠른 메뉴
/mem search <query> # 메모리 검색
/mem sync # 동기화 및 충돌 감지
...
| 의존성 | 버전 | 설명 |
|---|---|---|
| Node.js | >= 18.0.0 | CLI 실행 |
| ... |
- 🧠
xMemory 4계층 아키텍처— L3 Theme → L2 Semantic → L1 Episode → L0 Message - 🎯
지능형 분류— 정보가 프로젝트 메모리에 저장될지 사용자 메모리에 저장될지 자동 판단 - 🔍
의미론적 검색 (Semantic Search)— BGE-M3 기반의 다국어 벡터 검색 + 주제 계층 클러스터링 - ⚡
이벤트 기반 추출— 대화 종료 시 메모리 추출 Skill 자동 트리거 - 🔐
민감 정보 필터링— API Key, 비밀번호 등의 저장을 자동으로 식별하고 차단 - 🎯
Top-down 검색— 주제 계층부터 시작하여 의미 계층까지 적응형으로 확장
다양한 LLM Provider를 지원하여 메모리를 분류합니다:
| Provider | 모델 | 특징 |
|---|---|---|
| DeepSeek | deepseek-chat | 🔥 추천, 높은 가성비 |
| MiniMax | abab6.5s-chat | 중국어 최적화 |
| ZhiPu | glm-4-flash | 중국 국산 대규모 언어 모델 |
| Qwen | qwen-turbo | Alibaba Cloud |
| OpenAI | gpt-4o-mini | 국제 표준 |
| Ollama | 로컬 모델 | 오프라인 사용 가능 |
- 📊
다차원 분류— 3차원 분류 체계 (Scope/Confidence/Temporality)를 통해 각 메모리를 정확하게 라우팅 - 🧹
ROT 지능형 필터링— 중복(Redundant), 오래된(Outdated), 사소한(Trivial) 정보를 자동으로 식별하여 메모리 저장소를 간결하게 유지 - ⏰
에빙하우스 망각 곡선 (Ebbinghaus Decay)— 망각 곡선에 기반한 메모리 생명주기 관리, 오래된 메모리 자동 정리 - 🔀
충돌 감지— 이중 데이터 모순을 자동으로 발견하고 지능적인 해결책 제시 - 📈
건강도 모니터링— 4차원 가중치 점수를 통해 메모리 시스템 상태를 실시간으로 파악
📖
기술 상세 정보: 메모리 시스템 아키텍처 문서를 참조하세요.
- 📊
다운그레이드 전략— MCP 사용 불가 시 로컬 저장소로 자동 전환 - 🔗
메모리 통합— 의미론적 클러스터링을 통해 파편화된 메모리 병합 - 📉
품질 지표— 시각화 패널을 통해 메모리 건강 상태 표시 - 🔧
점진적 구성— 기존 설정 파일이 있는 경우 덮어쓰지 않고 추가
┌─────────────────────────────────────────────────────────────┐
│ xMemory 4계층 아키텍처 │
├─────────────────────────────────────────────────────────────┤
...
┌─────────────────────────────────────────────────────────────┐
│ OpenMemory Plus │
├─────────────────────────────────────────────────────────────┤
...
| 정보 유형 | 저장 위치 | 계층 | 예시 |
|---|---|---|---|
| 프로젝트 설정 | _omp/memory/*.md | - | 배포 URL, 환경 변수, 경로 |
| 기술 결정 | _omp/memory/techContext.md | - | 프레임워크 선택, 아키텍처 설계 |
| 주제 클러스터링 | _omp/memory/themes/ | L3 | 자동 생성된 주제 인덱스 |
| 사용자 선호도 | openmemory (MCP) | L2 | 언어 선호도, 코드 스타일 |
| 사용자 스킬 | openmemory (MCP) | L2 | 익숙한 기술 스택, 경험 |
查询 입력 → L3 주제층 매칭 → 점수 > 0.75? → L2 의미층으로 확장 → 결과 반환
↓ ↓
KNN 이웃 검색 직접 주제 반환
💡
주의: 설치 후, 프로젝트급 메모리는 _omp/memory/ 디렉터리에 저장되며, 해당 디렉터리는 Git 버전 관리에 추가됩니다.
Augment ✅ 완전 지원
|
Claude Code ✅ 완전 지원
|
Cursor ✅ 완전 지원
|
Gemini CLI ✅ 완전 지원
|
대화형 설치 (권장)
npx openmemory-plus install
Docker Compose로 원클릭 배포 (권장)
...
| Provider | 명령어 | 환경 변수 |
|---|---|---|
| DeepSeek | --llm deepseek | DEEPSEEK_API_KEY |
| MiniMax | --llm minimax | MINIMAX_API_KEY |
| ZhiPu | --llm zhipu | ZHIPU_API_KEY |
| Qwen | --llm qwen | DASHSCOPE_API_KEY |
| OpenAI | --llm openai | OPENAI_API_KEY |
| Ollama | --llm ollama | (로컬, API 키 불필요) |
Docker Compose 설정 초기화
omp deps init
모든 의존 서비스 시작 (Qdrant + Ollama + BGE-M3)
...
시스템 상태 확인
npx openmemory-plus status
문제 진단
...
| 명령어 | 설명 |
|---|---|
/memory | 빠른 상태 표시 + 하위 명령어 메뉴 |
/mem status | 상세 메모리 상태 |
/mem search {query} | 의미 검색 메모리 (기본 L2 의미층) |
/mem search {query} --level theme | 🆕 주제층 검색 (L3) |
/mem search {query} --level theme --no-expand | 🆕 주제층만, 확장 안 함 |
/mem store | 수동으로 메모리 저장 |
/mem sync | 충돌 감지 및 해결 |
/mem clean | ROT 메모리 정리 |
/mem decay | 시간 감쇠 분석 |
/mem graph | 지식 그래프 시각화 |
/mem themes | 🆕 주제 클러스터링 상태 보기 |
openmemory-plus/
├── cli/ # CLI 도구 소스코드
│ ├── src/
...
| 구성 요소 | 기술 | 설명 |
|---|---|---|
| CLI | TypeScript + Commander | 명령줄 도구 (Command Line Interface) |
| ... | ... | ... |
대화/작업 → 정보 탐지 → 지능형 분류 → 구조화된 추출 → 이중 계층 저장
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
...
가치 있는 정보가 탐지됨
│
▼
...
다음 내용을 자동으로 탐지하여 **저장을 차단**합니다:
| 유형 | 탐지 패턴 | 예시 |
|---|---|---|
| API Key | `sk-` , `api_key` , `token=` | `sk-xxx...` |
| 비밀번호 | `password` , `secret` | `password: 123456` |
| 개인키 (Private Key) | `-----BEGIN` , `PRIVATE KEY` | SSH/GPG 키 |
| 개인정보 | 신분증, 은행 카드, 휴대폰 번호 | `13800138000` |
| 특징 | OpenMemory Plus | 순수 openmemory MCP | 원시 mem0 SDK | 수동 .env | Notion/문서 |
|---|---|---|---|---|---|
| 자동 추출 | ✅ 대화 종료 시 자동 트리거 | ❌ | ❌ | | |
| ... | ❌ 코드 통합 필요 | ❌ | ❌ | | |
| ROT 메모리 정리 | ✅ 중복/오래된 정보 자동 식별 | ❌ | ❌ | ❌ | ❌ |
| 에빙하우스 (Ebbinghaus) 망각 곡선 | ✅ 망각 곡선 모델 적용 | ❌ | ❌ | ❌ | ❌ |
범례: ✅ 완전 지원 | ⚠️ 부분 지원 | ❌ 지원하지 않음
| 비교 항목 | OpenMemory Plus | 순수 openmemory MCP |
|---|---|---|
| 메모리 트리거 | 대화 종료 시 자동 추출, 사용자 개입 불필요 | Agent가 `add_memories` 도구를 능동적으로 호출해야 함 |
| 프로젝트 컨텍스트 | `_omp/memory/`에 프로젝트 결정 사항 및 아키텍처 저장 | 프로젝트 단위 메모리 없음, 모든 메모리가 사용자 단위로 혼재됨 |
| 메모리 분류 | preferences/decisions/patterns 등으로 자동 분류 | metadata 파라미터를 수동으로 전달해야 함 |
| 메모리 건강도 | ROT 탐지 + 건강도 점수 + 망각 모델 | 없음, 메모리가 줄어들지 않고 계속 쌓이기만 함 |
| IDE 설정 | AGENTS.md/CLAUDE.md 등을 자동 생성 | 각 IDE를 수동으로 설정해야 함 |
**Q: OpenMemory Plus와 mem0는 어떤 관계인가요?**
**A:** OpenMemory Plus는 mem0의 **강화 계층 (Enhancement Layer)**이며, 대체제가 아닙니다.
**mem0**가 기초적인 벡터 저장소 및 시맨틱 검색 (Semantic Search) 능력을 제공한다면, **OpenMemory Plus**는 그 기반 위에 다음을 추가합니다:
- 이중 메모리 아키텍처 (프로젝트 단위 + 사용자 단위)
- 지능형 분류 및 자동 추출
- 다중 IDE 통합 설정
- 민감 정보 필터링
먼저 mem0/openmemory MCP를 설치한 후, OpenMemory Plus를 사용하여 이를 강화해야 합니다.
**Q: 제 데이터는 어디에 저장되나요? 안전한가요?**
**A:** 데이터는 두 곳에 저장됩니다:
| 저장 위치 | 데이터 유형 | 보안성 |
|---|---|---|
| `_omp/memory/` (로컬) | 프로젝트 설정, 기술적 결정 사항 | ✅ 로컬 파일, Git 버전 관리 가능 |
| `openmemory` (Qdrant) | 사용자 선호도, 기술 (Skills) | ✅ 로컬 Docker 컨테이너 |
- 모든 데이터는 **사용자의 로컬 머신**에 저장됩니다.
- 민감한 정보 (API Key, 비밀번호)는 **자동으로 필터링**되어 저장되지 않습니다.
- 프로젝트 단위 데이터는 `.gitignore`를 통해 제외할 수 있습니다.
**Q: 어떤 IDE/Agent를 지원하나요?**
**A:** 현재 다음을 완전 지원합니다:
| IDE | 설정 파일 | 상태 |
|---|---|---|
| Augment | `AGENTS.md` | ✅ 완전 지원 |
| Claude Code | `CLAUDE.md` | ✅ 완전 지원 |
| Cursor | `.cursorrules` | ✅ 완전 지원 |
| Gemini CLI | `gemini.md` | ✅ 완전 지원 |
그 외 MCP 프로토콜을 지원하는 Agent도 수동 설정을 통해 사용할 수 있습니다.
**Q: 기존 프로젝트를 어떻게 마이그레이션하나요?**
**A:** 설치 명령어를 실행하기만 하면 됩니다:
cd your-existing-project
npx openmemory-plus install
설치 마법사가 다음을 수행합니다:
- 기존 설정 탐지
- `_omp/memory/` 디렉토리 생성
- IDE 설정 파일 생성
- 기존 파일을 덮어쓰지 않습니다.
**Q: 오래된 기억은 어떻게 정리하나요?**
**A:** 내장된 ROT 정리 명령어를 사용하세요:
/mem clean
이 명령어는 다음 항목을 식별하고 정리합니다:
**R**edundant (중복): 중복된 정보
**O**bsolete (구식): 업데이트되어 더 이상 유효하지 않은 오래된 정보
**T**rivial (사소함): 가치가 없는 확인용 문구
Now / Next / Later 패턴을 채택하여, 현재 방향에 집중하고 우선순위를 유연하게 조정합니다.
**성장 및 커뮤니티 구축**
- 콘텐츠 마케팅 — 페인 포인트(Pain Point) 관련 문서, 비교 영상, 사용 사례
- 커뮤니티 구축 — Discord/WeChat 그룹, 사용자 스토리 수집
- 문서 완성도 향상 — 트러블슈팅 가이드, 베스트 프랙티스(Best Practices)
**제품 경험 최적화**
- 설치 성공률 향상 — 더 나은 에러 메시지 및 자동 복구
- 첫 경험 최적화 — 5분 이내에 가치를 체감할 수 있도록 개선
- 기억 검색 강화 — 시맨틱 검색 (Semantic Search), 퍼지 매칭 (Fuzzy Matching)
- 일괄 기억 관리 — CLI 명령어를 통한 일괄 작업 지원
- 더 많은 IDE 지원 — Windsurf, Cline
- 기억 가져오기/내보내기 — 데이터 이식성 확보
- Web UI 관리 인터페이스
- 클라우드 동기화 옵션
- 기억 분석 및 인사이트
## 완료된 기능
**v2.0 - 멀티 에이전트 팀 지원 (Multi-Agent Team Support)**
- 🤝 멀티 에이전트 팀 기억 아키텍처 (Team Shared + Agent Private)
- 🎭 에이전트 ID 스키마 (Agent ID Schema) (행위자 귀속, 범위 필터링)
- 📋 팀 설정 파일 (`_omp/config.yaml`)
- 🔄 핸드오프 (Handoff) 워크플로우 (에이전트 간 작업 인계 프로토콜)
- 📁 스코프 지정 메모리 API (Scoped Memory API) (이중 계층 스코프 기억)
**v1.6 - xMemory 4계층 아키텍처**
- 🧠 xMemory 4계층 아키텍처 (L3 Theme → L2 Semantic → L1 Episode → L0 Message)
- 🎯 L3 테마 계층 자동 클러스터링 (흡착/분열/병합 알고리즘)
- 🔍 탑다운 (Top-down) 적응형 검색 (`--level theme`)
- ⚡ 테마 검색 CLI 옵션 (`--no-expand`)
- 📊 연결 성분 클러스터링 알고리즘 (Connected Component Clustering) (xMemory 논문 구현)
**v1.5 - 기초 기능**
- 이중 계층 기억 아키텍처 (프로젝트 레벨 + 사용자 레벨)
- 지능형 분류 라우팅
- 다중 IDE 지원 (Augment, Claude, Cursor, Gemini)
- CLI 설치 도구 (`npx openmemory-plus install`)
- 민감 정보 필터링
- 다중 LLM 프로바이더 (Provider) 지원 (DeepSeek, MiniMax, ZhiPu, Qwen, OpenAI, Ollama)
- Docker Compose 원클릭 배포
- 점진적 설정 (기존 파일을 덮어쓰지 않고 추가)
- MCP 자동 설정 및 검증
기여를 환영합니다! 참여 방법은 기여 가이드를 읽어주세요.
저장소 클론
git clone https://github.com/Alenryuichi/openmemory-plus.git
cd openmemory-plus
...
MIT License © 2026 TreeRen Chou
- OpenMemory (mem0) — 하위 기억 서비스
- Qdrant — 벡터 데이터베이스 (Vector Database)
- BGE-M3 — 다국어 임베딩 (Embedding) 모델
- MCP 프로토콜 — Model Context Protocol
Made with ❤️ for AI Agent developers
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기