Conceptly
← 전체 목록
🧠

Memory

오케스트레이션대화와 작업 상태를 다음 호출로 이어주는 저장층

memory는 한 번의 context window 밖으로 밀려나는 정보 중, 다음 호출에서도 다시 써야 하는 상태를 따로 저장해 두는 계층입니다. 사용자 선호, 진행 중인 작업, 이전 결정, 요약된 대화 기록 같은 것이 대표적입니다.

아키텍처 다이어그램

📊 데이터 흐름 다이어그램

점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다

왜 필요한가요?

대화가 길어질수록 모든 기록을 매번 다시 넣는 것은 비용과 지연 면에서 버겁고, 오래된 내용이 앞을 차지해 현재 질문의 핵심을 흐릴 수 있습니다. 그렇다고 아무것도 저장하지 않으면 시스템은 매번 처음 만난 것처럼 행동해, 사용자 선호나 작업 진행 상태를 계속 잃어버립니다.

왜 이런 방식이 등장했나요?

초기 챗봇은 이전 메시지를 통째로 재전송하는 방식에 크게 의존했습니다. 그러나 세션이 길어지고 업무형 에이전트가 등장하면서, 호출마다 필요한 working context(현재 턴에 실어 보낼 작업 맥락)와 장기적으로 남겨야 할 durable memory(호출 사이에 남는 상태)를 분리하는 설계가 중요해졌습니다.

내부적으로 어떻게 동작하나요?

보통은 현재 상호작용에서 남길 가치가 있는 정보만 골라 memory store(기억 저장소)에 기록합니다. 다음 호출에서는 현재 질문과 관련 있는 기억만 다시 검색해 working context로 넣습니다. 즉 memory는 무조건 쌓는 로그가 아니라, 저장 기준과 조회 기준이 함께 설계돼야 하는 선택적 상태 계층입니다.

경계와 구분

memory, RAG, context window는 모두 현재 답변에 과거 정보를 연결하지만 문제 축이 다릅니다. 사용자 선호나 작업 상태를 다음 호출까지 이어야 하면 memory를 보고, 문서 근거를 현재 질문마다 찾아와야 하면 RAG를 보고, 아직 한 호출 안에 충분히 담기는 대화라면 먼저 context window 안에서 해결할 수 있는지 봐야 합니다. memory는 저장된 내용을 사실처럼 재사용하므로, 오래된 추정이 쌓이면 오히려 두 번째 환각원이 될 수 있다는 점이 한계입니다.

언제 쓰나요?

실무에서는 개인화 비서, 장기 지원 세션, 조사형 에이전트에서 자주 필요합니다. 하지만 저장 기준이 느슨하면 잘못된 추정이나 오래된 결정을 계속 재주입하게 됩니다. 그래서 무엇을 사실로 저장할지, 언제 만료할지, 사용자가 수정할 수 있는지 같은 운영 규칙까지 같이 설계해야 합니다.

개인화 비서장기 고객 지원작업형 에이전트멀티세션 업무