Note

Memory

MemoryManager — Recall/Injection/Extraction 장기 기억

⏱ 35분 90 / 189

Memory

MemoryManager — Recall/Injection/Extraction 장기 기억

에이전트의 기억을 설계한다

세션 영속화부터 컨텍스트 자동 관리까지 — 상태의 4계층

Memory

MemoryManager · Recall · Injection · Extraction

PART 5 · Memory

MemoryManager

장기 기억 계층 — 세션이 끝나도 남는 사실과 선호를 축적

MemoryManager

대화에서 기억할 사실을 추출해 저장하고, 관련 기억을 찾아 컨텍스트에 주입합니다

  • Extraction — 대화에서 사실 추출
  • Storage — 스토어에 저장
  • Recall — 관련 기억 검색
  • Injection — 컨텍스트 주입
takeaway

Session이 이 대화를 기억한다면, Memory는 이 사용자를 기억합니다.

PART 5 · Memory

MemoryManager 기억 사이클

추출·저장은 쓰기, 검색·주입은 읽기 — 네 단계 모두 자동, 개발자는 스토어만 연결

PART 5 · Memory

Memory 구현

MemoryManager 설정으로 장기 기억 활성화

핵심 포인트

BedrockKnowledgeBaseStore
장기 기억 저장소 — knowledge_base_id로 연결
MemoryManager(stores=)
스토어 리스트 장착 — 검색·추출·주입이 자동
쓰기
대화에서 기억할 사실을 추출해 스토어에 기록
읽기
질문과 관련된 기억만 recall해 컨텍스트에 주입

코드

python
from strands import Agent
from strands.memory import MemoryManager
from strands.vended_memory_stores import BedrockKnowledgeBaseStore

# 스토어 — Bedrock Knowledge Base를 장기 기억 저장소로
store = BedrockKnowledgeBaseStore(
    config={"knowledge_base_id": "KB12345678"},
    name="user-memory",
)

# 매니저 장착 — 검색·추출·주입 자동
agent = Agent(memory_manager=MemoryManager(stores=[store]))

# 첫 대화 — 기억 추출 + 저장
agent("나는 Python과 us-east-1 리전을 선호해")

# 나중 대화 — 자동 recall + injection
agent("새 Lambda 함수를 만들어줘")  # Python + us-east-1 자동 적용
PART 5 · Memory

Memory 활용 패턴

장기 기억으로 에이전트의 개인화 수준을 높이는 3가지 패턴

사용자 선호도

언어, 리전, 코딩 스타일, 출력 형식 등 반복되는 선호 축적

과거 결정 이력

이전 작업의 결과와 결정을 기억하여 일관성 유지

도메인 지식

프로젝트 구조, 팀 컨벤션, 비즈니스 규칙을 축적

takeaway

세 패턴의 공통점 — 말하지 않아도 아는 에이전트를 만드는 재료입니다.

상태 관리가 에이전트의 지능을 결정합니다.

Session · Conversation · Memory · Context — 4계층으로 기억을 설계