Skip to main content

Supermemory: AI 에이전트를 위한 지식 그래프 기반 메모리 API 심층 분석

Published 6 min readMarkdown

Supermemory: AI 에이전트를 위한 지식 그래프 기반 메모리 API 심층 분석

AI 에이전트의 가장 근본적인 한계 중 하나는 "기억"입니다. 세션이 끝나면 모든 맥락이 사라지고, RAG(Retrieval-Augmented Generation)로 벡터 DB를 붙여도 "유사한 텍스트 찾기"와 "기억하기"는 근본적으로 다른 문제입니다.

Supermemory는 이 문제를 지식 그래프 기반 아키텍처로 해결하며, LongMemEval 벤치마크에서 SOTA(85.86%)를 달성한 메모리 API 플랫폼입니다. 이 글에서는 기술 아키텍처, 벤치마크 분석, 경쟁사 비교, 실전 통합 방법까지 심층적으로 다룹니다.

아키텍처: 벡터 검색 vs 지식 그래프

기존 RAG 파이프라인의 한계

일반적인 RAG 시스템은 다음 흐름을 따릅니다:

문서 → 청킹 → 임베딩 → 벡터 DB → 코사인 유사도 검색 → LLM 컨텍스트 주입

이 접근법의 한계:

  • 정보 갱신 불가: "A가 맞다" → "B가 맞다"로 바뀌어도 두 청크 모두 검색됨
  • 암묵적 관계 부재: 직접적으로 유사하지 않지만 관련 있는 정보 연결 불가
  • 감쇠 없음: 오래된 정보와 최신 정보의 가중치가 동일
  • 중복 누적: 같은 정보가 여러 청크에 반복 저장

Supermemory의 지식 그래프 접근

입력 데이터 → 정보 추출 → 노드/엣지 생성 → 지식 그래프 → 그래프 순회 + 벡터 검색 하이브리드
                              │
                              ├── 지능형 감쇠 (접근 빈도 기반)
                              ├── 암묵적 연결 (자동 엣지 생성)
                              ├── 모순 해결 (타임스탬프 기반)
                              └── 프로파일 추출 (사용자 선호도)
메커니즘벡터 DB RAGSupermemory
정보 갱신수동 삭제/재삽입자동 노드 병합/교체
관계 파악코사인 유사도만그래프 엣지 + 유사도
시간 감쇠없음접근 빈도 기반 가중치
중복 처리누적자동 병합
모순 처리불가타임스탬프 기반 우선순위
응답 시간10-200ms~50ms

기술 스택

구성 요소기술선택 이유
백엔드Hono경량 + Cloudflare Workers 호환
DBPostgreSQL + Drizzle ORM타입 안전 ORM + 확장성
검색커스텀 벡터 그래프 엔진하이브리드 검색 최적화
프론트엔드Next.jsSSR + ISR
브라우저 확장WXT크로스 브라우저
인프라Cloudflare Workers/D1/R2엣지 컴퓨팅, 월 $5 운영비

20K+ 사용자를 월 $5 인프라 비용으로 운영한다는 것은 Cloudflare Workers 아키텍처의 효율성을 보여줍니다.

벤치마크 심층 분석

LongMemEval SOTA

벤치마크Supermemory (Production)Supermemory (ASMR)비고
LongMemEval85.86%~99%ASMR은 실험적
LoCoMo1위-
ConvoMem1위-

핵심 구분: 마케팅에서 자주 인용되는 ~99% 수치는 Adaptive Supermemory Retrieval(ASMR) 시스템의 실험적 결과입니다. 실제 API를 통해 사용하는 프로덕션 시스템은 85.86%이며, 이 수치도 SOTA입니다.

LongMemEval이 측정하는 것

LongMemEval은 장기 대화에서의 메모리 유지 능력을 측정합니다:

  • 수백 턴의 대화 후 초기 정보 리콜
  • 업데이트된 정보의 올바른 반영
  • 관련 정보의 연결 능력
  • 무관한 정보 필터링

실전 통합 가이드

방법 1: AI SDK 미들웨어 (권장)

npm install @supermemory/ai-sdk ai @ai-sdk/openai
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { withSupermemory } from "@supermemory/ai-sdk";

// 기본 사용
const result = await generateText(
  withSupermemory(openai("gpt-4"), {
    apiKey: process.env.SUPERMEMORY_API_KEY,
    userId: "user-123",
    sessionId: "session-abc",  // 선택: 세션 단위 메모리
  }),
  { prompt: "지난주 프로젝트 미팅에서 결정한 사항은?" }
);

console.log(result.text);
// → "지난주 미팅에서 React 대신 Next.js 15를 사용하기로 했고,
//    마감일을 4월 15일로 설정했습니다."

방법 2: MCP 서버

// Claude Code: ~/.claude/claude_desktop_config.json
// Cursor: .cursor/mcp.json
{
  "mcpServers": {
    "supermemory": {
      "command": "npx",
      "args": ["-y", "@supermemory/mcp-server"],
      "env": {
        "SUPERMEMORY_API_KEY": "sm_your_api_key"
      }
    }
  }
}

MCP 서버가 제공하는 도구:

  • add_memory: 메모리 저장
  • search_memory: 시맨틱 검색
  • get_user_profile: 자동 프로파일 조회
  • list_memories: 목록 조회
  • delete_memory: 삭제

방법 3: REST API

# 메모리 저장
curl -X POST https://api.supermemory.ai/v1/memories \
  -H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "프로젝트 마감일: 4월 15일, 기술 스택: Next.js 15 + TypeScript",
    "userId": "user-123",
    "metadata": {"source": "meeting", "importance": "high"}
  }'

# 시맨틱 검색 (~50ms)
curl -X POST https://api.supermemory.ai/v1/memories/search \
  -H "Authorization: Bearer $SUPERMEMORY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "프로젝트 일정", "userId": "user-123", "limit": 5}'

방법 4: Function Calling

const memoryTools = [
  {
    type: "function",
    function: {
      name: "search_memory",
      description: "Search user's long-term memory",
      parameters: {
        type: "object",
        properties: {
          query: { type: "string" },
          userId: { type: "string" },
        },
        required: ["query", "userId"],
      },
    },
  },
];

경쟁사 비교: Mem0 vs Zep vs Letta vs OpenMemory

항목SupermemoryMem0ZepLetta
코어 아키텍처지식 그래프벡터 DB그래프+벡터에이전트 프레임워크
LongMemEval85.86% (SOTA)미공개미공개미공개
통합 난이도2줄SDKSDK프레임워크 종속
MCPOO제한적X
소비자 앱NovaXXX
셀프호스팅엔터프라이즈만부분 OSSOSSOSS
무료 티어1M 토큰/월제한적OO
검색 속도~50ms미공개미공개미공개

Scira AI 전환 사례 (Mem0 → Supermemory)

AI 검색 엔진 Scira AI의 마이그레이션 결과:

  • 사용량 32% 증가: 메모리 품질 향상 → 사용자 참여 증가
  • 레이턴시 대폭 감소: 검색 응답 개선
  • 커넥터 즉시 작동: Google Drive, Notion 등 별도 설정 불필요

이 사례는 Supermemory 자사 블로그뿐 아니라 LogRocket에서도 별도 보도되어 교차 검증됩니다.

가격 및 토큰 경제성

플랜월 비용토큰쿼리토큰당 비용
Free$01M10K$0
Pro$193M100K$0.0063/1K
Scale$39980M20M$0.0050/1K

무료 티어 1M 토큰은 약 2,000-10,000건의 메모리 작업을 처리할 수 있어, PoC나 개인 프로젝트에 충분합니다.

리스크 분석 및 주의사항

1. 오픈소스 표기의 실체

GitHub에 코드가 공개되어 있지만, ENTERPRISE_LICENSE 조항으로 셀프호스팅은 엔터프라이즈 계약 필요. 코드 참고와 기여는 가능하나 자체 인프라 운영은 불가.

2. 벤더 종속 완화 전략

// 추상화 레이어 예시
interface MemoryProvider {
  add(content: string, userId: string): Promise<void>;
  search(query: string, userId: string): Promise<Memory[]>;
}

class SupermemoryProvider implements MemoryProvider { /* ... */ }
class Mem0Provider implements MemoryProvider { /* ... */ }

3. 초기 단계 리스크

$2.6M 시드, 소규모 팀. Jeff Dean 등의 투자는 긍정적 신호이나, 프로덕션 의존도를 높이기 전에 SLA와 가용성을 검증하세요.

FAQ

Q: Supermemory와 단순 벡터 DB의 가장 큰 차이는?

벡터 DB는 "유사한 텍스트 찾기"이고, Supermemory는 "관계 이해 + 정보 갱신 + 감쇠"가 포함된 "기억하기"입니다.

Q: MCP 서버로 Claude Code에서 바로 사용 가능한가요?

네. npx -y @supermemory/mcp-server로 실행하고 API 키만 설정하면 바로 사용 가능합니다.

Q: 무료 티어의 1M 토큰은 어느 정도 규모인가요?

메모리 저장 1건당 100-500 토큰 기준, 약 2,000-10,000건 처리 가능. 일일 약 300건의 쿼리를 30일간 무료로 사용할 수 있습니다.

Q: Mem0에서 마이그레이션이 가능한가요?

공식 마이그레이션 도구는 없지만, API 레이어 교체 방식으로 전환 가능합니다. Scira AI 사례가 대표적입니다.

결론

Supermemory는 AI 에이전트 메모리 분야에서 기술적으로 가장 앞선 솔루션 중 하나입니다. 지식 그래프 기반 아키텍처는 벡터 검색의 한계를 실질적으로 해결하며, LongMemEval SOTA 달성으로 성능이 검증되었습니다.

개발자 경험 측면에서 2줄 미들웨어 통합과 MCP 서버 지원은 진입 장벽을 크게 낮추고, 넉넉한 무료 티어는 검증 비용을 최소화합니다.

다만 셀프호스팅 제한과 초기 단계 기업이라는 점은 프로덕션 도입 시 반드시 고려해야 합니다. 추상화 레이어를 두어 전환 가능성을 열어두는 것을 권장합니다.


참고 자료

No comments yet. Be the first to comment.

More from this blog