모든 AI 메모리를 똑같이 대하지 마세요 — 코텍스, 잊어버린 사람은?

발행: (2026년 2월 5일 오전 04:52 GMT+9)
12 min read
원문: Dev.to

Source: Dev.to

모든 AI 메모리를 동일하게 취급하지 마세요: 잊어버리는 Cortex 소개

요약

AI 시스템은 종종 메모리를 하나의 거대한 저장소로 가정하고, 필요에 따라 언제든지 전체 컨텍스트를 불러올 수 있다고 생각합니다. 인간의 기억은 선택적이며, 중요한 정보는 오래 보존하고 덜 중요한 정보는 자연스럽게 사라집니다. 이 글에서는 Cortex라는 새로운 메모리 프레임워크를 소개하고, “잊음”을 의도적으로 설계함으로써 더 효율적이고 인간‑같은 대화를 구현하는 방법을 설명합니다.

왜 “잊음”이 필요한가?

  • 토큰 제한: 대부분의 LLM은 입력 토큰 수에 제한이 있습니다. 오래된 대화 기록을 모두 포함하면 최신 질문에 충분한 토큰을 할당하지 못합니다.
  • 노이즈 감소: 오래된, 관련성이 낮은 정보가 모델의 응답을 흐릴 수 있습니다.
  • 인간‑같은 기억 구조: 인간은 단기 기억(몇 초몇 분)과 장기 기억(수일수년)을 구분합니다. 중요한 사건은 장기 기억에 저장되고, 일상적인 대화는 빠르게 사라집니다.

Cortex의 핵심 아이디어

  1. 두 단계 메모리

    • Short‑Term Store (STS): 최근 대화와 즉시 필요한 정보를 저장합니다.
    • Long‑Term Store (LTS): 벡터 임베딩을 사용해 의미 기반 검색이 가능한 영구 저장소입니다.
  2. 자동 “잊기” 정책

    • 일정 시간(예: 30분) 혹은 토큰 사용량 초과 시 STS의 오래된 항목을 LTS에 압축하고 삭제합니다.
    • 압축 과정에서 핵심 요약을 생성해 LTS에 저장하므로, 필요 시 다시 검색할 수 있습니다.
  3. 컨텍스트 재구성

    • 사용자가 새로운 질문을 할 때, Cortex는 STS와 LTS를 모두 검색해 가장 관련성 높은 조각들을 선택하고, 이를 프롬프트에 삽입합니다.

구현 예시 (Python)

from cortex import Cortex, ShortTermStore, LongTermStore

# 1️⃣ Short‑Term Store 초기화 (메모리 제한 2,000 토큰)
sts = ShortTermStore(max_tokens=2000)

# 2️⃣ Long‑Term Store 초기화 (FAISS + OpenAI embeddings)
lts = LongTermStore(embedding_model="text-embedding-ada-002")

# 3️⃣ Cortex 인스턴스 생성
cortex = Cortex(sts=sts, lts=lts, forget_interval=1800)  # 30분마다 자동 압축

# 대화 흐름에 따라 메모리 추가
def add_user_message(message: str):
    cortex.sts.add(message, role="user")
    # 필요 시 LTS에 요약 저장
    if cortex.sts.needs_forgetting():
        summary = cortex.summarize_sts()
        cortex.lts.upsert(summary)

# 모델 호출 전 컨텍스트 준비
def build_prompt(new_query: str):
    relevant_chunks = cortex.retrieve(new_query, top_k=5)
    prompt = "\n".join(relevant_chunks + [new_query])
    return prompt

Note: 위 코드는 개념을 보여주기 위한 간단한 예시이며, 실제 프로젝트에서는 오류 처리, 비동기 I/O, 보안 등을 추가해야 합니다.

실제 사용 사례

시나리오문제점Cortex 적용 효과
고객 지원 챗봇오래된 티켓 정보가 토큰을 차지오래된 티켓을 요약·압축 → 최신 문의에 집중
교육용 튜터학습 세션이 길어질수록 컨텍스트 오버플로세션별 핵심 개념을 LTS에 저장, 필요 시 재검색
개인 비서일일 일정·메모가 누적하루가 끝날 때 자동 요약·보관, 다음 날엔 최신 일정만 STS에 유지

장점 요약

  • 토큰 효율성: STS가 항상 최신 컨텍스트만 보관하므로 모델 호출당 토큰 사용량이 크게 감소합니다.
  • 인간‑같은 기억 흐름: 중요한 정보는 장기 저장소에 보존되고, 일시적인 대화는 자연스럽게 사라집니다.
  • 확장성: LTS는 벡터 데이터베이스(FAISS, Pinecone 등)와 쉽게 연동돼 수백만 개의 문서도 빠르게 검색할 수 있습니다.

한계와 앞으로의 과제

  • 요약 품질: 자동 요약이 원본 의미를 손실할 위험이 있습니다. 고품질 요약 모델을 지속적으로 개선해야 합니다.
  • 잊음 정책 튜닝: 각 도메인마다 최적의 “잊음” 주기와 토큰 한계가 다릅니다. 실험을 통해 파라미터를 조정해야 합니다.
  • 보안·프라이버시: 장기 저장소에 민감한 데이터가 보관될 경우 암호화와 접근 제어가 필수입니다.

결론

Cortex는 **“잊음”**을 설계에 포함시킴으로써, 토큰 제한과 노이즈 문제를 해결하고 인간 기억의 구조를 모방합니다. 메모리를 단기·장기로 구분하고 자동 압축·삭제 정책을 적용하면, 더 자연스럽고 효율적인 LLM 기반 애플리케이션을 만들 수 있습니다.

다음 단계: 여러분의 프로젝트에 Cortex를 도입하고, 잊음 정책을 실험해 보세요. 기억을 관리하는 새로운 방법이 AI와 인간 사이의 상호작용을 한층 끈끈하게 만들어 줄 것입니다.

Uniform AI 메모리의 문제점

빠른 사실(예: “PostgreSQL은 포트 5432에서 실행됩니다”)은 학습된 패턴(예: “고 트래픽 서비스에는 항상 연결 풀링을 사용하세요”)과 동일하지 않습니다.
배포 이벤트는 사용자 선호와 동일하지 않습니다.

대부분의 AI 메모리 솔루션—RAG, 벡터 스토어, 단순 키‑값 캐시—은 모든 것을 같은 버킷에 넣습니다. 일회성 디버그 메모가 중요한 아키텍처 결정 옆에 같은 우선순위, 같은 검색 가중치, 같은 수명으로 놓여 있습니다.

Result: 불필요한 잡음으로 가득 찬 비대해진 컨텍스트 윈도우. AI가 매일 사용하는 패턴과 같은 확신으로 6개월 전 버그 수정 사항을 검색합니다.

Cortex: 다단계 분류

Titan Memory는 Cortex를 포함하며, 다단계 분류기로 모든 들어오는 메모리를 다섯 가지 인지 카테고리 중 하나로 라우팅합니다.

카테고리저장 내용감소 속도
지식사실, 정의, 기술 정보느림 — 사실은 지속됩니다
프로필선호도, 설정, 사용자 컨텍스트매우 느림 — 선호도가 유지됩니다
이벤트세션, 배포, 사고빠름 — 이벤트는 사라집니다
행동패턴, 습관, 워크플로느림 — 패턴은 가치가 있습니다
스킬기술, 솔루션, 모범 사례매우 느림 — 스킬은 오래 지속됩니다

각 카테고리는 서로 다른 속도로 감소합니다. 지난 화요일에 발생한 오류는 빠르게 사라지는 반면, 여러 프로젝트에 걸쳐 사용된 배포 패턴은 지속됩니다.

검색 파이프라인

회수를 할 때, Cortex는 단순히 top‑K 벡터를 반환하는 것을 넘어 다음을 수행합니다:

  1. 하이브리드 검색 (밀집 벡터 + BM25)으로 상위 후보를 검색합니다.
  2. 검색된 문서의 문장 분할.
  3. 0.6 B 파라미터 인코더를 사용한 각 문장의 의미 점수화.
  4. 관련성 임계값 이하의 문장을 제거합니다.
  5. 시간적 충돌 해결 (새로운 정보가 우선).
  6. 카테고리 커버리지 검사를 통해 가장 높은 점수의 임베딩만이 아니라 균형 잡힌 회수를 보장합니다.

결과: 매 회수마다 70–80 % 토큰 압축을 달성하며, 가장 관련성 높은 (“골드”) 문장만 LLM에 전달됩니다.

설치

claude mcp add titan-memory -- node ~/.claude/titan-memory/bin/titan-mcp.js

사용 예시

스킬 저장

titan_add("Always use connection pooling for high‑traffic Postgres services")
# → Classified: Skill (confidence: 0.94)
# → Routed to Layer 4 (Semantic Memory)
# → Decay half‑life: 270 days

이벤트 저장

titan_add("Deployed v2.3 to production, rolled back due to memory leak")
# → Classified: Event (confidence: 0.91)
# → Routed to Layer 5 (Episodic Memory)
# → Decay half‑life: 90 days

정보 회수

titan_recall("Postgres performance best practices")
# → Returns the connection‑pooling skill (still strong after 6 months)
# → The deployment event has decayed unless explicitly requested

아키텍처 개요

Titan Memory는 5‑계층 인지 메모리 시스템으로, MCP 서버 형태로 제공됩니다:

LayerDescription
Layer 1 – Working Memory현재 활성 컨텍스트 윈도우
Layer 2 – Factual MemoryO(1) 해시 조회, 10 ms 이하 지연
Layer 3 – Long‑Term Memory서프라이즈 필터링, 적응형 감쇠
Layer 4 – Semantic Memory패턴, 추론 체인
Layer 5 – Episodic Memory세션 로그, 타임스탬프

Cortex는 하나의 구성 요소이며, 시스템에는 다음도 포함됩니다:

  • 의미 강조
  • 서프라이즈 기반 저장 필터링
  • RRF 재정렬을 이용한 하이브리드 검색
  • 프로젝트 간 패턴 전이

테스트 스위트는 914개의 통과 테스트를 보고하며, 시스템은 Claude Code, Cursor 또는 any MCP‑compatible client와 함께 작동합니다.

라이선스 및 출처

  • GitHub:
  • License: Apache 2.0
Back to Blog

관련 글

더 보기 »