𝟰𝟮/𝟲𝟬 𝗗𝗮𝘆𝘀 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗤𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀
당신의 AI 에이전트는 사용자 이름을 기억합니다.
사용자가 에이전트에게 뉴욕(NYC)행 저가 항공권을 예약해 달라고 요청합니다. 박당 150달러 미만의 호텔을 요청합니다. 전체 여행 비용 비교를 요청합니다.
세 번째 단계에 이르면, 에이전트는 8,000 토큰의 히스토리를 LLM에 보냅니다. 하지만 LLM은 마치 채팅의 첫 번째 턴인 것처럼 답변합니다.
이를 출시하기 전에 메모리 아키텍처가 필요합니다.
하나를 선택하세요:
인컨텍스트 윈도우(In-context window): 프롬프트에 전체 히스토리를 유지합니다. 간단하지만, 15턴 또는 8,000 토큰이 지나면 실패합니다.
벡터 메모리 스토어(Vector memory store): 과거의 대화 턴을 임베딩합니다. 유사도에 따라 가장 적합한 내용을 검색합니다. "NYC flight"를 검색했을 때 현재 작업이 아닌 예전 여행의 메모리를 가져오는 문제가 발생할 수 있습니다.
요약 기능을 포함한 에피소드 메모리(Episodic memory with summarization): 과거의 대화 턴을 구조화된 요약본으로 압축합니다. 각 요청에 관련 요약본을 주입합니다. 구축하기는 더 어렵지만, 혼동을 일으킬 가능성도 낮습니다.
Redis 세션 상태(Redis session state): 구조화된 키-값(key-value) 저장소를 사용합니다. 에이전트가 명시적으로 읽고 씁니다. 결정론적(deterministic)입니다. 에이전트는 무엇을 언제 저장해야 할지 알고 있어야 합니다.
한 옵션은 15턴 후에 실패합니다. 한 옵션은 잘못된 시점에 잘못된 컨텍스트를 가져옵니다. 하나는 작업 지향형(task-oriented) 에이전트를 위한 올바른 선택입니다.
A, B, C, D 중 하나를 고르세요. 실제 운영 환경(production)에서 이런 문제를 겪어본 적이 있다면 알려주세요.
댓글에서 전체 분석 내용을 공유합니다.
출처: https://dev.to/thejoud1997/4260-days-system-design-questions-4018
선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi