캐릭터는 자신의 눈 색은 기억하면서 어제 한 약속은 잊습니다. 저녁 내내 쌓아 온 관계가 낯선 사람 사이로 돌아가기도 합니다. 그 자리에 없었던 인물이 비밀을 언급하기도 합니다. AI로 긴 NSFW 역할극을 즐긴다면 이런 실수가 어색한 문장보다 장면을 더 빨리 망칠 수 있습니다.
실용적인 해결책은 기억의 종류마다 서로 다른 저장 자리를 마련하는 것입니다. 정체성과 지속적으로 지켜야 할 경계는 캐릭터 정의에 둡니다. 현재 장소, 관계, 당장 벌어지는 상황은 짧은 현재 상태 메모에 기록합니다. 끝난 장면은 사실에 근거한 사건 요약으로 정리합니다. 과거 사건은 필요할 때 로어북이나 검색 시스템으로 다시 불러옵니다. 최근 대화는 그대로 남겨 캐릭터 특유의 말투를 유지하세요.
컨텍스트 창이 커지면 더 많은 내용을 넣을 수 있지만 잘못된 요약이나 오래된 관계 정보를 바로잡아 주지는 않습니다. 다른 모델에 비용을 쓰기 전에 프런트엔드가 실제로 보낸 내용을 확인하세요. 필요한 사실은 프롬프트에서 빠졌는데 잘못된 사실은 여전히 안에 남아 있을 수 있습니다.
이 가이드에서는 기억의 출처를 확인하고 편집할 수 있는 SillyTavern을 사용합니다. 예시는 32세 Mara와 35세 Julian이라는 가상의 성인 인물 사이의 로맨스를 다룹니다. 모델 테스트에서 나온 대화 기록이 아니라 글쓰기 예시입니다. 다른 프런트엔드에서도 캐릭터 정보, 요약, 지속 메모를 편집할 수 있다면 같은 구성을 적용할 수 있습니다.
먼저 어떤 종류의 기억 문제가 생겼는지 확인하기
잘못된 답변이 모두 기억 문제는 아닙니다. 캐릭터가 사건을 기억하면서도 마음에 들지 않는 방식으로 반응할 수 있습니다. 사실은 유지하면서 특유의 말투를 잃을 수도 있습니다. 모델이나 서비스의 콘텐츠 규칙 때문에 요청한 장면을 거부할 수도 있습니다. 이런 문제는 각각 다른 수정이 필요합니다.
기억 문제를 해결하려면 구체적인 실수 하나부터 살펴보세요. 답변에 반영되어야 할 사실을 적고, 대화에서 그 사실이 확립된 부분을 찾습니다. 그런 다음 다음 요청에 포함된 정보와 비교합니다. SillyTavern의 프롬프트 문서는 답변의 Prompt Itemization과 선택적으로 설치할 수 있는 Prompt Inspector 확장을 통해 조립된 프롬프트를 확인하는 방법을 설명합니다.
다음 세 가지 중 어디에 해당하는지 확인합니다.
- 필요한 사실이 없습니다. 다음 요청까지 유지하거나 검색으로 불러와야 합니다. 요청에 들어가지 않는 알림은 모델에 도움이 되지 않습니다.
- 필요한 사실과 이전 버전이 함께 있습니다. 이전 내용을 삭제하거나 과거 정보임을 명확히 표시하세요. 알림을 하나 더 넣으면 모순이 더 커질 수 있습니다.
- 정확한 사실이 있으며 모순도 없습니다. 모델이 내용을 잘못 읽거나, 제공된 정보를 넘어 추측하거나, 다른 지시에 더 큰 비중을 두었을 수 있습니다. 표현을 명확하게 다듬고 방해가 되는 내용을 제거한 뒤, 전체 설정을 바꾸기 전에 짧게 다음 장면을 이어 보세요.
Mara가 두 번째 데이트를 마친 뒤 Julian을 자신의 집으로 초대했다고 해 봅시다. 그런데 다음 장면에서 Julian이 첫 데이트에 응해 줄 수 있는지 묻습니다. 요청에 이전 데이트 이력이 없다면 과거 대화가 누락된 것입니다. 캐릭터 카드에 여전히 ‘두 사람은 한 번도 만난 적이 없다’고 적혀 있다면 시작 설정이 오래된 것입니다. 요청에 두 번의 데이트와 현재 관계가 모두 명확하게 설명되어 있다면, 생성된 답변이 제공된 정보를 활용하지 못한 것입니다.
이 구분에 따라 다음 행동이 달라집니다. 과거 이력이 빠졌다면 기억 항목을 추가해야 합니다. 시작 설정이 오래됐다면 내용을 편집해야 합니다. 답변 생성 자체의 실수라면 이어지는 장면을 바로잡거나 더 집중된 프롬프트를 써야 합니다. 먼저 원인을 구분하지 않고 기억 확장을 하나 더 설치하면 실제 문제는 그대로 둔 채 관리할 요소만 늘어납니다.
| 보이는 문제 | 확인할 내용 | 우선 수정할 부분 |
|---|---|---|
| 긴 대화 뒤 약속을 잊음 | 최근 대화에 약속이 없고 요약에서도 누락됨 | 짧은 약속 항목을 추가하거나 다음 장면의 현재 상태 메모에 포함 |
| 관계가 처음으로 돌아감 | 카드, 인사말 또는 옛 요약에 시작 당시의 관계가 남아 있음 | 현재 관계 정보를 교체하고 이전 단계는 과거 이력으로만 보존 |
| 해결한 갈등이 미해결 상태로 다시 등장함 | 갈등과 해결 과정이 순서 없이 함께 검색됨 | 해결 내용을 추가하고 어떤 상태가 현재인지 표시 |
| 캐릭터가 사적인 비밀을 알고 있음 | 사건 기록에 누가 그 자리에 있었는지 설명이 없음 | 해당 기억에 누가 무엇을 아는지 명확히 추가 |
| 다른 줄거리가 섞임 | 여러 채팅이 변화하는 기억 저장소를 공유함 | 이야기별 기억을 분리하고 다른 분기의 사실을 제거 |
| 사실은 유지되지만 말투가 변함 | 최근 대화가 압축된 사실 요약으로 대체됨 | 관련 대화 몇 차례 또는 짧은 말투 예시를 복원 |
이 표는 진단의 출발점이며 모든 사례의 원인이 하나뿐이라는 뜻은 아닙니다. 유용한 이유는 모델에 막연히 ‘더 잘 기억하라’고 요구하는 대신 특정한 텍스트를 수정할 수 있기 때문입니다.
다섯 종류의 정보에 서로 다른 역할 부여하기
좋은 이야기 기억은 모든 문장을 보존하지 않습니다. 어제의 서술로 다음 장면을 압도하지 않으면서 그 장면에 필요한 정보를 남깁니다. 함께 글을 쓰는 사람에게 인물들이 누구인지, 무엇이 바뀌었는지, 지금 무엇을 하는지, 어떤 과거 사건이 여전히 영향을 주는지 알려 준다고 생각하세요.
지속적인 캐릭터 정보: 이 사람은 누구인가
이야기 내내 유지되어야 하는 정보는 캐릭터 정의에 넣습니다. 나이, 정체성, 핵심 성격, 확립된 선호, 중심 로맨스 밖에서도 이어지는 관계, AI가 맡을 역할의 경계 등이 여기에 해당합니다.
Mara의 정의는 다음처럼 작성할 수 있습니다.
Mara는 32세 복원 사진가입니다. 관찰력이 좋고 무심한 듯한 유머를 구사하며 사적인 감정을 이야기하기까지 시간이 걸립니다. 자매인 Leena는 다른 도시에 삽니다. Mara는 애정을 직접 말하기 전에 실용적인 도움으로 표현합니다. Julian의 대사, 결정, 감정은 사용자가 제어합니다.
이 정의는 모델이 묘사할 인물을 제공합니다. 모든 장면에 Mara의 자매와 직업, 성격 설명을 넣으라는 뜻은 아닙니다. 영원히 감정적 거리를 유지하라는 뜻도 아닙니다. 핵심 성향을 정하더라도 캐릭터가 변화할 여지를 남겨야 합니다.
SillyTavern의 캐릭터 설계 문서는 매번 생성할 때 포함되는 정의 필드와, 지속적으로 포함되는 정의가 길어질수록 대화 이력을 넣을 공간이 줄어든다는 점을 설명합니다. 필수적인 정체성 정보는 여기에 두고 긴 배경 설명이나 부수적인 과거 이야기는 다른 곳으로 옮기세요.
캐릭터 카드를 계속 길어지는 대화 기록으로 만들지 마세요. 모든 데이트, 다툼, 의상을 추가하면 Mara가 어떤 사람인지와 어떤 일을 겪었는지 구분하기 어려워집니다. 다른 이야기에도 쓸 수 있는 캐릭터 정의가 특정 줄거리에만 맞게 되기도 합니다. 시작 카드는 간결하게 유지하고 변화하는 관계는 해당 채팅의 기억에 보관하세요.
현재 상태: 지금 무엇이 사실인가
현재 상태는 바뀝니다. 캐릭터가 다른 방으로 이동하고, 다툼이 해결되고, 방문자가 떠납니다. 관계가 가까워지거나 잠시 쉬자는 요청이 나올 수도 있습니다. 이런 정보는 지속적인 성격이 아니므로 캐릭터를 영원히 설명하는 특징처럼 저장하면 안 됩니다.
현재 장면은 다음처럼 적습니다.
현재 장면: 금요일 저녁, 두 번째 데이트를 마친 뒤 Mara의 집에 있습니다. Mara와 Julian은 서로 편하게 느끼지만 다른 사람과 데이트하지 않는 관계에 대해서는 이야기하지 않았습니다. Mara가 방금 Julian에게 커피를 제안했고 Julian은 아직 답하지 않았습니다. Leena는 이 자리에 없습니다. 소개를 처음부터 다시 시작하지 말고 아직 답하지 않은 커피 제안에서 이어갑니다.
빠르게 읽을 만큼 짧으면서도 관계가 초기화되는 것을 막을 만큼 구체적입니다. 아직 답하지 않은 제안은 이야기가 어디서 멈췄는지 알려 주기 때문에 중요합니다. 이 정보가 없으면 요약 때문에 AI가 사용자의 다음 선택을 건너뛸 수 있습니다.
SillyTavern에서는 채팅별 Author's Note에 이 내용을 넣을 수 있습니다. Author's Note 안내는 삽입 위치와 빈도 설정을 설명합니다. 현재 장면을 상기시키는 용도로 사용한다면 빈도 0은 삽입하지 않음을, 빈도 1은 사용자가 입력할 때마다 포함함을 뜻합니다. 실제 설정값이므로 모델에 맞는 위치는 요청 내용을 확인하면서 조정하세요.
큰 현재 상태 메모를 저녁 내내 그대로 두지 마세요. 집을 완벽하게 설명한 메모라도 인물들이 집을 떠나면 틀린 정보가 됩니다. 기존 방 설명 아래에 새 방을 덧붙이지 말고 장면이 바뀔 때 메모를 교체하세요.
사건 요약: 실제로 무슨 일이 일어났는가
끝난 장면은 사건 요약에 기록합니다. 누가 무엇을 했는지, 무엇이 바뀌었는지, 무엇에 합의했는지, 무엇이 아직 미정인지 답할 수 있어야 합니다. 사건을 기록하는 것이지 장면을 더 아름답게 다시 쓰는 일이 아닙니다.
예시 이야기라면 다음과 같습니다.
금요일, 두 번째 데이트: Mara와 Julian은 야간 전시에 함께 갔습니다. Julian은 Mara가 작업실용으로 빌려준 황동 열쇠를 돌려줬습니다. Mara는 Leena와 어려운 대화를 피하고 있었다고 털어놓았습니다. Julian은 Leena에게 직접 연락하지 않고 Mara의 이야기를 들어 주겠다고 했습니다. 두 사람은 일요일 오후 작업실에서 만나기로 했습니다. 이후 Mara가 Julian을 집으로 초대해 커피를 제안했습니다. 다른 사람과 데이트하지 않는 관계에 대해서는 이야기하지 않았습니다.
열쇠 반환에는 결과가 따릅니다. Julian은 이제 열쇠를 갖고 있지 않습니다. Leena에 관한 약속에도 결과가 따릅니다. 갑자기 Leena에게 전화해서는 안 됩니다. 일요일 만남은 앞으로의 계획이지 이미 끝난 방문이 아닙니다. 마지막 문장은 따뜻한 저녁을 공식적인 관계로 바꾸지 않고 아직 정해지지 않은 부분을 보존합니다.
전시 조명에 대한 반복 설명은 생략하면서도 이런 변화를 유지할 수 있습니다. 이야기에 필요한 정보를 고르는 기억이지 모든 내용을 손실 없이 보관하는 아카이브는 아닙니다. 나중에 정확한 대사가 필요할 수 있다면 원래 대화를 별도로 보관하세요.
로어북 항목: 관련될 때만 나타나야 하는 정보
로어북은 가끔 필요한 정보를 보관하는 데 유용합니다. 장소, 함께 사용하는 물건, 조연, 중요한 과거 사건 등이 해당합니다. 주방에서 대화할 때마다 작업실을 자세히 설명할 필요는 없습니다.
SillyTavern의 World Info 문서는 키워드와 활성화 조건에 따른 삽입을 설명합니다. 실무에서 중요한 차이는 항목을 저장하는 것과 활성화하는 것이 다르다는 점입니다. 저장된 항목이라도 내용이 요청에 삽입되지 않으면 다음 답변에 도움이 되지 않습니다.
황동 열쇠는 다른 설명 없이도 이해할 수 있는 항목으로 작성합니다.
황동 작업실 열쇠: Mara는 첫 작업실 방문 때 Julian에게 이 열쇠를 빌려줬습니다. Julian은 금요일 전시에서 돌려줬습니다. 현재 Julian은 Mara의 작업실 열쇠를 갖고 있지 않습니다. 열쇠를 주고받은 것은 초기에 신뢰를 표현한 행동이었으며 언제든 작업실에 들어갈 수 있는 지속적인 허락이 아닙니다.
호텔 열쇠, 피아노 건반, 중요한 결정이 함께 등장하는 이야기에서 ‘key’만 트리거로 쓰면 불필요한 상황에도 활성화됩니다. 캐릭터가 자연스럽게 언급할 만한 ‘studio key’나 ‘brass key’처럼 구별되는 표현을 쓰세요. 숨겨진 제목이나 키워드 목록이 사건을 설명해 줄 것이라고 기대하지 마세요. 삽입되는 내용만으로도 이해할 수 있어야 합니다.
이 예시를 현재 채팅에 넣는 방법은 다음과 같습니다.
- World Info에서 이 이야기의 로어북을 만들거나 선택한 뒤 항목을 추가합니다. 황동 열쇠 문단을 Content에 붙여 넣고 Key에는
studio key, brass key를 입력합니다. 항목은 활성화 상태로 둡니다. - Character Management → Chat Lore를 열어 해당 로어북을 선택합니다. 현재 대화에 연결하는 단계입니다. 이미 로어북이 연결되어 있다면 Chat Lore가 편집기를 엽니다. 데스크톱에서는 Shift+Click, 모바일에서는 길게 누르기로 연결할 로어북을 선택하는 화면을 다시 열 수 있습니다.
- 이어지는 대화에서 ‘brass key’를 언급한 다음 생성된 답변의 Prompt Itemization을 엽니다. 조립된 요청에서 열쇠 반환 문단을 찾으세요. 문단이 있으면 삽입된 것은 확인할 수 있지만 답변이 이를 올바르게 활용했다는 뜻은 아닙니다.
검색 기억: 큰 아카이브에서 도움이 될 자료
검색 방식은 과거 항목을 모두 삽입하는 대신 현재 대화와 관련된 자료를 찾습니다. 여러 장으로 이어지는 이야기에서 도움이 될 수 있습니다. 다만 주제가 비슷하다고 자동으로 최신 사실인 것은 아니므로 과거 상태를 가져올 수도 있습니다.
SillyTavern의 Chat Vectorization 문서는 과거 대화 자료를 검색하는 방식과 프롬프트 캐싱의 절충점을 설명합니다. Data Bank 안내는 첨부 문서와 적용 범위를 다룹니다. 서로 다른 용도의 유용한 도구이며 어느 쪽도 완벽한 이야기 연속성을 만드는 마법 같은 스위치는 아닙니다.
중요 사건이 몇 개뿐인 짧은 로맨스라면 먼저 검토한 요약과 명확한 항목을 사용하세요. 30장에서 12장의 세부 내용이 필요해지는 것처럼 이 방법만으로 처리하기 어려운 실제 회상 문제가 생기면 검색을 추가합니다. 오늘의 관계를 항상 포함되는 메모에 한 문장으로 남기는 것이 검색 시스템에 매번 다시 찾아 달라고 하는 것보다 간단합니다.

캐릭터 정보, 현재 상태, 과거 사건은 서로 다른 역할을 맡습니다. 최근 대화는 캐릭터의 말투를 유지합니다.
설치하기 전에 사용할 수 있는 간단한 구성
대화가 잘 이어지지 않아도 프런트엔드 전체를 새로 구성할 필요는 없습니다. 캐릭터 정의, 현재 상태 메모 하나, 읽기 쉬운 요약 하나부터 시작하면 됩니다. 계속 사라지는 사실을 둘 자리가 생깁니다.
먼저 대화 사본을 저장하세요. 관련 기억을 편집하다가 이전 상태로 돌아가고 싶을 수 있습니다. SillyTavern의 채팅 파일 관리 안내는 대화 내보내기와 체크포인트를 설명합니다. 평문 내보내기는 읽기에 유용하고 JSONL은 다시 가져올 때 필요한 채팅 메타데이터를 보존합니다. 이미지와 첨부 파일은 별도입니다.
그다음 세 가지를 수정합니다.
- 오래된 시작 조건을 제거합니다. ‘Mara와 Julian은 만난 적이 없다’거나 ‘Julian은 아직 Mara의 신뢰를 얻지 못했다’는 문장을 찾으세요. 카드가 의도적으로 시작 상태의 템플릿이며 이후 사건이 우선한다고 프롬프트에 명확히 적힌 경우에만 남깁니다. 그렇지 않으면 진행 중인 이야기를 계속 처음으로 되돌릴 수 있습니다.
- 현재 상태를 몇 문단 이내로 작성합니다. 장소, 참석한 인물, 현재 관계, 당장의 행동, 마지막으로 답하지 않은 선택을 넣습니다. 다음 답변에 영향을 주지 않는 세부 정보는 뺍니다.
- 여전히 중요한 과거 사건을 요약합니다. 약속, 갈등 해결, 발견, 계획을 포함하세요. 아직 정해지지 않은 질문에는 ‘확립되지 않음’이라고 표시해 모델이 빈칸을 채우도록 유도하지 않습니다.
다음 예시를 수동 현재 상태 메모로 사용할 수 있습니다.
32세 Mara와 35세 Julian의 진행 중인 이야기입니다. 두 사람은 여러 차례 만났으며 두 번째 데이트를 마친 뒤 지금 Mara의 집에 있습니다. 서로에게 관심이 있지만 다른 사람과 데이트하지 않는 관계에는 합의하지 않았습니다. Mara는 Leena와의 갈등을 Julian에게 말했고 Julian은 Mara를 대신해 Leena에게 연락하지 않겠다고 약속했습니다. 일요일 작업실 만남은 계획되어 있지만 아직 일어나지 않았습니다. Mara는 커피를 제안한 뒤 Julian의 답을 기다리고 있습니다. Julian의 행동을 대신 결정하지 말고 Julian의 다음 행동에 대한 Mara의 반응을 작성하세요.
이제 배경을 더 추가하지 않는 짧은 문장으로 이어갑니다. ‘Julian은 커피를 받아들이고 어떤 머그를 추천하는지 묻습니다.’ Mara가 집에 머무는지, Julian을 이미 아는 사람처럼 대하는지, 아직 해결되지 않은 가족 문제를 알맞게 다루는지 확인하세요. 모델의 모든 능력을 시험하는 것이 아니라 수정한 상태가 평범한 후속 장면을 이어 가기에 충분한지 보는 것입니다.
여전히 처음으로 돌아간다면 실제 요청을 다시 확인하세요. 메모가 비활성화되어 있거나 다른 로어북과 충돌하거나 프런트엔드가 다른 채팅이나 persona를 사용하고 있을 수 있습니다. 요청이 정확하다면 잘못된 답변이 다음 대화의 예시가 되기 전에 편집하거나 다시 생성하세요. 실수가 실제로 일어난 것처럼 계속 진행하면 한 번의 생성 오류가 이야기 이력이 됩니다.
분위기보다 변화를 보존하는 요약 작성하기
모호한 요약은 그럴듯하게 들리면서도 정작 필요한 세부 내용을 잃기 쉽습니다. ‘Mara와 Julian은 진솔한 저녁을 보내고 가까워졌다’는 문장은 다음 장면을 결정하는 거의 모든 것을 미정으로 남깁니다. 비밀을 공개했는지, 약속을 했는지, 다툼이 해결됐는지, 다음 만남을 정했는지 알 수 없습니다.
더 나은 요약은 관찰한 사실과 해석을 구분합니다. Mara가 Julian에게 카메라를 맡길 만큼 신뢰한다고 말했다면 그 구체적인 신뢰를 기록하세요. ‘Mara는 Julian을 완전히 신뢰한다’로 일반화하지 마세요. Julian이 Mara가 편지를 숨기고 있다고 의심했다면 편지의 발견이 아니라 의심을 기록합니다. 성인 픽션에는 암시와 망설임이 많습니다. 기억에서는 그 차이를 매끄럽게 지워 버리지 말고 보존해야 합니다.
확장에서 요구하는 출력 형식과 별개로 수동 요약에 사용할 수 있는 요청은 다음과 같습니다.
끝난 장면을 진행 중인 가상 이야기의 연속성 메모로 요약하세요. 확립된 행동, 관계 변화, 약속, 반환하거나 전달한 물건, 발견, 현재 장소, 미완성 계획을 보존합니다. 사적인 사실을 공개할 때 누가 그 자리에 있었는지 명시합니다. 확인된 사건과 추측, 상상한 가능성, 앞으로의 의도를 구분합니다. 대화에서 확립되지 않은 동기, 약속, 사건은 추가하지 않습니다. 마지막으로 해결되지 않은 행동에서 끝냅니다. 간결한 평문을 사용하고 모호한 대명사 대신 이름을 유지합니다.
이 요청은 글쓰기를 돕는 예시이며 모든 환경에서 검증된 범용 프리셋은 아닙니다. 수동으로 평문 요약을 만들 때 적합합니다. 구조화된 JSON을 요구하는 확장은 자체 출력 형식을 유지해야 합니다. 그 형식을 이 서술형 요청으로 바꾸면 기억 생성이 제대로 작동하지 않을 수 있습니다.
의도적으로 잘못 작성한 요약을 보겠습니다.
Mara와 Julian은 전시 이후 연인이 됐습니다. Mara는 자매인 Leena에 관한 모든 것을 말하고 Julian에게 작업실에 출입할 수 있도록 했습니다. Julian은 Leena에게 전화해 돕기로 결정했습니다. 두 사람은 집으로 가서 커피를 마셨습니다.
거의 모든 문장이 이야기를 바꿉니다. ‘연인이 됐다’는 합의를 만들어 냅니다. ‘모든 것’은 공개한 내용을 과장합니다. ‘출입할 수 있도록 했다’는 열쇠를 반환한 사실을 무시합니다. ‘결정했다’는 Julian의 선택을 대신 만들어 냅니다. ‘커피를 마셨다’는 아직 답하지 않은 제안 다음으로 건너뜁니다.
더 우아하게 써 달라고 요구하는 대신 실제 대화를 참조해 고치세요. 유용한 요약은 위에서 작성한 사실 중심의 사건 메모입니다. 자동 요약을 읽을 때도 책 소개처럼 들리는지가 아니라 캐릭터가 실제로 내린 결정을 보존했는지 확인해야 합니다.
중요한 미발생 사실을 명시하기
아직 일어나지 않은 것이 가장 중요한 사실일 때도 있습니다. 두 사람은 다른 사람과 데이트하지 않는 관계를 논의하지 않았습니다. Julian은 Leena를 만나지 않았습니다. Mara는 편지 내용을 공개하지 않았습니다. 일요일 방문도 아직 이루어지지 않았습니다.
이런 문장은 모델이 이야기를 쉽게 진행하려고 중간 과정을 건너뛰는 것을 막습니다. 실제로 혼동될 위험이 있는 부분에만 쓰고 일어나지 않은 모든 사건의 목록을 만들지는 마세요. 이 로맨스에서는 ‘아직 관계의 독점성을 논의하지 않음’이 중요하지만 ‘화성을 방문한 적 없음’은 중요하지 않습니다.
감정 변화의 구체적인 원인 하나 보존하기
완전히 건조한 기록은 사건은 남기면서 그 사건이 중요한 이유를 잃을 수 있습니다. 감정이 바뀐 원인을 정확한 한 문장으로 보존하세요. 예를 들어 ‘Julian이 계속 갖고 있어도 되는지 묻지 않고 열쇠를 돌려주자 Mara는 긴장을 풀었다’라고 씁니다. 새로운 성격이 영구적으로 생겼다고 선언하지 않으면서 다음 장면을 쓸 사람이 반응할 정보를 줍니다.
‘Mara는 이제 행복하다’와 비교해 보세요. 무엇 때문에, 얼마나 오래, 어느 장면에서 행복한지 알 수 없습니다. 구체적인 원인을 남기면 나중에 복잡한 감정을 표현할 수 있습니다. 모호한 감정 라벨은 다음 상태 갱신까지 캐릭터를 한 가지 기분으로만 묘사하게 만들 수 있습니다.
보관용 기록과 다음 장면의 요약 구분하기
상세한 사건 아카이브를 보관하면서도 실제로 넣는 요약은 짧게 유지할 수 있습니다. 아카이브는 ‘이 장에서 무슨 일이 있었는가’에 답하고, 현재 쓰는 요약은 ‘다음 답변에서 무엇을 지켜야 하는가’에 답합니다. 둘의 길이가 같을 필요는 없습니다.
열 장면 뒤에는 전체 연대기에 첫 만남, 작업실 방문, 전시, 집에서의 대화, 일요일 계획이 들어갈 수 있습니다. 집 장면에서는 현재 관계의 단계, 관련 약속, 대화가 멈춘 지점만 필요합니다. 황동 열쇠가 언급될 때 그 열쇠의 이력을 가져오면 됩니다.
이렇게 하면 기억 관리가 숙제처럼 느껴지는 것도 막을 수 있습니다. 메시지 두 개마다 전체 이야기를 다시 쓰지 마세요. 의미 있는 변화를 저장하고 현재 상태 메모를 짧게 유지하세요. 평범한 대화의 세부 내용은 장면이 끝날 때까지 최근 이력에 남겨 두면 됩니다.
간단한 순환 요약에는 내장 Summarize 사용하기
주된 목적이 ‘이 채팅의 개요를 계속 참고할 수 있게 하는 것’이라면 내장 Summarize 확장부터 시작하는 것이 적절합니다. Extensions 패널에서 Summarize를 열고 사용할 수 있는 요약 생성 소스를 선택하세요. Main API 옵션은 현재 활성화된 연결을 사용합니다. Current summary에 나온 첫 결과를 읽고 수정한 뒤 실제 기억으로 사용하세요.
공식 Summarize 안내에는 Pause와 Restore Previous도 설명되어 있습니다. 갱신 과정에서 합의를 만들어 내거나 약속을 빠뜨렸을 때 유용한 기능입니다. 메모를 고치는 동안 자동 갱신을 멈추거나 이전 요약을 복원한 다음 정확한 변화를 추가할 수 있습니다.
갱신 간격은 정해진 숫자를 무조건 따르기보다 대화 방식에 맞추세요. 짧은 답변 20개로는 이야기가 거의 진행되지 않을 수 있지만 긴 답변 20개에는 대립, 비밀 공개, 장소 변화까지 들어갈 수 있습니다. 중요한 과거 사건이 모델에 포함되는 최근 이력에서 밀려나기 전, 그리고 장면 변화로 다음 답변에 필요한 정보가 바뀐 뒤에 새 요약을 요청하세요.
처음에는 장면이 끝날 때 수동으로 요약하는 간단한 방식으로 시작하세요. 요약 두세 개를 읽고 현재 설정에서 어떤 내용이 자주 누락되는지 확인합니다. 그다음 평소 답변 길이에 맞는 간격으로 자동 갱신을 켜세요. 일주일 뒤 모든 요약이 관계를 바꿔 놓았다는 사실을 발견하는 대신 비교할 기준을 갖게 됩니다.
순환 요약은 편리하지만 이전 요약을 계속 새 요약으로 압축하면 작은 사실이 빠질 수 있습니다. 오래 유지해야 하는 약속은 매번 다시 쓰는 과정에서 살아남기를 기대하지 말고 별도 항목으로 보호하세요. 요약에는 ‘Leena에 관한 약속은 여전히 유효함’이라고 쓰고 별도 항목에는 약속의 정확한 범위를 남깁니다.
요약이 캐릭터의 말투까지 전부 맡게 하지 마세요. 요약은 필요한 사건을 보존하고, 최근 메시지와 짧은 대화 예시는 무심한 유머, 리듬, 격식을 유지합니다. 모든 사건 메모에 긴 문체 지시를 넣으면 읽기 어렵고 여러 항목이 동시에 활성화될 때 대화를 압도할 수 있습니다.
장면별로 편집 가능한 기억에는 Memory Books 사용하기
순환 요약 하나로 관리하기 어려워지면 ST Memory Books가 유용합니다. 계속 바뀌는 단일 요약에만 의존하지 않고 장면별 기억을 남겨 필요한 부분을 편집할 수 있습니다. 긴 로맨스에서는 첫 데이트, 가족에 관한 고백, 열쇠 반환을 별개의 읽기 쉬운 기록으로 보관할 수 있다는 차이가 있습니다.
최근 SillyTavern 커뮤니티 토론에서는 기억 확장, 특히 STMB가 작성자의 경험을 개선했다고 이야기합니다. 다른 요약 확장 토론에서는 편집 가능한 로어북 기억과 자동화 수준이 높은 요약 도구 사이에서 선택하는 모습을 볼 수 있습니다. 개인적인 선호이며 특정 확장이 모든 모델을 개선한다는 통제된 검증 결과는 아닙니다.
프로젝트의 시작 안내부터 읽으세요. 설치, 로어북 선택, 첫 수동 기억 생성 방법을 설명합니다. 처음에는 적절한 기억용 로어북을 선택하고 Current SillyTavern Settings 프로필을 사용하세요. 시작과 끝을 지정하는 컨트롤로 완료된 장면을 표시한 뒤 기억 하나를 만듭니다. 자동화를 켜기 전에 생성된 항목을 열어 보세요.
로컬 또는 Text Completion 연결을 사용한다면 현재의 선행 조건을 확인하세요. 프로젝트는 추가적인 연결 요구 사항과 구조화된 출력 조건을 설명합니다. 채팅 답변을 잘 쓰는 모델도 기억 생성에 필요한 JSON을 만들지 못할 수 있습니다. 첫 기억이 제대로 생성될 때까지 내장 출력 형식을 유지하세요.
첫 시도에는 짧고 완료된 사건을 선택하세요. 예시 이야기에서는 전시의 대화가 적합합니다. 시작점, 반환된 물건, 공개한 정보, 앞으로의 계획이 있기 때문입니다. 아직 끝나지 않은 집에서의 대화까지 저녁 전체를 선택하면 요약이 완료된 사건과 다음에 일어날 가능성을 혼동하기 쉽습니다.
수동 생성이 작동하면 Memory Books 사용 안내에서 자동 생성, 장면 선택 명령, 기타 컨트롤을 확인하세요. 권장 시작 간격인 20~30개 메시지는 모든 장면이 그 길이에 들어간다는 보장이 아닙니다. 첫 자동 생성 항목을 읽고 실제 글쓰기 방식에 맞춰 조정하세요.
유용한 관리 방식은 간단합니다. 평범한 장면 변화는 확장에 맡기고, 왜곡되면 이야기 연속성을 해치는 몇 가지 변화만 수동으로 수정합니다. 전시 메모에서는 누가 열쇠를 반환했는지, 누가 가족 문제를 들었는지, 일요일 계획이 미완료인지, 실제로 관계에 합의했는지 확인하세요.
요약 도구 세 개를 동시에 설치하지 마세요. 각각 조금씩 다른 요약을 넣으면 같은 저녁의 세 가지 버전이 요청 안에서 경쟁할 수 있습니다. 사건 기억 시스템 하나와 명확한 현재 상태 메모 하나로 시작하세요. 다른 도구는 별도로 설명할 수 있는 문제를 해결할 때 추가합니다.

문체보다 사건을 바로잡으세요. 반환한 열쇠와 미완료 계획은 기억에서도 그대로 유지되어야 합니다.
캐릭터를 다시 쓰지 않고 관계를 최신으로 유지하기
NSFW 역할극에서는 쌓인 신뢰, 친밀감, 아직 정해지지 않은 부분에 의존하는 장면이 많아 관계가 변질되면 특히 답답합니다. 장소를 기억하면서 관계를 잊는 모델은 앞뒤가 연결되는 장면을 쓰더라도 읽는 사람에게는 완전히 잘못된 장면처럼 느껴질 수 있습니다.
기록을 두 개로 나누세요. 하나는 관계가 바뀌는 계기가 된 사건을, 다른 하나는 현재 관계를 설명합니다. 첫 번째는 과거 이력이고 두 번째는 현재 상태입니다.
과거 사건:
전시가 끝난 뒤 Mara는 Julian을 집으로 초대했습니다. 둘이 단둘이 있는 것이 편하며 Leena에 대해 캐묻지 않아 고맙다고 했습니다. 두 번째 데이트였습니다. 어느 쪽도 다른 사람과 데이트하지 않는 관계를 제안하지 않았습니다.
현재 관계:
Mara와 Julian은 데이트하며 서로 관심을 표현하는 것이 편합니다. 아직 서로의 선호를 알아 가는 중입니다. 다른 사람과 데이트하지 않는 관계에는 합의하지 않았으며 서로의 미래 결정을 당연하게 가정해서는 안 됩니다.
나중에 관계에 합의한다면 두 번째 기록을 갱신하세요. 첫 번째 사건은 이전에 일어난 일로 보존합니다. 이후 기억에는 ‘일요일: 두 사람은 다른 사람과 데이트하지 않기로 합의했다’라고 적을 수 있습니다. 현재 상태 메모에는 새로운 관계를 넣습니다. 금요일의 불확실함은 과거 이력이지 현재의 지시와 경쟁하는 정보가 아닙니다.
관계 전체를 숫자 점수로 줄이지 마세요. 신뢰도가 100점 중 80점이라고 해도 Mara가 Julian에게 비밀을 맡기는지, 물건을 빌려주는지, 가족에게 소개하는지 설명할 수 없습니다. 의도적으로 설계한 게임의 규칙에는 숫자를 활용할 수 있지만 실제 관계를 설명하는 문장을 대신하기에는 부족합니다.
동의와 선호도 같은 방식으로 구체적으로 기록하세요. ‘Mara는 계획을 바꾸기로 결정하기 전에 의논하는 것을 선호한다’는 새 초대를 어떻게 다룰지 알려 줍니다. ‘Mara는 일요일 작업실 방문에 동의했다’는 한 번의 합의를 기록합니다. 어느 쪽도 그다음에 일어나는 모든 일에 무제한으로 동의했다는 뜻은 아닙니다.
이야기에 설교를 넣으려는 것이 아닙니다. 요약 문구가 의미 있는 선택을 지워 버리지 않도록 보존하는 것입니다. 관계는 아직 답하지 않은 질문이 있기 때문에 흥미롭습니다. 좋은 기억은 사용자를 대신해 답하지 않으면서 그 질문을 다음 장면으로 이어 줍니다.
과거 기억이 새로운 사건을 덮어쓰지 않게 하기
검색 도구는 주제는 맞지만 시점은 틀린 내용을 가져올 수 있습니다. Mara와 Julian이 작업실을 이야기하면 작업실에 관한 초기 다툼과 이후 화해를 함께 검색할 수 있습니다. 순서나 해결 여부가 없으면 모델이 이미 해결한 갈등을 다시 꺼낼 수 있습니다.
과거 항목에는 사건 이름과 명확한 변화를 쓰세요. ‘첫 작업실 방문: Julian이 묻지 않고 조명대를 옮겨 Mara가 불편해했다’가 ‘Mara는 작업실에서 Julian과 있으면 불편하다’보다 낫습니다. 뒤의 문장은 계속 유지되는 현재 상태처럼 읽힙니다.
해결 과정도 별도 사건으로 기록합니다.
두 번째 작업실 방문: Julian은 장비를 옮긴 일에 대해 사과하고 다른 물건을 만지기 전에 물었습니다. Mara는 사과를 받아들였습니다. 이전 다툼은 해결됐지만 Mara는 여전히 방문자가 작업 자료를 옮기기 전에 물어보는 것을 선호합니다.
다툼을 해결했다고 선호까지 없어지지는 않습니다. 관계가 좋아져도 작업실의 규칙은 남습니다. 부정적인 기억을 전부 삭제하거나 과거 문제를 모두 무시하라고 지시하는 것보다 유용합니다.
오래된 항목이 계속 활성화되면 열어서 현재형 표현을 과거의 사실로 고치세요. 이제 틀린 상태를 설명하는 것 외에 가치가 없다면 비활성화합니다. 현재 상태는 한 곳에만 유지하세요. 새 메모 안에 ‘이전 기억을 무시하라’는 지시를 계속 중첩할 필요는 없습니다.
계획에 상태를 표시하는 습관도 도움이 됩니다. ‘계획됨’, ‘완료됨’, ‘취소됨’, ‘변경됨’을 붙이면 읽기 훨씬 쉬워집니다. ‘일요일 작업실에서 만난다’는 지금 벌어지는 일로 오해될 수 있습니다. ‘미완료 계획: 일요일 오후에 만나기로 했으며 아직 이루어지지 않음’은 오해하기 어렵습니다.
일요일이 되면 방문하거나 취소한 사실을 기록하고 미완료 계획을 갱신하세요. 이야기가 2주 뒤로 넘어가면 현재 상태 메모에서 지난 초대를 제거합니다. 그렇지 않으면 이미 지나간 약속이 캐릭터들이 다른 일을 하는 동안에도 급한 다음 행동처럼 계속 나타날 수 있습니다.
비밀은 실제로 아는 캐릭터만 알도록 기록하기
이야기 연속성을 크게 해치는 실수 중 하나는 서술자를 통해 비밀이 새는 것입니다. 요약에는 Mara가 Leena와의 갈등을 Julian에게 설명했다는 사실이 정확히 적힐 수 있습니다. 그런데 이후 그룹 장면에서 누구도 알려 주지 않았는데 Leena가 그 대화의 세부 내용을 알고 있을 수 있습니다.
사건 기억과 캐릭터의 지식은 다릅니다. 이야기 아카이브는 사건이 일어났다는 사실을 알 수 있습니다. 하지만 특정 캐릭터는 직접 보거나 전달받은 부분에만 반응해야 합니다. 비밀이 들어 있는 기억에 그 구분을 넣으세요.
예를 들어:
금요일 밤의 사적 대화: Mara는 Leena의 편지에 답하지 않았다고 Julian에게 말했습니다. Julian은 직접 들었습니다. Leena는 자신이 편지를 보냈다는 사실만 알며 Mara가 Julian과 그 이야기를 했다는 사실은 모릅니다. 다른 사람은 그 자리에 없었습니다.
그다음 현재 장면을 Leena의 입장에서 쓰세요. Mara가 불안해 보인다는 사실은 알아챌 수 있습니다. 편지가 도착했는지 물어볼 수도 있습니다. 하지만 이야기에서 정보를 전달하는 사건이 없었다면 Julian의 약속을 알아서는 안 됩니다.
그룹 역할극에서는 이름을 명시하세요. 한 장에 여성 셋과 남성 둘이 등장하면 ‘그녀가 그에게 그녀에 대해 말했다’는 기억이 쉽게 혼동됩니다. ‘Mara가 Julian에게 Leena에 대해 말했다’는 표현은 조금 덜 문학적이지만 훨씬 유용합니다.
모델 출력에서 완벽한 분리를 보장하지는 않습니다. 다만 확인할 수 있는 명확한 경계를 제공합니다. 모델이 여전히 비밀을 공개한다면 계속 진행하기 전에 답변을 고치고, 다른 요약에서 그 내용을 모두가 아는 사실처럼 설명하고 있는지 확인하세요.
정보가 새는 문제를 해결하려고 비밀 자체를 삭제하지 마세요. Leena가 아는 내용은 바로잡을 수 있어도 Julian이 기억해야 하는 정보까지 없어집니다. 목표는 모두에게 사적인 정보가 없는 단순한 이야기를 만드는 것이 아니라 같은 사건과 정확한 목격자를 함께 보존하는 것입니다.
다른 결말을 시도하기 전에 이야기 분기 나누기
다른 결과를 시도하는 것은 역할극의 매력 중 하나입니다. Julian이 일요일 초대를 받아들이는 분기와 시간을 달라고 하는 분기를 따로 보고 싶을 수 있습니다. 이런 분기는 캐릭터 정의와 선택 이전의 이력을 공유할 수 있지만 이후 사건을 계속 갱신하는 기록까지 공유해서는 안 됩니다.
‘일요일 초대 수락’과 ‘일요일 만남 연기’처럼 분기 이름을 명확히 붙이세요. 각 분기에 짧은 현재 상태 메모를 두고 새 기억을 만들기 전에 어떤 기억용 로어북이 연결되어 있는지 확인합니다. 둘 다 같은 로어북을 갱신하면 나중에 수락 분기에서 초대를 거절했다는 내용이 검색될 수 있습니다.
체크포인트는 분기점의 대화를 보존할 수 있지만 모든 확장이나 외부 기억 저장소가 같은 방식으로 자동 분리된다고 가정하지 마세요. 분기를 만든 뒤 활성화된 기억용 로어북을 확인하세요. 복사와 잠금 기능을 사용하기 전에 확장의 최신 문서에서 작동 방식을 확인합니다.
다른 분기의 정보가 섞인 것을 발견하면 분기 이후 생성된 항목을 찾으세요. 해당 분기에 맞는 항목은 그 분기의 기억 저장소로 복사하고 관련 없는 항목은 그곳에서 비활성화합니다. 분기 이전 이력도 실제로 변하지 않은 경우에만 공유하세요. 지속적인 성격은 공유할 수 있지만 특정 분기의 대화 결과는 공유하면 안 됩니다.
처음부터 다시 시작하려면 세 가지 중 무엇을 뜻하는지 정하세요. ‘같은 캐릭터와 새 대화’는 원래 시나리오에서 시작할 수 있습니다. ‘새 채팅에서 같은 이야기 계속하기’는 현재 상태와 관련 기억을 가져와야 합니다. ‘같은 인물이 나오는 다른 이야기’는 별도로 변화하는 이력이 필요합니다. 셋을 모두 같은 새 채팅으로 취급하면 이 버전에서는 없었던 데이트를 캐릭터가 기억하게 됩니다.
다른 기기로 내보내거나 동기화할 때는 채팅뿐 아니라 필요한 기억 소스도 옮기세요. 대화가 보인다고 연결된 로어북, 문서, 확장 상태까지 이동했다는 뜻은 아닙니다. 대상 기기에서 활성 소스를 열고 확실한 사실 하나를 확인한 뒤 이야기를 이어 가세요.

다른 결말은 이전 이야기를 공유할 수 있지만 이후 사건에는 별도의 기억이 필요합니다.
새 모델에게 전체 이야기를 추측하게 하지 않고 모델 바꾸기
이야기의 사실이 같아도 모델을 바꾸면 말투가 달라질 수 있습니다. 요청에 들어갈 수 있는 대화 이력의 양과 프리셋 지시를 해석하는 방식도 달라질 수 있습니다. 새 모델은 이전 모델의 보이지 않는 기억을 물려받지 않습니다. 프런트엔드가 보내는 내용만 봅니다.
바꾸기 전에 짧은 인계 메모를 준비하세요. 정체성, 현재 관계, 관련 있는 마지막 장면, 아직 이루어지지 않은 계획, 짧은 말투 예시를 포함합니다. 다음 장면에 정말 필요하지 않다면 전체 아카이브를 넣지는 마세요.
Mara의 인계 메모는 다음처럼 쓸 수 있습니다.
기존 이야기를 이어 갑니다. Mara는 무심한 유머를 구사하고 실용적인 행동으로 마음을 표현하는 32세 사진가입니다. Julian은 35세이며 사용자가 제어합니다. 두 사람은 두 번째 외출 뒤 데이트 중이며 처음 만나는 사이가 아닙니다. 현재 Mara의 집에 있습니다. Julian은 커피를 받아들였습니다. 일요일 작업실 방문은 아직 이루어지지 않았습니다. Julian은 Mara를 대신해 Leena에게 연락하지 않겠다고 약속했습니다. Mara의 대사는 간결하며 솔직하게 답하기 전에 작은 농담으로 말을 돌립니다. Julian의 반응을 대신 결정하지 마세요.
말투 예시는 ‘이 나간 머그는 좋아하는 사람용이에요. 좋은 도자기는 잘 보이고 싶은 사람용이고요’처럼 직접 만든 짧은 대사 하나면 됩니다. 기억을 긴 문체 지시로 채우지 않으면서도 리듬과 캐릭터를 전달합니다.
모델 변경을 평가하려면 같은 인계 메모로 짧게 비교하세요. 커피 장면을 한 번 이어 달라고 요청합니다. 장소, 미완료 계획, 누가 무엇을 아는지, 말투를 유지하는지 비교하세요. 2시간 동안 대화를 정성스럽게 다듬은 이전 모델과 한 줄 인사말만 받은 새 모델을 비교하지 마세요.
다른 텍스트 모델을 고르는 문제는 역할극 모델 가이드에서 별도로 다룹니다. 프롬프트에 틀린 사실이 있다면 기억 수정이 먼저입니다. 더 성능이 좋은 모델도 잘못된 요약을 따를 수 있고 저렴한 모델도 명확히 정리된 장면에는 충분할 수 있습니다.
새 모델의 콘텐츠 규칙은 이 확인 과정과 구분하세요. 거부했다고 데이트를 잊었다는 뜻은 아닙니다. 따뜻하지만 성인 표현의 수위가 낮은 후속 장면도 자동으로 기억 실패에 해당하지 않습니다. 기억 도구, 프롬프트, 모델 중 무엇을 바꿀지 정하기 전에 제공한 상태와 실제 답변을 확인하세요.

모델을 바꿀 때는 새 첫 만남이 아니라 같은 이야기 사실과 짧은 말투 예시가 필요합니다.
중요한 세부 내용을 잃지 않으면서 기억 비용 줄이기
토큰 단위로 과금하는 API에서는 긴 컨텍스트에 비용이 따릅니다. 매 요청에 포함되는 텍스트가 입력 사용량에 반영됩니다. 기억 생성에도 별도 모델 호출이 들어갈 수 있습니다. 확장을 무료로 설치할 수 있다고 사용 비용까지 무료라고 생각하지 마세요.
특정 모델 가격을 몰라도 현재 구성의 규모를 계산할 수 있습니다. 예를 들어 한 요청에 입력 토큰 40,000개를 쓰고 정리한 버전에는 12,000개를 쓴다고 해 봅시다. 답변 50회에 걸쳐 캐싱이나 다른 가격 조건을 고려하기 전 입력 토큰은 각각 200만 개와 60만 개입니다. 실제 청구액이나 보장된 절약 효과가 아니라 계산 예시입니다.
중요한 질문은 어떤 토큰 28,000개를 뺐는지입니다. 반복되는 방 설명과 지난 장면을 뺐다면 짧은 요청에도 필요한 정보가 모두 남을 수 있습니다. Julian의 약속을 기록한 유일한 내용까지 뺐다면 비용은 줄어도 결과가 나빠질 수 있습니다. 압축은 이야기의 의미 있는 변화를 남길 때 가치가 있습니다.
메시지마다 요약하면 비용이 늘고 불필요한 중간 기억이 생길 수 있습니다. 간단한 커피 제안에는 새 기억 생성 작업이 필요하지 않을 수 있지만 Leena에 관한 공개는 필요할 가능성이 높습니다. 장면이 끝날 때나 도구가 지원하는 간격으로 시작하고, 그 경계에서 일관된 항목이 생성되는지 읽어 보세요.
검색에서는 매번 선택되는 자료가 달라지므로 캐싱이 복잡해질 수 있습니다. 공식 Chat Vectorization 문서도 이 절충점을 설명합니다. 현재 API가 반복되는 프롬프트 내용의 이점을 활용한다면 보이는 메시지가 적을수록 비용도 낮다고 가정하지 말고 검색을 켠 뒤 실제 사용량을 비교하세요.
개인 글쓰기에서는 너무 큰 카드를 줄이고 현재 상태를 짧게 유지하며 중복 자동 요약 호출을 피하는 것이 가장 간단한 절약 방법입니다. 앱에서는 기억이 사용자 입력마다 생성되는지, 백그라운드에서 생성되는지, 정해진 경계에서만 생성되는지도 알아야 합니다. 요청 패턴이 다르므로 비용도 달라집니다.
검색 실수를 피하려고 모든 사실을 항상 활성화되는 항목에 넣지 마세요. 그러면 매번 전체 아카이브를 보내는 상태로 돌아갑니다. 항상 포함되는 공간은 정체성, 현재 상태, 몇 가지 필수 제약에 사용하세요. 나머지는 관련될 때 나타나게 합니다.
기억 도구는 작동하는데 이야기가 계속 깨질 때
성공 알림은 기억이 생성됐다는 뜻일 수 있습니다. 기억이 정확하고, 활성화되고, 모델이 제대로 활용했다는 뜻은 아닙니다. 문제가 된 사실을 이 단계 순서대로 따라가세요.
먼저 저장된 항목을 엽니다. Julian이 열쇠를 계속 갖고 있다고 쓰여 있다면 검색 설정을 조정하기 전에 내용을 고치세요. 어떤 활성화 설정도 틀린 항목을 사실로 만들 수 없습니다. 열쇠 반환이 완전히 빠졌다면 누락된 사건을 추가하거나 적절한 장면 범위에서 다시 생성합니다.
그다음 기억 소스와 활성화 조건을 확인합니다. 로어북이 현재 채팅에 연결되어 있는지, 대화에서 쓰지 않는 키워드를 요구하는지, 필터가 현재 캐릭터를 제외했는지, 설정된 예산 안에 항목을 넣을 공간이 있는지 살펴보세요. 모든 전역 한도를 높이는 대신 해당 항목에 실제로 적용되는 옵션을 확인합니다.
세 번째로 최종 요청을 확인합니다. 기억이 저장되어 있고 활성화 대상이어도 다른 소스에 밀려 빠질 수 있습니다. ‘황동 열쇠를 반환했다’처럼 구별되는 사실을 검색하세요. ‘Julian이 Mara의 작업실 열쇠를 갖고 있다’처럼 이전의 모순된 내용도 찾습니다. 둘 다 있다면 겉으로 정확한 기억이 왜 문제를 일으키는지 알 수 있습니다.
마지막으로 생성된 후속 장면을 읽습니다. 정확한 사실이 있고 모순도 남아 있지 않다면 당장 이어지는 장면의 현재 상태를 더 직접적인 문장으로 써 보세요. 그래도 실패하면 다시 생성하거나 다른 모델을 사용하는 것이 적절할 수 있습니다. 이제 도구를 무작정 바꾸는 대신 기억의 누락이나 손상부터 배제한 상태입니다.
문제 해결 질문은 작게 유지하세요. ‘왜 모델의 기억력이 나쁠까’는 답하기 어렵습니다. ‘열쇠를 반환했다고 기록했는데 왜 Julian에게 열쇠가 있다고 했을까’는 소스, 트리거, 요청, 수정으로 이어집니다. 다음 장면 전에 실제로 끝낼 수 있는 작업입니다.
긴 성인 픽션을 위한 반복 가능한 관리 방식
시작 전에 전체 이력이 아니라 현재 상태 메모를 읽으세요. 캐릭터들이 어디에 있는지, 현재 관계가 무엇을 의미하는지, 어떤 계획이 미완료인지, 누구 차례에 결정을 해야 하는지 확인합니다. 30초만 읽어도 오래된 장면이 새 메시지 열 개에 영향을 주기 전에 발견할 수 있습니다.
진행 중에는 평범한 대화를 그대로 두세요. 약속, 발견, 해결, 새로운 경계, 물건 전달, 계획 완료처럼 변화가 생길 때 기억을 저장합니다. 자동 도구를 쓴다면 사소한 대화를 전부 교정하기보다 이런 변화 주변의 항목을 검토하세요.
장면이 끝나면 사건과 현재 상태를 분리합니다. 무엇이 일어났는지는 사건 기억에 기록하세요. 현재 상태 메모는 이야기가 지금 멈춘 지점으로 교체합니다. 이전에 현재였던 장면 세 개 아래에 새로운 ‘현재’ 장면을 덧붙이지 마세요.
분기 전에는 변화하는 기억을 복사하거나 분리합니다. 모델을 바꾸기 전에는 짧은 인계 메모를 준비하고 작은 말투 예시를 보존합니다. 기기를 옮기기 전에는 기억 소스도 도착했는지 확인합니다. 각 작업은 서로 다른 종류의 초기화를 막으며 어느 것도 더 긴 캐릭터 카드를 요구하지 않습니다.
원하는 결과는 작지만 가치 있습니다. 캐릭터가 약속을 기억하고, 관계가 처음으로 돌아가지 않으며, 다음 장면이 이전 장면의 끝에서 시작하는 것입니다. 불편했던 사실 하나부터 바로잡으세요. 그 사실이 정확한 기억 소스와 실제 요청에 들어간 것을 확인하면 모델의 다음 답변을 판단할 훨씬 확실한 기준이 생깁니다.





