Skip to main content

Agent Core Memory

강의 요약: Agent Core Memory

1. Memory의 목적

Agent Core Memory는 에이전트가 이전 대화, 사용자 선호, 과거 작업 내용을 기억하게 해주는 기능입니다.

기존 LLM은 대화가 끝나거나 컨텍스트 윈도우를 벗어나면 정보를 잊습니다. Memory는 이 한계를 보완해 개인화된 에이전트 경험을 만들기 위한 컴포넌트입니다.

2. 왜 Memory가 필요한가

LLM은 기본적으로 컨텍스트 윈도우 안의 정보만 기억합니다.

문제는 다음과 같습니다.

문제설명
컨텍스트 제한모든 과거 대화를 매번 넣을 수 없음
비용 증가토큰이 많아질수록 호출 비용 증가
속도 저하긴 컨텍스트는 응답 속도를 늦춤
개인화 부족사용자의 과거 선호를 기억하지 못함

따라서 운영 환경의 에이전트는 별도 저장소와 메모리 관리가 필요합니다.

3. Agent Core Memory가 해주는 일

Agent Core Memory는 직접 DB나 벡터 저장소를 만들지 않아도 다음을 처리해줍니다.

기능설명
대화 저장사용자와 에이전트의 메시지 저장
도구 호출 저장Tool invocation과 결과 저장
단기 메모리세션 단위 대화 이력 저장
장기 메모리선호, 요약, 지식, 학습 내용 추출
비동기 분석과거 대화를 분석해 장기 기억 생성
Namespace 관리사용자별·세션별 메모리 분리

4. Short-term Memory

Short-term Memory는 사용자와 에이전트의 실제 상호작용 기록입니다.

저장되는 항목은 다음과 같습니다.

항목예시
User message사용자의 질문
Agent response에이전트 답변
Tool call호출한 도구
Tool result도구에서 반환된 구조화 데이터

보관 기간은 7일~365일 사이에서 설정할 수 있습니다.

즉, Short-term Memory는 “이전에 어떤 대화를 했는가?”를 그대로 저장하는 영역입니다.

5. Long-term Memory

Long-term Memory는 Short-term Memory를 분석해 중요한 정보만 추출한 기억입니다.

예를 들어:

사용자: 나는 ANA 항공을 선호하고, 호텔은 조용한 곳을 좋아해.

Short-term Memory에는 이 문장이 그대로 저장됩니다.

Long-term Memory에는 다음처럼 구조화될 수 있습니다.

{
"airline_preference": ["ANA"],
"hotel_preference": "quiet hotel"
}

즉, Long-term Memory는 단순 대화 로그가 아니라 재사용 가능한 지식·선호·요약 정보입니다.

6. Memory의 주요 ID 개념

Agent Core Memory에서는 다음 ID 구조를 이해해야 합니다.

개념의미
Memory ID사용자별 큰 메모리 버킷
Session ID특정 대화 세션
Actor ID메시지 작성자 구분
Event저장되는 상호작용 단위
Namespace장기 메모리 저장 경로 구조

7. Memory ID

Memory ID는 특정 사용자에게 연결된 큰 메모리 공간입니다.

예를 들어 사용자 A가 여러 번 에이전트와 대화했다면, 그 모든 세션의 단기·장기 메모리가 하나의 Memory ID 아래에 저장됩니다.

Memory ID: user_123
├─ Session 1
├─ Session 2
└─ Session 3

8. Session ID

Session ID는 하나의 대화 흐름을 구분하는 값입니다.

사용자가 오늘 한 대화와 다음 주에 한 대화는 서로 다른 Session ID를 가질 수 있습니다.

User A
├─ session_001: 오늘 대화
├─ session_002: 내일 대화
└─ session_003: 다음 주 대화

9. Actor ID

Actor ID는 메시지가 누구에게서 왔는지 구분합니다.

보통 다음 두 가지입니다.

Actor의미
User사용자가 보낸 메시지
Agent에이전트가 보낸 응답

이 구분이 있어야 나중에 장기 메모리를 만들 때 사용자의 선호에이전트의 답변을 구분할 수 있습니다.

10. Event

Event는 메모리에 저장되는 기본 단위입니다.

예를 들어:

  • 사용자 메시지 1개
  • 에이전트 응답 1개
  • 도구 호출 1개
  • 도구 결과 1개

를 각각 Event로 저장할 수 있습니다.

다만 비용 최적화를 위해 매번 하나씩 저장하기보다 Batching이 중요합니다.

11. Batching이 중요한 이유

Agent Core Memory의 단기 메모리 비용은 Event 수에 영향을 받습니다.

따라서 모든 메시지를 개별 Event로 저장하면 비용이 커집니다.

예를 들어:

방식설명
메시지마다 Event 생성비용 증가
세션 단위로 Batch 저장비용 절감

강의 예시에서는 세션의 20개 턴을 하나씩 저장하는 대신, 하나의 Event로 묶으면 단기 메모리 비용을 약 20분의 1로 줄일 수 있다고 설명합니다.

12. Long-term Memory 생성 방식

Long-term Memory는 Short-term Memory를 기반으로 비동기 Job이 생성합니다.

흐름은 다음과 같습니다.

  1. 사용자와 에이전트가 대화
  2. Short-term Memory에 Event 저장
  3. Agent Core가 비동기 Job 실행
  4. LLM이 과거 대화를 분석
  5. 선호, 요약, 지식 등을 추출
  6. Long-term Memory에 저장

개발자가 직접 분석 파이프라인을 만들 필요가 없습니다.

13. Long-term Memory 전략

Agent Core Memory는 여러 장기 메모리 전략을 제공합니다.

전략설명예시
Semantic의미 기반 지식 조각 저장과거 해결된 지원 티켓
Summary대화 요약 저장이전 프로젝트 논의 요약
User Preference사용자 선호 저장선호 항공사, 연락 방식
Episodic경험·학습·반성까지 저장이전 상호작용에서 얻은 교훈
Custom직접 정의한 추출·저장 방식JSON 스키마 기반 선호 구조화

14. Semantic Memory

Semantic Memory는 의미 기반 지식 저장에 적합합니다.

예를 들어 고객 지원 에이전트에서 과거에 해결했던 문제를 저장해두면, 비슷한 문제가 다시 들어왔을 때 빠르게 해결책을 찾을 수 있습니다.

이전 티켓에서 해결된 문제 → 다음 유사 티켓에 재사용

15. Summary Memory

Summary Memory는 이전 대화 내용을 요약해 저장합니다.

사용자가 다시 돌아와서 “지난번에 하던 프로젝트 이어서 해줘”라고 할 때 유용합니다.

전체 대화 로그를 다시 넣지 않고도 핵심 내용을 불러올 수 있습니다.

16. User Preference Memory

User Preference Memory는 사용자의 선호를 저장합니다.

예시:

도메인저장 가능한 선호
여행선호 항공사, 호텔 스타일
쇼핑좋아하는 브랜드, 가격대
고객지원선호 연락 방식
피트니스식단 제한, 운동 스타일

개인화 에이전트에 가장 직접적으로 필요한 전략입니다.

17. Episodic Memory

Episodic Memory는 단순 정보 저장을 넘어, 과거 상호작용에서 배운 점까지 저장합니다.

강의에서는 이를 “사용자만을 위한 자동 생성 위키피디아”에 비유합니다.

특징은 다음과 같습니다.

특징설명
Semantic 포함의미 있는 지식 저장
Summary 포함대화 요약 저장
Reflection 포함무엇을 배웠는지 반성
Future-use 중심다음 상호작용에 도움 되는 학습 저장

18. Custom Memory

기본 전략으로 부족하면 Custom Memory를 만들 수 있습니다.

Custom Memory에서는 두 가지 Prompt를 정의합니다.

Prompt역할
Extraction Prompt어떤 정보를 뽑을지 정의
Consolidation Prompt어떤 구조로 저장할지 정의

예를 들어 여행 에이전트라면 다음처럼 저장할 수 있습니다.

{
"airline_preferences": {
"international": ["JAL", "ANA"],
"domestic": ["Delta"]
},
"hotel_preferences": {
"style": "quiet",
"priority": "high"
},
"confidence": 0.87
}

장점은 downstream 시스템에서 바로 쓰기 좋은 구조로 저장할 수 있다는 점입니다.

19. Namespace 구조

Namespace는 장기 메모리를 정리하는 폴더 구조입니다.

보통 다음처럼 구성됩니다.

/strategy_id/actor_id/session_id

예시:

/summary/user_123/session_001
/preference/user_123/session_002
/semantic/user_123/session_003

Namespace를 잘 설계하면 다음이 가능합니다.

조회 방식예시
사용자 전체 조회user_123의 모든 장기 기억
특정 세션 조회session_001의 요약
전략별 조회preference만 조회
전체 사용자 조회모든 사용자의 semantic memory 조회

단, Namespace 권한 설계를 잘못하면 다른 사용자의 메모리에 접근할 위험이 있으므로 주의해야 합니다.

20. 비용 구조

Agent Core Memory 비용은 크게 세 부분입니다.

비용 항목기준
Short-term MemoryEvent 저장·조회 수
Long-term Memory 저장Memory record 저장 수
Long-term Memory 조회Memory record 조회 수

강의 예시:

항목예시 가격
Short-term Memory1,000 Event당 $0.25
Long-term Memory 저장1,000 Record당 $0.75
Long-term Memory 조회1,000 Record당 $0.50

Custom Strategy는 기본 저장 비용이 더 낮을 수 있지만, 별도 LLM 호출 토큰 비용이 추가됩니다.

21. 비용 최적화 포인트

가장 중요한 최적화는 Event Batching입니다.

예시 시나리오:

조건
사용자 수1,000명
사용자당 월 세션10개
세션당 메시지 턴20개

메시지마다 Event를 만들면 단기 메모리 비용이 커집니다. 세션 단위로 묶어 저장하면 Event 수가 줄어 비용을 크게 낮출 수 있습니다.

22. 실제 사용 사례: 고객지원 에이전트

고객지원 에이전트에서는 다음처럼 사용할 수 있습니다.

메모리 종류저장 내용
Short-term Memory고객과 상담 에이전트의 이전 대화
Long-term Memory고객 선호, 지원 등급, 과거 문제

예시:

  • 이 고객은 전화보다 이메일을 선호한다.
  • 이 고객은 프리미엄 지원 플랜을 사용한다.
  • 이 고객은 특정 제품에서 반복 문제가 있었다.

이런 정보가 있으면 고객이 매번 같은 내용을 설명하지 않아도 됩니다.

23. Memory를 써야 하는 경우

Memory가 필요한 경우는 다음과 같습니다.

상황Memory 필요
개인화가 필요함필요
이전 대화를 이어가야 함필요
사용자 선호를 저장해야 함필요
과거 문제를 재사용해야 함필요
여러 에이전트가 기억을 공유해야 함필요 가능

24. Memory가 필요 없는 경우

다음 경우에는 굳이 Memory를 쓰지 않아도 됩니다.

상황이유
단발성 질의응답기억 불필요
Stateless 작업이전 맥락 필요 없음
비용을 최소화해야 함메모리 저장 비용 절약
개인화가 전혀 없음장기 기억 필요 없음

예를 들어 단순 번역, 단발성 계산, 단일 API 호출에는 Memory가 과할 수 있습니다.

25. Capstone 프로젝트에서의 적용

강의 실습에서는 기존 Agent Core Runtime 기반 에이전트에 Memory를 추가합니다.

구조는 다음과 같습니다.

User
→ Agent Core Runtime
→ Agent Core Memory

에이전트는 Memory를 호출해 이전 대화, 사용자 선호, 장기 기억을 가져오고, 이를 현재 프롬프트와 결합해 더 개인화된 답변을 생성합니다.

26. 핵심 결론

  • LLM은 기본적으로 컨텍스트 윈도우 밖의 내용을 기억하지 못한다.
  • Agent Core Memory는 에이전트에 단기·장기 기억을 추가한다.
  • Short-term Memory는 실제 대화와 도구 호출 로그를 저장한다.
  • Long-term Memory는 대화에서 선호, 요약, 지식, 경험을 추출한다.
  • 핵심 ID는 Memory ID, Session ID, Actor ID, Event, Namespace다.
  • 장기 메모리 전략은 Semantic, Summary, User Preference, Episodic, Custom으로 나눌 수 있다.
  • 비용 최적화를 위해 Event를 세션 단위로 Batch 처리하는 것이 중요하다.
  • 개인화, 이전 대화 이어가기, 사용자 선호 반영이 필요한 에이전트라면 Memory가 핵심 컴포넌트다.