
Claude Code는 강력하지만, 세션이 끝나면 모든 컨텍스트가 사라집니다. 지난 세션에서 배운 것, 발견한 버그, 작성한 코드 — 모두 사라집니다.
Claude-Mem은 이 문제를 해결합니다. Claude Code를 위한 지속적 메모리 압축 시스템입니다.
1) 핵심 개념
문제
- 세션이 끝나면 컨텍스트 손실
- 이전 발견을 다시 찾아야 함
- 프로젝트 히스토리가 단절됨
해결책
Session 1 → Observations → SQLite + Chroma → Session 2
↓ ↑
Tool Usage ──────────────────────────────► Context Injection
Claude-Mem은 자동으로 작동합니다:
- 도구 사용 관찰 캡처
- 의미적 요약 생성
- 미래 세션에서 사용 가능하게 만듦
2) 주요 기능
| 기능 | 설명 |
|---|---|
| 🧠 지속적 메모리 | 세션 간 컨텍스트 유지 |
| 📊 점진적 공개 | 토큰 비용 가시성이 있는 계층적 메모리 검색 |
| 🔍 스킬 기반 검색 | mem-search 스킬로 프로젝트 히스토리 쿼리 |
| 🖥️ 웹 뷰어 UI | http://localhost:37777에서 실시간 메모리 스트림 |
| 💻 Claude Desktop 스킬 | Claude Desktop 대화에서 메모리 검색 |
| 🔒 프라이버시 제어 | <private> 태그로 민감한 콘텐츠 제외 |
| 🔗 인용 | ID로 과거 관찰 참조 |
| 🧪 베타 채널 | Endless Mode 같은 실험적 기능 |
3) 설치
Claude Code
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
Claude Code 재시작. 이전 세션의 컨텍스트가 자동으로 새 세션에 나타납니다.
OpenClaw Gateway
OpenClaw 게이트웨이에 한 줄로 설치:
curl -fsSL https://install.cmem.ai/openclaw.sh | bash
설치 프로그램이 의존성, 플러그인 설정, AI 프로바이더 구성, 워커 시작, Telegram/Discord/Slack 실시간 피드를 처리합니다.
4) 작동 방식
핵심 구성 요소
| 구성 요소 | 역할 |
|---|---|
| 5 Lifecycle Hooks | SessionStart, UserPromptSubmit, PostToolUse, Stop, SessionEnd |
| Smart Install | 캐시된 의존성 체커 |
| Worker Service | 포트 37777에서 HTTP API + 웹 뷰어 |
| SQLite Database | 세션, 관찰, 요약 저장 |
| mem-search Skill | 자연어 쿼리 |
| Chroma Vector Database | 하이브리드 의미 + 키워드 검색 |
데이터 흐름
┌─────────────┐
│ Claude Code │
│ Session │
└──────┬──────┘
│
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Hooks │────►│ Worker │────►│ SQLite │
│ │ │ Service │ │ + Chroma │
└─────────────┘ └─────────────┘ └─────────────┘
│ │
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Context │◄────────────────────────│ Search │
│ Injection │ │ Query │
└─────────────┘ └─────────────┘
5) MCP 검색 도구
Claude-Mem은 토큰 효율적인 3계층 워크플로우로 4개 MCP 도구를 제공합니다:
3계층 워크플로우
| 계층 | 도구 | 토큰 비용 |
|---|---|---|
| 1 | search | ~50-100 토큰/결과 |
| 2 | timeline | 시간순 컨텍스트 |
| 3 | get_observations | ~500-1,000 토큰/결과 |
작동 방식:
search로 인덱스 가져오기- 흥미로운 결과 주변의
timeline확인 - 필터링된 ID만
get_observations로 전체 세부 정보 가져오기
결과: ~10배 토큰 절약
사용 예시
// Step 1: 인덱스 검색
search(query="authentication bug", type="bugfix", limit=10)
// Step 2: 관련 ID 식별 (예: #123, #456)
// Step 3: 전체 세부 정보 가져오기
get_observations(ids=[123, 456])
6) 점진적 공개 (Progressive Disclosure)
Claude-Mem의 핵심 철학입니다:
“모든 것을 한 번에 주지 말고, 필요할 때 필요한 만큼만 제공하라.”
계층 구조:
Layer 1: Compact Index (IDs only)
↓ 관찰 선택
Layer 2: Timeline Context
↓ 관련성 확인
Layer 3: Full Observation Details
장점:
- 토큰 비용 가시성
- 정확한 컨텍스트 필터링
- 효율적인 검색
7) 아키텍처
Hooks Architecture
7개의 훅 스크립트:
| 훅 | 설명 |
|---|---|
SessionStart | 세션 시작 시 컨텍스트 주입 |
UserPromptSubmit | 사용자 프롬프트 전 처리 |
PostToolUse | 도구 사용 후 관찰 캡처 |
Stop | 세션 중지 시 정리 |
SessionEnd | 세션 종료 시 요약 생성 |
pre-hook | 의존성 체크 |
post-hook | 정리 작업 |
Worker Service
- 포트: 37777
- 런타임: Bun
- 엔드포인트: 10개 검색 엔드포인트
- UI: 웹 뷰어
Database
- SQLite 3: 세션, 관찰, 요약
- FTS5: 전체 텍스트 검색
- Chroma: 벡터 검색
8) 웹 뷰어 UI
http://localhost:37777에서 실시간 메모리 스트림 확인:
- 모든 관찰 보기
- ID로 관찰 액세스:
/api/observation/{id} - 설정 변경
- 베타 채널 전환
9) 베타 기능
Endless Mode
생체모방 메모리 아키텍처로 확장 세션 지원:
- 작업 기억 → 단기 기억 → 장기 기억
- 자동 압축 및 보관
- 무제한 컨텍스트 확장
웹 뷰어 UI → Settings에서 베타 채널로 전환.
10) 프라이버시 제어
민감한 콘텐츠를 <private> 태그로 보호:
This is public content.
<private>
This content will NOT be stored in memory.
API keys, passwords, secrets go here.
</private>
This is also public.
<private> 태그 안의 내용은 저장되지 않습니다.
11) 시스템 요구사항
| 요구사항 | 버전 |
|---|---|
| Node.js | 18.0.0+ |
| Claude Code | 플러그인 지원 최신 버전 |
| Bun | 자동 설치 |
| uv | Python 패키지 매니저 (자동 설치) |
| SQLite 3 | 번들 |
12) 설정
~/.claude-mem/settings.json에서 관리:
- AI 모델
- 워커 포트
- 데이터 디렉토리
- 로그 레벨
- 컨텍스트 주입 설정
마치며: AI 에이전트의 장기 기억
Claude-Mem은 AI 에이전트에 장기 기억을 부여합니다.
“세션이 끝나도, 학습한 것은 남는다.”
특히 인상적인 점:
- 자동 작동: 수동 개입 불필요
- 점진적 공개: 토큰 효율적인 검색
- 하이브리드 검색: 의미 + 키워드
- 프라이버시: 민감한 콘텐츠 보호
- OpenClaw 통합: 한 줄 설치
이것이 지속적 컨텍스트의 미래입니다. Claude Code가 당신의 프로젝트를 “기억”하게 만드세요.