ADK(Agent Development Kit) 관련

ADK - Sessions & Memory

alienbuddy 2025. 7. 12. 12:17

✅ ADK 대화 문맥 구성요소 요약

📌 왜 Context가 중요한가?

  • **의미 있는 다중 턴 대화(Multi-turn conversation)**를 위해, 에이전트는 이전 대화 내용과 상태를 기억해야 합니다.
  • 이를 위해 ADK는 Session, State, Memory 개념을 통해 문맥을 구조화하고 관리할 수 있게 지원합니다.

🧩 핵심 개념 비교

구성요소설명예시저장 위치
Session 하나의 대화 흐름 (단일 스레드) "이번 쇼핑 대화" SessionService
State 현재 Session 내 임시 데이터 장바구니, 사용자 입력 Session.state
Memory 장기 기억 또는 외부 지식 이전 대화에서 입력한 취향, 검색한 정보 MemoryService
 

🟡 Session (세션)

  • 하나의 연속된 대화 스레드를 의미
  • 이 안에는 **대화 기록(Event 목록)**과 **현재 상태(State)**가 포함됨
  • 각 세션은 고유하며, 별도의 주제나 작업 흐름을 가질 수 있음

🟢 State (세션 상태)

  • 세션 내에서 임시로 유지되는 값들
  • 예: 사용자가 선택한 옵션, 대화 중 설정한 변수들
  • ctx.session.state 를 통해 읽고 쓸 수 있음
  • 해당 세션 내에서만 유효

🔵 Memory (장기 기억)

  • 여러 세션에 걸친 지식 또는 외부에서 가져온 정보의 저장소
  • 검색 가능하며 이전의 컨텍스트를 불러올 수 있음
  • 주로 완료된 세션의 요약 정보를 학습시키거나 사용자 프로필, FAQ 데이터 저장에 활용

🛠️ Context를 관리하는 서비스

서비스역할구현체
SessionService 세션 및 상태 관리 InMemorySessionService, DB 기반, 클라우드 기반 등
MemoryService 장기 메모리 저장소 관리 InMemoryMemoryService, 검색엔진 기반 등
 

🔸 InMemory 구현체는 개발용이며, 앱 재시작 시 데이터가 사라짐


🔄 관계 정리


🧠 핵심 요약

항목요약 설명
Session 하나의 대화 흐름 전체를 추적 (이벤트 기록 포함)
State 현재 세션 내에서만 유효한 임시 데이터
Memory 여러 세션 또는 외부 데이터를 포함하는 장기 기억 저장소
서비스 계층 Session → SessionService, Memory → MemoryService에서 관리
 

'ADK(Agent Development Kit) 관련' 카테고리의 다른 글

ADK - Sessions & Memory : State  (0) 2025.07.15
ADK - Sessions & Memory : Session  (0) 2025.07.14
ADK Runtime - RunConfig  (2) 2025.07.11
ADK - Runtime  (4) 2025.07.09
ADK Tool - 인증 도구  (1) 2025.07.09