Supermemory는 AI가 대화 사이에서 모든 것을 잊어버리는 문제를 해결하는 메모리 및 컨텍스트 엔진이다. 대화에서 사실(fact)을 자동 추출하고, 사용자 프로필을 유지하며, 지식 업데이트·모순·만료를 처리하여 AI에게 장기 기억을 부여한다.
LongMemEval 81.6%로 벤치마크 1위, Cloudflare Workers 엣지 위에서 동작하며, Claude MCP·LangChain·OpenAI Agents SDK 등 거의 모든 에이전트 프레임워크와 통합된다. GitHub 스타: 25.4k(2026-06-04 기준).
보통 AI 대화는 "기억상실증 환자"처럼 매번 처음부터 시작합니다. Supermemory는 AI 옆에 두 개의 서랍을 놓아둡니다. 첫 번째 서랍엔 "이 사람은 Python 전문가, 서울 거주"처럼 거의 안 변하는 사실을, 두 번째 서랍엔 "어제 Supabase 연동 중"처럼 최근 활동을 차곡차곡 쌓아둡니다.
대화가 시작될 때마다 AI가 두 서랍을 훑고 ~50ms 안에 관련 내용만 꺼내 시스템 프롬프트에 끼워 넣습니다. 사용자 입장에서는 AI가 "나를 오래 알아온 것처럼" 느껴지는 이유입니다.
RAG(Retrieval-Augmented Generation)는 문서를 청킹해 벡터로 저장하고 쿼리가 오면 가장 비슷한 청크를 돌려줍니다. 모든 사용자에게 동일한 문서 풀을 제공하기 때문에 개인화가 없고, "어제 내가 했던 말"이나 "부산으로 이사했다"는 사실 변화를 추적하지 못합니다. 시간이 흐르면서 모순되는 사실이 쌓여도 누가 더 최신인지 알 수 없습니다.
사용자별로 격리된 메모리 풀을 만들어 사실을 저장합니다. "서울 → 부산 이사" 같은 모순이 생기면 자동 감지 후 최신 사실로 교체하고 오래된 것은 만료 예약합니다. 단일 profile() 호출로 정적 사실 + 최근 활동을 동시에 반환하며, 여기에 RAG(문서 검색)까지 하이브리드로 합쳐 LLM 프롬프트에 주입합니다.
| 기능 | Supermemory | Mem0 | Zep |
|---|---|---|---|
| LongMemEval 점수 | 81.6% | 낮음 | 낮음 |
| 하이브리드 검색(RAG+Memory) | ✅ | ❌ | 부분적 |
| 시간 인식(Temporal) | ✅ | 제한적 | 제한적 |
| 모순 자동 해결 | ✅ | 제한적 | ❌ |
| 커넥터(GDrive·Notion 등) | 8종 | ❌ | ❌ |
| MCP 서버 | ✅ | ❌ | ❌ |
| 오픈소스 벤치마크 | ✅ (MemoryBench) | ❌ | ❌ |
| 기술 | 용도 |
|---|---|
| Hono | 경량 웹 프레임워크 — Cloudflare Workers에 최적화된 Express 대체 |
| Cloudflare Workers | 서버리스 엣지 런타임 (배포/스케일링) |
| Cloudflare AI | 벡터 임베딩 생성 |
| Cloudflare KV | 키-값 스토리지 (캐시·설정) |
| Cloudflare Workflows | 비동기 콘텐츠 인제스트 오케스트레이션 |
| Hyperdrive | Cloudflare의 DB 커넥션 풀링 (PostgreSQL 가속) |
| Drizzle ORM | 타입 안전 SQL 쿼리 빌더 |
| PostgreSQL | 메인 데이터베이스 |
| neverthrow | Result 타입 기반 함수형 에러 핸들링 |
| Better Auth | 인증 / 조직(Organization) 멀티테넌트 관리 |
| 기술 | 용도 |
|---|---|
| Next.js | 메인 웹앱 (apps/web) |
| Bun 1.3.4 | 패키지 매니저 + 런타임 |
| Turborepo | 모노레포 빌드 오케스트레이션 |
| Biome 2.2 | ESLint+Prettier 올인원 대체 (Rust 기반, 초고속) |
| Wrangler | Cloudflare Workers 배포 CLI |
| Sentry | 에러 모니터링 + 소스맵 |
| 프레임워크 | 지원 방식 |
|---|---|
| Vercel AI SDK | @ai-sdk/anthropic, openai, google, cerebras |
| LangChain / LangGraph | Python 래퍼 |
| OpenAI Agents SDK | 네이티브 통합 |
| Claude MCP | MCP 서버 + Claude Code 플러그인 |
| n8n, Zapier | 노코드 워크플로우 연동 |
단일 쿼리로 Memory 검색(개인화 사실)과 RAG 검색(문서 청크)을 동시에 수행한 뒤 결과를 합쳐 LLM 시스템 프롬프트에 주입합니다. containerTag라는 식별자로 사용자·프로젝트 단위 메모리를 격리합니다.
t=1: "나는 서울에 살아" → 사실 저장: {location: "서울"}
t=2: "부산으로 이사했어" → 모순 감지 → 자동 업데이트: {location: "부산"}
t=3: "3개월 후 돌아올 거야" → 시간 인식 → 만료 예약: 3개월 후 재검토
import { ok, err, Result } from 'neverthrow';
// 예외를 던지지 않고 Result<T, E> 타입으로 에러를 표현
function processMemory(input: string): Result<Memory, ProcessError> {
if (!input) return err(new ProcessError('empty input'));
return ok(extractFacts(input));
}
// 체이닝으로 안전한 데이터 흐름
processMemory(text)
.map(memory => enrichWithProfile(memory))
.mapErr(error => logAndRecover(error));
Result<T, E> 패턴을 구현하는 라이브러리. try-catch 대신 ok(값)과 err(에러)를 반환하여 에러 흐름을 타입 시스템이 강제합니다. "예외를 던지지 않는" 함수형 코딩 스타일.단일 profile() 호출로 "Python 전문가"(거의 안 변함)와 "최근 3일 React 학습"(빈번 업데이트)을 함께 반환합니다. 응답 시간 ~50ms, threshold 파라미터로 관련성 점수 필터링.
비동기 6단계 파이프라인: 타입 감지 → AI 요약 → 자동 태깅 → 벡터 임베딩 → 청킹 최적화 → 관계 매핑. 4시간 간격 크론 + 콘텐츠 해시 기반 중복 방지.
| 파일 | 역할 |
|---|---|
| turbo.json | build → lint → check-types 의존 순서 정의. dev는 캐시 비활성화 |
| biome.json | ESLint + Prettier를 대체하는 올인원 포매터/린터 설정 |
| wrangler.jsonc | Cloudflare Workers 배포: Hyperdrive·AI·KV·Workflows 바인딩 |
| CLAUDE.md | Claude Code에게 프로젝트 구조·컨벤션·API 경로를 알려주는 컨텍스트 파일 |
서버리스 엣지 런타임에서 풀스택 앱을 구축하는 방법을 배웁니다. Hono의 미들웨어 체인과 Zod 검증 통합, Hyperdrive로 PostgreSQL 커넥션 풀링 최적화, Cloudflare KV·AI·Workflows 바인딩 활용이 핵심입니다.
Hono + CF Workers로 간단한 API 서버 만들기 → Hyperdrive로 DB 연결 → KV로 캐시 레이어 추가
대화에서 사실(fact) 자동 추출 파이프라인, 시간 인식(모순 감지 → 자동 업데이트/만료), containerTag 기반 메모리 격리, Memory vs RAG의 개념적 차이와 하이브리드 결합을 배웁니다.
타입 안전한 SQL 쿼리 작성(TypeScript와의 완벽한 통합), Drizzle Kit으로 마이그레이션 관리, drizzle-zod로 DB 스키마 → Zod 스키마 자동 생성. neverthrow로 Rust 스타일 에러 핸들링을 TypeScript에서 구현하는 법.
Bun 워크스페이스 설정과 패키지 간 의존성 관리, turbo.json의 태스크 파이프라인과 토폴로지 의존(^build), 모노레포에서 TypeScript 공유 타입 패턴을 실전으로 익힙니다.
Model Context Protocol 서버 구축 방법(Claude·Cursor·VS Code 연동), OAuth 기반 MCP 인증, npx install-mcp 원클릭 설치 패턴을 배웁니다.
| 항목 | 최소 |
|---|---|
| Node.js | 20 이상 |
| Bun | 1.3.4 |
| 메모리 | 4GB+ (권장 8GB) |
| OS | macOS / Linux / Windows (WSL) |
Supermemory는 Cloudflare Workers 위에서 동작하므로 자체 서버가 필요 없습니다. Cloudflare Workers·Hyperdrive·KV·AI + 외부 PostgreSQL만 있으면 됩니다. SDK 사용 시(SaaS 모드)는 npm install supermemory 또는 pip install supermemory로 즉시 사용 가능.
Python/TypeScript SDK를 사용하여 이전 대화 내용을 기억하는 챗봇을 구현합니다. profile()로 사용자 컨텍스트를 가져오고 LLM 응답 후 add()로 저장하는 루프를 직접 짜봅니다.
Supermemory MCP 서버를 Claude Desktop에 연결하여 대화 기억을 지속합니다. OAuth 인증 플로우와 MCP 프로토콜을 실제로 체험합니다.
npx -y install-mcp@latest https://mcp.supermemory.ai/mcp --client claude --oauth=yes
LangChain으로 RAG + Memory 하이브리드 검색을 활용하는 AI 에이전트를 구축합니다. profile()과 search.memories()를 결합해 정확도 향상을 체감합니다.
MemoryBench를 사용하여 Supermemory vs Mem0 vs Zep의 LongMemEval 점수를 직접 재현합니다. 벤치마크 방법론을 이해하고 프로바이더 교체 시 성능 변화를 측정합니다.
bun run src/index.ts run -p supermemory -b longmemeval -j gpt-4o -r my-benchmark
bun run src/index.ts compare -r my-benchmark -p supermemory,mem0,zep
Supermemory에 새로운 데이터 소스 커넥터(예: Slack)를 추가하고 웹훅 기반 실시간 동기화를 구현합니다. apps/web의 커넥터 아키텍처를 분석하고 멀티모달 추출기를 커스터마이징합니다.
| 일 | 학습 내용 |
|---|---|
| Day 1 | 벡터 임베딩 개념: 텍스트 → 숫자 벡터 변환 원리 |
| Day 2 | 코사인 유사도로 시맨틱 검색 구현 (NumPy) |
| Day 3 | RAG 패턴: 문서 청킹 → 임베딩 → 검색 → LLM 증강 |
| Day 4~5 | LangChain으로 간단한 RAG 파이프라인 구축 |
| 일 | 학습 내용 |
|---|---|
| Day 1 | Memory vs RAG 차이 깊이 이해 (Supermemory 블로그/문서) |
| Day 2 | Supermemory SDK로 기본 CRUD (add, search, profile) |
| Day 3 | containerTag 기반 멀티유저 메모리 격리 |
| Day 4~5 | 시간 인식, 모순 해결 메커니즘 실험 |
| 일 | 학습 내용 |
|---|---|
| Day 1 | Hono로 Hello World API → CF Workers 배포 |
| Day 2 | KV 스토리지: 세션·설정·캐시 관리 |
| Day 3 | Hyperdrive: PostgreSQL 연결 가속 실습 |
| Day 4~5 | Workflows: 비동기 작업 오케스트레이션 |
| 일 | 학습 내용 |
|---|---|
| Day 1~2 | Turborepo + Bun 모노레포 세팅 from scratch |
| Day 3 | Biome으로 린트/포맷 통합 (ESLint/Prettier 마이그레이션) |
| Day 4 | Drizzle ORM: 타입 안전 DB 레이어 구축 |
| Day 5 | neverthrow: 함수형 에러 핸들링 적용 |
| 일 | 학습 내용 |
|---|---|
| Day 1~2 | MCP 서버 직접 구축하여 Claude/Cursor 연동 |
| Day 3 | Better Auth로 인증 + 조직 관리 시스템 구현 |
| Day 4 | Sentry 연동 + 소스맵 업로드 |
| Day 5 | MemoryBench로 벤치마킹 실행 및 분석 |
| 키워드 | 설명 |
|---|---|
| Memory Engine | 대화에서 사실을 자동 추출·시간 축 관리하는 시스템. RAG와 달리 개인화 컨텍스트 유지 |
| RAG | Retrieval-Augmented Generation. 문서 검색으로 LLM 응답을 증강하는 패턴 |
| Hybrid Search | RAG(문서)와 Memory(개인 기억)를 단일 쿼리로 동시 수행하는 검색 모드 |
| containerTag | 사용자·프로젝트 단위 메모리 격리 식별자. 같은 태그 내 Memory+RAG+Profile이 컨텍스트 공유 |
| User Profile | 정적 사실(Static Facts)과 동적 컨텍스트(Dynamic Context)의 조합 |
| Temporal Awareness | 시간에 따른 사실 변화를 인식하는 능력. 모순 자동 감지·업데이트·만료 예약 |
| Fact Extraction | 자연어 대화에서 구조화된 사실(key-value)을 자동 추출하는 과정 |
| MCP | Model Context Protocol. LLM이 외부 도구에 접근하는 표준 프로토콜 |
| Hono | Cloudflare Workers에 최적화된 초경량 웹 프레임워크 |
| Hyperdrive | Cloudflare의 DB 커넥션 풀링. Workers → PostgreSQL 연결 시 레이턴시 대폭 감소 |
| Drizzle ORM | TypeScript 네이티브 SQL 쿼리 빌더. Prisma 대비 가볍고 SQL에 가까운 철학 |
| neverthrow | TypeScript용 Result 타입 라이브러리. Rust의 Result<T,E> 패턴 구현 |
| Better Auth | 조직(Organization) 멀티테넌트를 지원하는 인증 라이브러리 |
| Biome | ESLint+Prettier를 하나로 대체하는 올인원 린터/포매터. Rust로 작성되어 초고속 |
| Turborepo | Vercel의 모노레포 빌드 시스템. 태스크 의존 그래프 + 원격 캐싱 |
| MemoryBench | Supermemory가 만든 오픈소스 AI 메모리 벤치마킹 프레임워크 |
| IngestContentWorkflow | 콘텐츠 인제스트 6단계 파이프라인 (타입 감지→요약→태깅→임베딩→청킹→관계 매핑) |
| Connector | 외부 서비스(GDrive·Notion 등)와 실시간 웹훅으로 동기화하는 데이터 소스 어댑터 |
| LongMemEval | 장기 기억 능력을 측정하는 대화 벤치마크. Supermemory 81.6%로 1위 |