장기기억
AI가 대화를 기억하는 방식과 메모리 기능 활용법을 알아봅니다.
NoahChat의 AI는 대화 내용을 자동으로 기억합니다. 이 문서에서는 메모리 시스템의 작동 원리와 활용법을 설명합니다.
왜 메모리가 필요한가요?
AI는 기억이 없습니다. 매번 대본을 처음부터 읽는 배우와 같죠. 대본에 없으면 모릅니다.
문제는 대본 길이가 제한된다는 것입니다. 토큰 = 비용이니까요. 그래서 두 가지 기억력 문제가 생깁니다:
- 상태 초기화: "최근 대화 몇 턴" 밖으로 나가면 호감도, 관계가 초기화
- 과거 희석: 요약의 요약의 요약... 오래된 기억이 사라짐
NoahChat은 이 문제를 사건 기억과 상태 기억, 두 가지로 나눠서 해결합니다.
사건 기억: 메모리북
"어제 카페 갔던 거 기억해?"처럼, 일어났던 사건에 대한 기억입니다.
왜 Chunk 검색인가요?
일반적인 방식은 대화를 요약해서 저장하는 것(Compact)입니다. 하지만 이 방식은 한계가 있습니다.
Compact (요약)
- 10턴잘 됨
- 50턴요약의 요약
- 100턴
- 비용요약의 적체로 점차 증가
오래된 기억이 희석됨
Chunk (검색)
- 10턴잘 됨
- 50턴잘 됨
- 100턴
- 비용일정
필요한 기억만 검색
NoahChat은 Chunk 검색 방식을 사용합니다. 비용은 일정하면서 오래된 기억도 찾아올 수 있기 때문입니다.
기억의 도서관
대화할 때마다 AI가 그 순간의 정보를 정리하여 메모리북에 저장합니다. 각 턴은 하나의 "책"처럼 다음 정보를 담고 있습니다:
| 정보 | 설명 | 예시 |
|---|---|---|
| 감정 태그 | 캐릭터의 감정 상태 | 설렘, 긴장, 행복 |
| 장소/시간 | 대화가 일어난 상황 | 카페, 오후, 첫 만남 |
| 이벤트 | 주요 사건 키워드 | 고백, 약속, 다툼 |
| 대사 인용 | 인상적인 대사 | "다음에 또 보자" |
| 분위기 | 장면의 전반적 분위기 | 로맨틱, 긴장감 |
사서 AI
AI는 새로운 대화를 할 때 메모리북에서 관련 기억을 자동으로 검색합니다. 단순히 키워드가 일치하는 기억만 찾는 것이 아니라, 의미적으로 연관된 기억까지 찾아냅니다.
두 가지 검색 방식
사서 AI는 두 가지 방식을 조합하여 가장 적절한 기억을 찾습니다:
-
의미 검색: 단어가 정확히 일치하지 않아도 비슷한 맥락의 기억을 찾습니다
- "카페에서의 약속"을 찾으면 → "커피숍에서 만나기로 한 일"도 찾아냄
- 감정, 상황, 관계의 유사성을 인식
-
장면 검색: 태그와 키워드로 정확하게 분류된 기억을 빠르게 찾습니다
- 감정: 행복한 장면들
- 장소: 학교에서 일어난 일들
- 이벤트: 고백, 다툼, 화해 등
두 검색 결과를 종합하여 가장 관련성 높은 기억을 선택합니다.
대화가 길어져도 AI가 과거 기억을 잊지 않는 이유가 바로 이 검색 시스템 덕분입니다. 수백 턴 전의 대화도 맥락이 맞으면 자연스럽게 불러올 수 있습니다.
재생성과 메모리북
응답을 재생성하면 해당 턴의 메모리북도 다시 작성됩니다. 재생성된 응답 기준으로 새로운 기억이 저장되므로, 원래 응답의 기억은 사라집니다.
메모리북은 읽기 전용이며, AI가 어떤 정보를 기억하고 있는지 확인하는 용도로 활용하세요.
상태 기억: 캐릭터 기억
"지금 호감도가 얼마야?", "지금 어디에 있어?"처럼, 현재 상태에 대한 기억입니다.
context turn과 무관하게 유지
일반 플랫폼은 상태창이 "최근 대화 몇 턴" 안에 있어야만 AI가 인식합니다. context turn 밖으로 나가면 호감도가 초기화되는 이유죠.
NoahChat의 캐릭터 기억은 context turn과 무관하게 영구히 유지됩니다. 10턴이 지나든 100턴이 지나든 사라지지 않습니다.
자동 업데이트
대화가 진행될 때마다 AI가 캐릭터별 맥락을 자동으로 분석합니다. 세 가지로 나눠서 저장합니다:
- 관계: 유저와의 관계 (호칭, 역할, 친밀도)
- 상태: 캐릭터의 현재 상태 (능력, 상황)
- 성격: 대화에서 드러난 성격 특성
별도 작업 없이도 캐릭터가 이전 대화를 기억합니다.
다캐릭터 관리
작품에 캐릭터가 여러 명이면 어떻게 될까요?
A 캐릭터와는 연인, B 캐릭터와는 적대 관계라면? 캐릭터 기억은 캐릭터마다 따로 저장됩니다.
A를 만나면 A의 기억이, B를 만나면 B의 기억이 대본에 들어갑니다.
기억 내용이 마음에 들지 않거나 수정이 필요하면 직접 편집할 수 있습니다.
수동으로 편집한 기억은 다음 자동 요약 시점에 덮어씌워질 수 있습니다. 중요한 설정은 유저 노트에 기록하는 것이 좋습니다.
메모리 활용 팁
- 캐릭터 기억은 AI가 관리하므로 크게 신경 쓰지 않아도 됩니다
- 중요한 설정은 유저 노트에 기록하세요
- 메모리북으로 AI가 기억하는 내용을 확인할 수 있습니다
- 대화가 이상하면 캐릭터 기억을 확인하고 필요시 수정하세요
메모리 시스템의 원리가 궁금하다면 AI는 어떻게 대답할까?를 읽어보세요.