supermemory
무엇인가
Supermemory는 AI 애플리케이션과 코딩 에이전트에 장기 기억을 붙이는 메모리·컨텍스트 계층이다. 벡터 DB 설정, 임베딩 파이프라인, 청킹 전략을 각각 조립하던 자리를 하나의 API로 대체한다. 대화에서 추출한 사실, 사용자 프로필, 문서 검색(RAG), 외부 데이터 커넥터를 같은 메모리 구조와 온톨로지 안에서 처리한다.
어떻게 동작하나
동작은 수집, 추출, 프로필, 검색으로 나뉜다. 대화가 들어오면 사실과 선호, 프로젝트 맥락을 추출해 저장하고, 지식 갱신과 모순을 처리하며 만료된 정보를 제거한다. 사용자별 프로필은 별도 호출로 약 50ms에 반환되어 시스템 프롬프트에 주입된다. 기억은 프로젝트(컨테이너 태그)로 범위가 나뉘어 업무·개인·클라이언트 단위로 분리된다. 커넥터는 Google Drive, Gmail, Notion, OneDrive, GitHub, 웹 크롤러를 웹훅으로 동기화하고 문서를 청킹해 검색 대상에 넣는다.
무엇과 다른가
일반적인 메모리 구현은 검색을 전제로 하므로 무엇을 물어볼지 미리 알아야 한다. Supermemory는 프로필을 자동으로 유지해 검색 없이 호출 한 번으로 사용자 맥락을 꺼낸다. 로컬 실행판과 호스팅 플랫폼이 같은 Memory API를 쓰므로 baseURL만 바꾸면 로컬 프로토타입을 그대로 배포할 수 있다. 로컬 모드는 임베디드 그래프 엔진과 로컬 임베딩을 단일 바이너리 첫 부팅에서 구성한다.
어떻게 쓰나
코딩 도구에는 플러그인을 설치하거나 MCP 서버 URL을 MCP 클라이언트 설정에 넣는다. 플러그인은 Claude Code, Cursor, Codex, OpenCode, OpenClaw, Hermes용이 각각 별도 저장소로 공개되어 있고, MCP는 Claude Desktop, Cursor, Windsurf, VS Code 등에서 동작한다. 애플리케이션에 붙일 때는 SDK를 설치해 메모리 추가·검색·프로필 조회를 호출하고, Vercel AI SDK, LangChain, LangGraph, OpenAI Agents SDK, Mastra, Agno, n8n용 래퍼를 쓸 수 있다. 로컬 실행은 바이너리를 띄우면 첫 부팅 마법사가 모델 제공자를 묻고 API 키를 출력하며, 엔드포인트는 http://localhost:6767이다.
전제와 한계
임베딩 기본값은 로컬 Xenova/bge-base-en-v1.5로 API 키가 필요 없고 OpenAI·Gemini·Ollama로 교체할 수 있다. 모델은 OpenAI, Anthropic, Gemini, Groq 또는 OpenAI 호환 엔드포인트를 쓰며 Ollama(gpt-oss:20b)로 완전 오프라인 실행이 가능하다. 로컬 데이터는 전부 ./.supermemory 디렉터리에 모여 백업과 이동이 단순하다. 저장소는 TypeScript로 작성됐고, 커넥터와 클라이언트 지원 범위는 README에 열거된 목록이 전부다.
관련 논문 5
유사 도구
- claude-mem에이전트 세션의 작업 기록을 AI로 압축해 SQLite에 저장하고, 다음 세션에 관련 컨텍스트를 주입하는 TypeScript 기반 CLI 메모리 계층이다.
- letta에이전트의 기억과 정체성을 대화 세션 밖에 보관하는 상태 유지 에이전트 플랫폼이다. 터미널 UI, App Server, TypeScript SDK로 같은 에이전트에 접속한다.
- byterover-cli프로젝트 지식을 컨텍스트 트리로 큐레이션해 AI 코딩 에이전트에 영구 기억으로 붙이는 TypeScript CLI다. git식 버전 관리와 클라우드 동기화를 쓴다.
- memU에이전트 세션 기록에서 재사용 가능한 스킬 Markdown을 자동 추출하고, 답변 전 관련 기억을 검색하도록 호스트 지시 파일에 상시 규칙을 심는 메모리 스킬 묶음이다.
- octocode로컬 코드와 GitHub 저장소를 ripgrep·AST·LSP로 검색해 AI 에이전트에 토큰 효율적인 근거 컨텍스트를 돌려주는 Rust 엔진 기반 CLI·MCP 서버다.
- wigoloAI 에이전트에 검색·fetch·크롤·추출·캐시를 MCP 한 표면으로 제공하는 로컬 우선 웹 계층이다. API 키 없이 공개 엔진을 직접 호출하고 결과를 ~/.wigolo/에 캐시한다.