회고 RAG는 사용자의 현재 회고 발화를 더 정확하게 이해하고, 이전 회고 맥락과 연결된 더 자연스러운 후속 질문을 생성하기 위한 구조다.
이 RAG는 단순히 과거 문장을 다시 가져오는 기능이 아니라, 회고를 더 깊고 일관되게 이어가기 위한 문맥 기반 회고 보조 시스템을 목표로 한다.
회고 RAG의 목표는 다음과 같다.
- 현재 회고 발화를 더 정확하게 해석한다.
- 이전 회고 맥락을 바탕으로 더 자연스러운 후속 질문을 만든다.
- 회고를 단발성 대화가 아니라 누적되는 경험으로 확장한다.
- 사용자의 회고 패턴과 반복되는 고민을 더 잘 포착한다.
- 회고 원문은 전체 저장한다.
- 저장된 회고는 전체 보관한다.
- 과거 세션 회고는 분석에 우선 반영한다.
- 실시간 후속 질문은 현재 세션의 흐름을 우선한다.
- 질문은 회고 평가처럼 들리지 않도록 자연스러운 대화 형태를 유지한다.
회고 RAG의 기본 흐름은 아래와 같다.
- 사용자가 회고를 입력한다.
- 입력 발화를 회고 단위로 정리한다.
- 현재 발화에 대한 분석용 query를 생성한다.
- 저장된 회고 메모리에서 관련 문맥을 검색한다.
- 검색된 문맥을 바탕으로 현재 회고를 분석한다.
- 현재 회고를 메모리 형태로 저장한다.
- 후속 질문 목적을 판단한다.
- 질문용 query를 생성한다.
- 현재 세션 중심으로 관련 문맥을 다시 검색한다.
- 검색 결과를 기반으로 다음 후속 질문을 생성한다.
회고 RAG에서 저장하는 메모리는 단순 원문이 아니라, 이후 검색과 질문에 재사용할 수 있는 회고 단위여야 한다.
회고 메모리는 다음 정보를 포함한다.
- 원문
- 요약
- 핵심 근거
- 감정 표현
- 주제
- 회고 차원 힌트
- 중요도
- 세션 정보
- 생성 시각
회고는 아래 4가지 차원을 기준으로 보조적으로 해석한다.
- 좋았던 점
- 배운 점
- 부족했던 점
- 바라는 점
이 차원은 사용자의 회고를 강제로 분류하기 위한 것이 아니라, 회고가 한쪽으로만 치우쳤을 때 부족한 영역을 발견하고 더 적절한 질문을 만들기 위한 보조 구조다.
분석용 Retrieval은 현재 발화를 더 잘 이해하기 위한 검색이다.
이 단계에서는 현재 세션뿐 아니라 과거 세션 회고까지 검색 대상으로 포함할 수 있다.
분석용 Retrieval이 찾고자 하는 맥락은 다음과 같다.
- 같은 주제의 이전 회고
- 반복적으로 등장한 문제
- 유사한 감정 패턴
- 이전에 언급된 배경 정보
질문용 Retrieval은 다음 질문을 더 자연스럽게 만들기 위한 검색이다.
이 단계에서는 현재 세션 맥락을 우선 사용한다.
질문용 Retrieval이 찾고자 하는 맥락은 다음과 같다.
- 방금 말한 내용과 직접 이어지는 표현
- 아직 충분히 탐색되지 않은 현재 세션의 주제
- 사용자가 막힌 지점이나 감정이 강하게 드러난 부분
- 다음 행동으로 이어질 수 있는 단서
검색은 단순 키워드 일치가 아니라 아래 신호를 함께 고려해야 한다.
- 표현 유사성
- 주제 유사성
- 감정 유사성
- 회고 차원 유사성
- 핵심 근거 유사성
- 최근성
- 중요도
즉, 같은 단어를 찾는 것이 아니라 같은 회고 맥락을 찾는 것이 핵심이다.
검색된 회고 문맥은 현재 발화를 분석할 때 보조 문맥으로 사용한다.
이때의 원칙은 다음과 같다.
- 현재 발화가 항상 우선이다.
- 검색된 과거 맥락은 의미 보강에만 사용한다.
- 과거 회고 때문에 현재 발화를 과도하게 왜곡하면 안 된다.
- 같은 주제의 반복 여부나 맥락 연결 여부를 보조적으로 판단한다.
질문 생성에서는 검색 결과를 그대로 많이 넣기보다, 다음 질문에 가장 중요한 맥락 하나를 선택해 사용하는 것이 적절하다.
질문 생성 흐름은 아래와 같다.
- 현재 회고에서 어떤 차원이 부족한지 판단한다.
- 현재 세션 문맥에서 다음 질문에 적합한 anchor를 찾는다.
- 그 anchor를 기반으로 한 문장의 자연스러운 질문을 생성한다.
질문은 아래 기준을 만족해야 한다.
- 한 번에 하나만 묻는다.
- 사용자의 최근 발화와 자연스럽게 이어진다.
- 회고를 심문하거나 평가하는 말투를 피한다.
- 사용자의 표현을 일부 반영하되, 그대로 반복하지 않는다.
현재 회고 RAG의 저장 정책은 아래와 같다.
- 회고 원문 전체 저장
- 전체 회고 기록 보관
- 세션 단위 정보 유지
추후 고려할 항목은 다음과 같다.
- 개인정보 포함 시 마스킹 여부
- 삭제 요청 시 삭제 범위
- 원문과 요약 중 어떤 단위를 우선 보관할지
회고 RAG는 아래 항목을 기준으로 평가한다.
- 기대한 관련 회고가 상위에 검색되는지
- 표현은 달라도 의미가 비슷한 회고를 찾는지
- 현재 회고를 더 잘 이해하게 되는지
- 과거 회고가 현재 발화 해석에 적절히 보조되는지
- 질문이 자연스러운지
- 질문이 맥락을 이어받는지
- 비슷한 질문을 반복하지 않는지
- 회고를 더 깊게 만드는지
- 사용자가 기억받고 있다고 느끼는지
- 과거 회고 반영이 부담스럽지 않은지
- 회고가 더 정리된다고 느끼는지
회고 RAG가 적용되면 사용자는 아래와 같은 경험을 기대할 수 있다.
- 이전에 했던 회고와 지금의 회고가 자연스럽게 연결된다.
- 비슷한 고민이나 패턴을 더 잘 짚어준다.
- 회고가 점점 쌓이고 정리되는 느낌을 받는다.
- 단순 대답형 채팅보다 더 깊은 회고 대화를 경험한다.
회고 RAG의 핵심은 과거 문장을 많이 가져오는 것이 아니라, 현재 회고를 더 잘 이해하고 더 좋은 다음 질문을 만들기 위해 필요한 문맥만 적절하게 꺼내 쓰는 데 있다.
따라서 회고 RAG는 아래 방향을 중심으로 구성한다.
- 회고 메모리를 의미 있게 저장한다.
- 분석과 질문의 검색 목적을 분리한다.
- 과거 세션은 분석 보조에 우선 활용한다.
- 질문은 현재 세션 흐름을 해치지 않도록 만든다.