ADK(Agent Development Kit) 관련

ADK - Sessions & Memory : Memory

alienbuddy 2025. 7. 16. 12:46

✅ MemoryService 개요

📌 역할

  • Session/State: 단기 기억 (현재 대화에만 국한됨)
  • MemoryService: 장기 기억 (이전 대화들 또는 외부 지식 저장소)

주요 기능

기능                                                                                           설명
add_session_to_memory(session) 완료된 세션을 장기 기억에 저장
search_memory(app_name, user_id, query) 과거 세션들 중에서 검색 쿼리에 맞는 내용 검색
 

🧠 MemoryService 구현체 종류

구현체                                              설명                                                                       영속성      추천 사용처
InMemoryMemoryService 메모리 기반, 키워드 매칭 테스트, 로컬 개발
VertexAiRagMemoryService GCP Vertex AI RAG 기반, 의미 기반 검색 지원 실 서비스, 대규모 검색 필요 시
 

🔁 Memory 사용 흐름

  1. 사용자 대화 진행: Session 내에서 정보 입력
  2. 세션 종료 시 메모리 등록:
     
  3. 다음 대화에서 과거 내용 질문:
    예: "내가 가장 좋아하는 프로젝트가 뭐였지?"
  4. Agent가 load_memory 툴 호출 → 검색 쿼리 전달
  5. MemoryService가 관련 정보 검색
  6. 검색 결과를 Agent에 전달
  7. Agent가 그 정보를 바탕으로 응답 생성

🔧 실습 예시 요약

🟡 Turn 1: 정보 수집

  • 입력: "My favorite project is Project Alpha."
  • Agent: InfoCaptureAgent
  • Session 1 생성 → 대화 저장 → add_session_to_memory()

🟢 Turn 2: 기억 활용

  • 질문: "What is my favorite project?"
  • Agent: MemoryRecallAgent (with load_memory tool)
  • 과정:
    • Agent가 load_memory 호출
    • MemoryService가 Session 1에서 정보 검색
    • 결과 반환 → Agent 응답 생성:
    • "Your favorite project is Project Alpha."

📌 핵심 메서드 요약

메서드                                                                                   설명
add_session_to_memory(session) 세션을 메모리에 저장 (이벤트에서 정보 추출)
search_memory(app_name, user_id, query) 특정 쿼리에 대해 세션 기반 지식 검색
load_memory 툴 Agent가 메모리를 검색할 수 있도록 도와주는 내장 툴
 

🧠 설계 시 주의 사항

  • Memory는 Session과 별도이며, 공유 가능한 장기 지식 저장소입니다.
  • prefix 필요 없음 (단순 검색 기반 구조)
  • InMemoryMemoryService는 앱 종료 시 모든 정보 소멸

✅ 마무리 요약

항목                                      내용
MemoryService 목적 과거 대화의 정보 검색을 통한 지식 유지
기본 흐름 세션 완료 → 메모리 등록 → 나중에 검색 및 활용
사용 방식 add_session_to_memory(), load_memory, search_memory() 호출
주요 구현체 InMemoryMemoryService (비영속), VertexAiRagMemoryService (영속, 의미기반)

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

ADK - Callback  (1) 2025.07.17
ADK - Sessions & Memory : State  (0) 2025.07.15
ADK - Sessions & Memory : Session  (0) 2025.07.14
ADK - Sessions & Memory  (2) 2025.07.12
ADK Runtime - RunConfig  (2) 2025.07.11