AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Supermemory 튜토리얼 – AI SDK 에이전트에 장기 기억 붙이기

supermemory를 Vercel AI SDK 기반 에이전트에 연결하면 매 요청마다 초기화되는 ToolLoopAgentgenerateText 루프에 사용자 기억, 프로필, 검색 컨텍스트를 추가할 수 있다. 핵심은 모델 호출을 갈아엎는 것이 아니라 Supermemory 도구를 AI SDK tools 목록에 주입하고, 호출 전후로 관련 기억을 읽고 쓰게 만드는 것이다.

왜 AI SDK에 별도 메모리가 필요한가

AI SDK는 모델 호출, 스트리밍, 툴 호출 오케스트레이션을 잘 처리하지만 세션이 끝난 뒤 사용자의 선호·이전 작업·미해결 이슈를 자동으로 유지하지 않는다. 단순 벡터 DB를 붙이면 비슷한 텍스트 청크는 찾을 수 있지만, 사용자가 누구인지와 시간에 따라 변한 사실을 구조적으로 관리하기 어렵다.

Supermemory는 이 빈틈을 다음 기능으로 채운다.

기능AI SDK에서 해결하는 문제
메모리 그래프여러 세션과 툴 루프에 걸친 관계와 변경 사항 유지
사용자 프로필매 요청마다 수동으로 시스템 프롬프트에 선호도를 붙이는 작업 제거
하이브리드 검색벡터 검색과 키워드 검색, 재랭킹을 결합해 관련 컨텍스트 주입
멀티모달 추출문서·이미지·영상·코드에서 기억 후보를 추출

설치

npm i supermemory

API 키는 Supermemory 콘솔에서 발급한 뒤 환경 변수로 둔다.

export SUPERMEMORY_API_KEY="..."

AI SDK 도구로 주입하기

Supermemory의 AI SDK 통합은 @supermemory/tools/ai-sdksupermemoryTools를 통해 이뤄진다.

import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { supermemoryTools } from "@supermemory/tools/ai-sdk";

const result = await generateText({
  model: openai("gpt-4o-mini"),
  prompt: "지난번에 내가 진행하던 리팩터링 다음 단계가 뭐였지?",
  tools: supermemoryTools({
    apiKey: process.env.SUPERMEMORY_API_KEY!,
  }),
});

이 방식은 모델 제공자와 강하게 결합되지 않는다. AI SDK가 지원하는 모델이라면 동일한 툴 인터페이스로 메모리를 붙일 수 있다.

ToolLoopAgent에서의 패턴

장기 실행 에이전트에서는 대화 루프가 여러 툴 호출을 거친다. 이때 Supermemory는 두 지점에 들어간다.

  1. 생성 전: 현재 사용자·프로젝트와 관련된 기억을 검색해 컨텍스트로 주입한다.
  2. 생성 후: 새로 확인된 사실, 결정, 선호도, 작업 결과를 기억으로 저장한다.

이 패턴은 long-running-agents의 상태 지속성 문제와도 연결된다. 단기 세션 상태는 ADK·서버 세션이 들고, 사용자의 장기 취향과 프로젝트 맥락은 Supermemory가 들게 나누면 컨텍스트 창을 덜 오염시킨다.

운영 시 주의점

  • 기억 범위: 사용자, 조직, 프로젝트 단위를 명확히 나누어 다른 고객의 기억이 섞이지 않게 한다.
  • 삭제 정책: 사용자가 “기억하지 말라”고 한 내용은 즉시 삭제 가능한 경로를 둔다.
  • 민감정보: 개인정보·비밀키·계약 정보는 pii-proxy 같은 프록시나 가드레일을 먼저 통과시킨다.
  • 평가: 단순 recall@k뿐 아니라 잘못된 기억을 주입했을 때 에이전트가 어떻게 행동하는지 회귀 테스트한다.

누가 쓰면 좋은가

AI SDK로 고객지원 봇, 개인 비서, 코딩 보조 에이전트, 장기 프로젝트 에이전트를 만드는 팀에 적합하다. 반대로 한 번 묻고 끝나는 단발 Q&A나 익명 트래픽 중심 서비스라면 메모리 레이어보다 비용·지연 최적화가 먼저다.

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)