---
id: pattern-memory
title: "Memory Pattern"
category: "Pattern_AI"
status: "draft"
verification_status: "applied"
canonical_id: ""
aliases: ["Memory Pattern", "에이전트 메모리 패턴", "agent memory"]
duplicate_of: ""
source_trust_level: "A"
confidence_score: 0.89
created_at: 2026-06-13
updated_at: 2026-06-13
review_reason: ""
merge_history: []
tags: ["pattern", "ai", "memory", "agent", "platform-independent"]
raw_sources: ["일반 소프트웨어 공학 지식", "AstraAI/src/memory/* (적용 예)"]
applied_in: ["AstraAI"]
github_commit: ""
---

# [[Memory Pattern]]

## 🎯 한 줄 통찰 (One-line insight)
에이전트 메모리 패턴은 "대화/세션을 넘어 지식을 보존·회수" 하며, 단일 버퍼가 아니라 *수명·용도별 계층* 으로 나누고 관련도로 선별 주입할 때 작은 모델의 일관성이 크게 오른다.

## 🧠 핵심 개념 (Core concepts)
1. **단기:** 현재 대화(FIFO). 2. **장기:** 안정적 사실/선호(만료 가능). 3. **작업/프로젝트:** 작업 종속 지식. 4. **절차:** 반복 작업 방법. 5. **일화:** 과거 세션 요약. 회수 시 관련도순 선별.

## 📖 세부 내용 (Details · 패턴 명세)
- **Problem (언제 쓰나):** 에이전트가 세션을 넘어 사용자/프로젝트를 기억해야 할 때, 컨텍스트 한도가 빠듯할 때.
- **사용 조건:** 영속 저장 가능; 관련도 점수화 가능; 무엇을 어느 계층에 넣을지 분류 규칙 존재.
- **장점:** 일관성·개인화, 컨텍스트 정밀 선별, 시한부/영구 공존, 자동 정리(증류).
- **단점:** 분류 결정 비용, 저장/검색 인프라, 잘못된 회수 시 노이즈.
- **대안:** 무상태(매번 새로), 전체 이력 투입(짧을 때), 외부 RAG 로만 대체.
- **실패 사례:** 만료 없는 영구 저장으로 옛 사실 재현; 관련도 오선별로 핵심 누락; 계층 경계 모호로 중복.

## 💻 코드 패턴 (Code patterns)
```text
buildContext(query):
  layers = [shortTerm, longTerm(query), project(query), procedural(query), episodic(query)]
  return sort_by_relevance(layers).join()   # 빈 계층 제외
onSessionEnd(): extract -> persist -> distill(stale -> longterm digest)
```
적용 예: [[5계층 메모리 시스템]], [[AITRAIN 메모리 시스템]], 결정 [[ADR-0002 5계층 메모리 분리]].

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
계층이 많을수록 표현력↑ 결정 비용↑ — 명확한 분류 규칙이 없으면 단순 3계층(작업/세션/영구)이 낫다.

## 🛠️ 적용 사례 (Applied in summary)
AstraAI MemoryManager.

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[패턴 카탈로그 인덱스]]
- **관련 개념:** [[RAG Pattern]], [[Local Storage Pattern]], [[Offline Sync Pattern]]
- **참조 맥락:** 작은 모델이 기억하는 에이전트를 만들 때 참조.

## 📚 출처 (Sources)
- [S1] 일반 에이전트 메모리 지식
- [S2] AstraAI/src/memory/* — 적용 예

## 📝 변경 이력 (Change history)
- 2026-06-13: 프로젝트 독립 패턴 카드 작성.
