Memory Recall과 채팅 요약
모든 AI 모델은 한 번에 정해진 분량의 글만 읽을 수 있습니다. 이 분량을 컨텍스트 창이라고 부릅니다. 채팅이 길어지면 가장 오래된 메시지부터 컨텍스트 창 밖으로 밀려나고, AI는 그 내용을 잊어버립니다. Marinara Engine(이하 Marinara)에는 그 기록을 되살리는 방법이 여러 가지 있습니다. 이 가이드에서는 각 기능을 켜는 방법과 제대로 작동하지 않을 때 고치는 방법을 설명합니다.
어떤 기억 기능을 써야 하나요?
Memory Recall(기억 회상)부터 시작하세요. Marinara가 컴퓨터에서 실행되는 내장 임베딩 모델을 쓸 수 있으므로, 따로 설정하지 않아도 작동합니다. 채팅이 아주 길어지면 요약을 추가하세요.
| 기능 | 하는 일 | 작동하는 모드 |
| Memory Recall | 방금 입력한 내용과 관련된 부분을 지난 메시지에서 찾아 프롬프트에 추가합니다. | 모든 모드 |
| Chat Summary(채팅 요약) | 오래된 메시지를 짧은 줄거리로 바꿔 넣습니다. | Roleplay |
| Automatic Summarization(자동 요약) | 하루 단위로 요약한 다음, 한 주 단위로 요약합니다. 항상 켜져 있습니다. | Conversation |
| Advanced Memory Recall(고급 기억 회상) | 현재 기록, 장면 요약, 회상된 발췌를 함께 관리합니다. 선택 기능입니다. | Roleplay와 Game Mode |
Memory Recall과 요약은 하는 일이 서로 달라서 함께 켜 둘 수 있습니다. Game Mode에서는 Memory Recall과, 선택 사항으로 Advanced Memory Recall을 쓸 수 있습니다(Game Mode에서 사용하기 참고). Game Mode에는 자체 요약 기능이 없습니다.
Memory Recall
Memory Recall은 임베딩을 사용합니다. 임베딩은 메시지의 의미를 숫자로 나타낸 지문 같은 것입니다. Marinara는 지난 메시지를 조각이라고 부르는 작은 묶음으로 저장합니다. 그리고 새 메시지의 지문을 저장해 둔 지문과 비교해 가장 가까운 조각을 프롬프트에 추가합니다.
Memory Recall 켜기
- 채팅을 열고 Chat Settings(채팅 설정)를 클릭하세요.
- Memory Recall 섹션을 찾으세요.
- Enable Memory Recall(이전 기억 불러오기)을 켜세요.
이 설정은 채팅마다 따로 저장됩니다. Conversation 채팅과, 장면이 활성화되어 있는 Roleplay 또는 Game 채팅에서는 처음부터 켜져 있습니다. 그 밖의 채팅에서는 처음에 꺼져 있습니다. 끄면 회상은 멈추지만 저장된 기억은 지워지지 않습니다.
작동하지 않는 경우: Memory Recall에는 임베딩 소스가 필요합니다(다음 섹션). 아무것도 설정하지 않으면 Marinara가 내장 모델을 사용하므로, 대부분은 그 섹션을 건너뛰어도 됩니다. Memory Recall이 보이기는 하는지 확인하세요. Marinara Lite라고 부르는 일부 컨테이너 빌드에서는 이 기능이 완전히 꺼져 있습니다.
임베딩 소스 설정하기(선택 사항)
Memory Recall에는 지문을 만드는 모델이 필요합니다. 아무것도 설정하지 않으면 Marinara는 내장 임베딩 모델(아래 참고)을 사용하며, 대부분은 이것으로 충분합니다. 대신 서비스를 사용하려면 채팅 설정이 아니라 계정에서 설정하세요.
시작하기 전에: 임베딩을 제공하는 계정이 필요합니다. AI 제공자에 연결하기를 참고하세요.
- Connections(연결)를 열고 계정을 편집하세요.
- Semantic search (embeddings)(시맨틱 검색) 섹션을 찾으세요.
- 임베딩 모델 이름을 입력하세요. 예를 들면
text-embedding-3-small입니다. - 선택 사항: 주소를 바꾸려면 Embedding endpoint URL(임베딩 엔드포인트 URL)을 설정하세요.
- 선택 사항: 다른 계정의 키와 주소를 빌려 쓰려면 Embedding provider(임베딩 연결)를 사용하세요. Same as this provider(이 연결과 동일)는 이 계정 자체의 키와 주소를 그대로 씁니다.
임베딩을 제공하지 않는 서비스도 있습니다. 그럴 때 Marinara는 OpenAI 호환 계정, Google, 내장 모델 같은 임베딩 전용 계정을 고르라고 안내합니다.
어디서나 소스 하나를 쓰려면 Connections → Defaults(연결 → 기본값)의 Embeddings(임베딩)에서 고르세요. 자체 임베딩 모델이 없는 계정은 그 소스를 사용합니다. 계정에 직접 설정한 값이 계속 우선합니다.
임베딩 계정도 Embeddings 기본값도 없으면 Marinara는 내장 임베딩 모델로 대체합니다. 이 모델은 한 번만 다운로드하며, API 키 없이 컴퓨터에서 실행됩니다. 내장 모델 설정을 참고하세요.
같은 설정이 로어북 시맨틱 검색에도 쓰이므로, 한 번만 설정하면 두 기능에 모두 적용됩니다.
저장된 기억 보기와 관리하기
- Chat Settings → Memory Recall을 여세요.
- Access memories for this chat(이 채팅의 기억에 접근)을 클릭하세요. Memories for This Chat(이 채팅의 기억) 창이 열립니다. Advanced Memory가 켜져 있으면 뷰어가 Roleplay 서랍 안에 표시됩니다.
이 창에는 저장된 조각의 개수와 대략적인 토큰 수가 표시됩니다. 각 조각 카드에는 날짜 범위, 메시지 개수, 만들어진 시각, 상태가 나옵니다.
| 상태 | 의미 |
| Vectorized | 지문이 만들어져 검색할 준비가 끝났습니다. |
| Waiting for vector | 지문을 아직 만드는 중입니다. |
| Embedding unavailable | 지문을 만들 수 있는 임베딩 소스가 없습니다. |
도구 모음에는 기억을 내보내고, 가져오고, 다시 만들고, 지우는 아이콘이 있습니다.
- 조각의 휴지통 아이콘을 누르면 Forget Memory(기억 잊기)가 열립니다. Forget(잊기)으로 확인하세요.
- 전체 삭제 아이콘을 누르면 Clear Memories(기억 지우기)가 열립니다. Clear(지우기)로 확인하세요. 회상용 기억만 지워지고 채팅 메시지는 지워지지 않습니다.
- 새로고침 아이콘은 현재 메시지로 모든 조각을 다시 만듭니다. 임베딩 모델을 바꾼 뒤에 사용하세요.
- 내보내기는
.marinara.json파일로 저장합니다. 가져오기는.json또는.marinara파일을 받아 기존 기억에 합칩니다.
Memory Recall의 동작 방식
- Marinara는 임베딩 소스가 있으면 Enable Memory Recall이 꺼져 있어도 백그라운드에서 조각을 저장합니다. 토글은 기억을 프롬프트에 추가할지만 정합니다.
- 조각 하나가 만들어지려면 새 메시지가 5개 이상 있어야 합니다.
- 약하게 일치하는 조각은 건너뛰므로, 기억이 있어도 아무것도 불러오지 않을 수 있습니다. 회상된 기억에는 프롬프트의 작은 부분만 쓰입니다.
- 임베딩 모델을 바꾸면 예전 조각은 더 이상 맞지 않습니다. 조각을 다시 만드세요.
- 채팅의 메시지를 삭제하면 해당 조각도 함께 삭제됩니다.
Chat Summary(Roleplay)
Chat Summary는 오래된 메시지를 요약 항목이라고 부르는 짧은 줄거리로 압축합니다. 각 항목은 AI가 쓸 수도 있고 직접 쓸 수도 있으며, 항목마다 켜고 끌 수 있습니다. Roleplay 채팅에서만 쓸 수 있습니다.
Chat Settings를 열고 Lorebooks(로어북) 아래의 Chat Summary를 펼치세요. 컴퓨터에서는 별도 창으로 꺼낼 수 있습니다. 채팅 설정 개요를 참고하세요.
요약 항목 만들기
- Summary Scope(요약 범위)에서 최근 메시지는 Last(마지막)를, 메시지 구간은 Range(범위)를 고르세요.
- AI에게 항목을 쓰게 하려면 Generate(생성)를 클릭하고, 직접 입력하려면 Write(작성)를 클릭하세요.
각 항목에는 제목, 출처 범위 또는 메시지 개수, 예상 토큰 수가 표시됩니다. 항목을 켜거나 끄고, 펼치고, Edit(편집)로 고치거나 Delete(삭제)로 지울 수 있습니다. Show Inactive(비활성 표시)와 Hide Inactive(비활성 숨기기)는 목록에 표시할 항목을 바꿉니다. Activate All(전체 활성화)과 Deactivate All(전체 비활성화)은 모든 항목을 한 번에 전환합니다.
여러 항목을 바꾸려면 항목에 체크한 다음(컴퓨터에서는 Shift를 누른 채 클릭하면 범위를 선택할 수 있습니다) Enable selected(선택 항목 활성화)나 Disable selected(선택 항목 비활성화)를 사용하세요.
Review Agent Outputs(에이전트 출력 검토)가 켜져 있으면 AI 요약은 승인을 기다립니다. 에이전트 승인과 Agent Suite를 참고하세요.
Automatic Summaries
Automatic Summaries(자동 요약) 패널은 채팅하는 동안 요약을 최신 상태로 유지합니다.
- Enabled(활성화)를 켜세요.
- Every에 요약과 요약 사이에 지나갈 사용자 메시지 수를 설정하세요. 기본값은 5이고, 1에서 200까지 지정할 수 있습니다.
- 선택 사항: 요약이 한 번도 없던 예전 채팅을 요약하려면 Backfill Summary(요약 백필)를 클릭하세요. 진행 막대가 표시됩니다. 일찍 끝내려면 Stop(중지)을 클릭하세요.
요약 프롬프트, 제공자, 출력 크기
- Summary Prompt(요약 프롬프트): AI가 사용하는 지시를 바꾸려면 Edit를 클릭하세요. Templates(템플릿)를 클릭하면 New template(새 템플릿), Duplicate(복제), Edit, Delete로 저장된 프롬프트를 관리할 수 있습니다. 템플릿은 전역 설정입니다. 한 Roleplay 채팅에서 템플릿을 고르면 모든 Roleplay 채팅의 프롬프트가 바뀝니다.
- Summary Provider(요약 연결): 요약을 쓰는 계정입니다. 기본 에이전트 계정을 먼저 쓰고, 그다음으로 채팅 자체의 계정을 씁니다.
- Maximum output size(최대 출력 크기): 요약의 최대 길이입니다. 기본값은 4096토큰이고, 1에서 32768까지 지정할 수 있습니다.
표시 옵션
- Hide summarised messages(요약된 메시지 숨기기): 요약이 포함한 원본 메시지를 숨깁니다. 기본값은 꺼짐입니다.
- Recent message tail(유지할 최근 메시지 수): 숨기기가 켜져 있어도 최신 메시지를 이 개수만큼 보이게 둡니다. 기본값은 10입니다. 0 이상의 정수라면 무엇이든 쓸 수 있습니다. 0으로 두면 요약된 묶음 전체를 숨깁니다. 값이 클수록 프롬프트가 커지고 비용도 늘어납니다.
- Collapse hidden messages(숨겨진 메시지 접기): 숨겨진 메시지가 채팅 기록에 어떻게 표시될지 바꿉니다.
유지할 최근 메시지 수는 요약된 메시지에 적용되는 제한입니다. 요약된 메시지가 유지할 최근 메시지보다 오래되었으면, 다음 요약이 숨기기 전이라도 바로 프롬프트에서 빠집니다. 아직 어떤 요약에도 포함되지 않은 오래된 메시지는 빼면 내용이 사라지므로 계속 전송됩니다. 이런 메시지가 있으면 Chat Summary는 Recent message tail 아래에 그 개수를 표시합니다. 이 메시지를 요약하려면 Backfill Summary를 클릭하세요.
병합된 그룹 채팅
병합된 그룹 채팅에서는 답변 하나가 모든 캐릭터를 대신해 말합니다. {{#if char == "Kaito"}}…{{/if}}처럼 특정 캐릭터를 위해 쓴 항목의 일부는 그 부분이 적용되는 모든 캐릭터에게 유지되며, "known only to Kaito"처럼 누가 아는지 표시됩니다. Advanced Memory의 Narrator(내레이터)만 받는 부분은 포함하지 않습니다. 캐릭터가 한 명씩 답하는 그룹 채팅과 캐릭터가 하나인 채팅에서는 각 캐릭터가 이전과 같이 항목을 읽으며, Narrator는 모든 부분을 읽습니다.
Automatic Summarization(Conversation)
Conversation 채팅은 날짜별로 하루를 요약한 다음, 끝난 주를 묶어 주간 요약을 만듭니다. 그러면 프롬프트에는 주간 요약, 이번 주의 일별 요약, 오늘 메시지만 담깁니다. 이 기능은 스스로 작동하며 끌 수 없습니다.
요약 편집하기
- Conversation 채팅을 열고 Chat Settings를 클릭하세요.
- Automatic Summarization을 찾으세요.
- Edit Summaries(요약 편집)를 클릭하세요.
창에는 주간 항목이 먼저 나오고, 아직 주간으로 묶이지 않은 날짜가 그 뒤에 나옵니다. 항목을 펼치면 Summary(요약) 본문과 Key Details(주요 내용) 행을 편집할 수 있습니다.
하루가 끝나는 시각 정하기
- Day Rollover Hour(하루 시작 시간 설정): 요약에서 새 하루가 시작되는 시각입니다. 기본값은 4 AM입니다. 12 AM부터 11 AM까지 아무 시각이나 고를 수 있습니다. 이 시각 이전의 메시지는 전날로 셉니다. 채팅하지 않는 시간대를 고르세요. 요약이 이미 있는 상태에서 바꾸면 Marinara가 예전 요약은 이전 시각을 기준으로 만들어졌다고 알려 줍니다.
- Recent Message Tail(유지할 최근 메시지 수): 요약된 뒤에도 오늘 메시지 중 최신 몇 개를 원문 그대로 남길지 정합니다. 기본값은 10입니다. 값이 클수록 프롬프트가 커지고 비용도 늘어납니다.
빠진 날짜 채우기
예전 채팅을 가져온 뒤처럼 어떤 날의 요약이 빠질 수 있습니다. 창의 Missing Summaries(누락된 요약) 패널에 Backfill(백필) 버튼이 있습니다. 한 번에 최근 날짜를 최대 14일까지 다시 시도합니다. 요약 모델을 바꿔도 이미 있는 일별 항목과 주간 항목을 다시 쓰지는 않습니다.
Advanced Memory Recall(Roleplay와 Game Mode)
Advanced Memory Recall은 현재 기록 창, 연속성 요약, 오래된 발췌를 함께 관리하는 선택 모드입니다. 채팅을 장면으로 나누고, 끝난 장면마다 요약하며, 응답마다 중요한 장면과 정확한 메시지를 회상합니다. Agents 스위치 없이 작동하며 다운로드 에이전트가 필요하지 않습니다.
켜기
- Chat Settings → Memory Recall을 여세요.
- Advanced Memory Recall을 켜세요. Roleplay 설정 마법사의 Agents 아래에 있는 Automatic context and memory handling(자동 컨텍스트 및 기억 관리)을 켜도 됩니다.
- 모델의 컨텍스트 창 안에서 Maximum allowed context before compression (tokens)(압축 전 최대 허용 컨텍스트, 토큰)를 설정하세요.
- 그 상한 안에서 Summary and recall budget (tokens)(요약 및 회상 예산, 토큰)를 설정하세요.
- 선택 사항: Helper model(보조 모델)을 고르세요.
이미 기록이 있는 채팅에서는 먼저 Prepare existing history(기존 기록 준비)를 클릭하세요(아래 참고). 데스크톱과 모바일 모두 마법사와 Chat Settings 서랍에서 설정과 진행 상황을 볼 수 있습니다. 보관함 뷰어는 서랍 안에 표시됩니다.
설정
| 설정 | 기본값 | 하는 일 |
| Maximum allowed context before compression (tokens) | 65,000 | 송신 프롬프트가 이 크기에 도달하면 오래된 컨텍스트를 잘라내고 회상용으로 요약합니다. |
| Summary and recall budget (tokens) | 6,500 | 컨텍스트 중 기억에 쓸 양입니다. 최대값의 10% 이상을 권장합니다. |
| Helper model | 에이전트 계정, 없으면 채팅 계정 | 장면 판단, 요약, 연속성을 담당합니다. |
| Maximum recalled scenes(최대 회상 장면 수) | 3 | 응답마다 회상하는 장면 수의 상한입니다. 0은 선택적 장면 회상을 끕니다. |
| Moving context(이동 컨텍스트) | 메시지 3개에서 5개 | 회상된 발췌 하나에 들어가는 메시지 수입니다. 둘 다 0이면 발췌 없이 요약만 제공합니다. |
| Standalone scene check interval (messages)(단독 장면 검사 주기, 메시지 수) | 5 | 장면 검사와 장면 검사 사이에 지나가는 새 메시지 수입니다. |
| Use Decision model(판단 모델 사용) | 꺼짐 | Decision 모델이 장면의 끝을 찾고 기억을 고르게 합니다. |
| Decide who sees new messages(새 메시지를 볼 대상 자동 결정) | 꺼짐 | 캐릭터가 한 명씩 답하는 그룹 채팅에만 있습니다. |
| Character recollections(캐릭터 회고) | 꺼짐 | 각 캐릭터에게 장면에 대한 자신만의 기억을 줍니다. |
기본 예산은 기본 최대값의 10%입니다. 나중에 최대값을 바꿔도 예산은 바뀌지 않습니다. 상한은 지침, 메시지, 회상된 컨텍스트, 도구, 첨부 파일을 포함한 예상 송신 프롬프트 전체에 적용됩니다. 응답 토큰과 안전 여유분은 별도입니다. 이 값은 추정치이며, 정확한 토크나이저 수치나 과금 한도가 아닙니다.
모든 기억 요약 호출은 Chat Summary → Maximum output size를 사용하며, 추론할 공간을 남기기 위해 출력 토큰을 최소 8,196개 확보합니다.
기존 기록 준비하기
- Prepare existing history를 클릭하세요. 시작하기 전에 적용될 모델이 표시됩니다.
- 기다리세요. 오래된 기록을 묶음 단위로 처리하며 현재 단계를 보여 줍니다.
- 멈추려면 Cancel(취소)을 사용하세요. 완료된 작업은 유지됩니다. 이어 가려면 Resume(재개)을 사용하세요. 서랍을 닫거나, 서버를 재시작하거나, 앱을 업데이트한 뒤에도 이어 갈 수 있습니다.
모델 호출이 실패해도 그 전의 유효한 기억은 유지되며, 다시 시도할 수 있는 오류가 표시됩니다. 실패한 뒤에 기억을 초기화하지 마세요. Resume은 완료된 요약을 재사용합니다. 마지막으로 진행 중인 장면은 열린 채로 남아 있다가 닫힐 때 요약됩니다.
복구한 기록이 수동 수정이 적용된 장면을 바꾸면, 그 기억을 꺼서 텍스트를 참고용으로 남기거나 삭제한 다음 다시 준비하세요. Fix(수정)는 멈추는 대신 그 장면을 건너뛰고 목록에 표시합니다.
준비된 채팅에서 Branch from here(여기서 분기 생성) 등으로 만든 분기는 Advanced Memory를 그대로 유지합니다. 장면 도중에 만든 분기는 그 장면을 다시 엽니다. 이전 요약은 버려지고 장면이 닫힐 때 새 요약을 씁니다. 새 분기로 가져온 채팅은 평소처럼 준비합니다.
기억 문제 해결하기
채팅의 기억에 문제가 생기면 Chat Settings 버튼에 강조 색상의 점이 깜박이지 않고 계속 표시되고, 문제가 있는 장면이 몇 개인지 알려 주는 알림이 나타납니다. 같은 문제는 한 번만 알리며, 점은 문제가 정리될 때까지 남아 있습니다. Chat Settings → Memory Recall에서는 문제가 설정 위에 나열됩니다. Access memories for this chat에도 같은 점이 표시됩니다.
알림이나 목록에서 Fix를 누르면 문제가 표시된 장면을 한 번에 모두 고칩니다. 이 작업은 Helper model을 사용합니다. Pause processing(처리 일시 정지)으로 멈추고 Resume processing(처리 재개)으로 이어 갈 수 있습니다. Fix는 다음 작업을 합니다.
- Check who was there(누가 있었는지 확인)로 표시된 장면에 누가 있었는지 보조 모델에게 다시 묻습니다. 그래도 판단하지 못하면 아무도 접근 권한을 얻지 않으며, 장면은 직접 확인할 수 있도록 목록에 표시됩니다.
- 참가자 확인 기능이 생기기 전에 저장된 오래된 장면에 누가 있었는지 확인합니다.
- 메시지, 숨긴 메시지, 캐릭터 이름이나 바탕이 되는 요약이 바뀐 장면과, 요약이 없는 끝난 장면의 요약을 새로 씁니다. 삭제한 요약은 삭제된 상태로 둡니다.
- 오류로 멈춘 기억 작업을 재개합니다.
Fix는 직접 편집한 요약을 절대 다시 쓰지 않습니다. 그런 요약은 need your review(검토 필요) 아래에 표시하고 작업을 계속합니다. 캐릭터의 지식 범위나 작동하는 Decision 연결 같은 설정은 Fix가 대신 바꿀 수 없습니다.
Fix가 끝나면 "Advanced Memory fixed N scenes"("고급 기억이 장면 N개를 수정했습니다")와 검토가 필요한 장면 번호가 표시됩니다. 번호를 선택하면 그 장면이 Access memories for this chat에서 열립니다. Chat Settings가 닫혀 있었다면 Show(보기)가 있는 알림으로 그곳에 갈 수 있습니다. Fix가 판단하지 못한 장면은 다음 Fix에서 다시 묻지 않으므로, 그 장면의 캐릭터 접근 권한은 직접 저장하세요.
장면 다시 검사하기
장면이 끝나지 않았을 때처럼 장면 변화를 놓쳤다면 Chat Settings → Memory Recall의 Re-scan scenes(장면 다시 검사)를 사용하세요.
- 검사할 첫 메시지 번호와 마지막 메시지 번호를 입력하세요. 처음에는 진행 중인 장면이 입력되어 있습니다.
- Re-scan(다시 검사)을 누르세요.
Advanced Memory는 그 메시지에서 장면 변화를 다시 찾고, 바뀐 장면을 요약합니다. Use Decision model이 켜져 있으면 Decision 모델을, 꺼져 있으면 Helper model을 사용합니다. 범위 밖의 장면은 경계와 요약을 그대로 유지합니다. 직접 편집한 요약이 바뀌게 되면 다시 검사를 멈추고 그 장면을 알려 줍니다.
선택 사항인 Decision 모델
Decision 모델은 예/아니요 질문에 답하는 작은 모델입니다. 기본값은 꺼짐이며 Roleplay 채팅마다 저장됩니다.
- Advanced Memory에서 Use Decision model을 켜세요.
- Memory Decision connection(기억용 판단 연결)에서 모델을 고르세요. Built-in model(내장 모델) 아래에는 전역 Decision model(결정 모델)과 같은 모델이 나열됩니다. 아직 답할 수 없는 모델은 회색으로 표시되고 그 이유가 함께 나오며, 중지된 모델은 요청을 받으면 시작됩니다. Connections 아래에는 저장해 둔 Decision 계정이 나열됩니다. Decision 모델을 참고하세요.
이 선택은 전역 Decision 기본값과 별개입니다.
이 모델은 기록을 준비할 때와 진행 중인 장면을 검사할 때 장면 경계를 찾습니다. 새 응답 전에는 두 단계에 걸쳐 기억을 고릅니다. 자세한 내용은 Decision 회상의 작동 방식을 참고하세요.
호스팅 계정에는 최근 대화 텍스트와, 평가 대상으로 추린 장면 요약이나 메시지가 전송되며, 응답 하나에 여러 요청의 요금이 청구될 수 있습니다. 회상은 후보를 보내기 전에 캐릭터 접근 권한으로 걸러 냅니다.
새 메시지를 볼 대상 정하기
캐릭터가 한 명씩 답하는 Roleplay 그룹 채팅에서는 Advanced Memory가 새 메시지마다 어떤 캐릭터가 볼지 정할 수 있습니다. 그러면 장면을 떠난 캐릭터에게서 대사를 하나하나 숨기지 않아도 됩니다. 병합된 그룹 채팅과 캐릭터가 하나인 채팅에서는 이 옵션을 제공하지 않습니다.
- Advanced Memory에서 Decide who sees new messages를 켜세요.
내 메시지든 캐릭터의 메시지든, 새 메시지는 장면에 없는 캐릭터에게서 숨겨집니다. 메시지 자체의 버튼과 같은 캐릭터별 Hide from AI(AI에게서 숨기기)를 사용하므로, 사선이 그어진 눈 표시로 누가 볼 수 없는지 알 수 있습니다. 내 메시지는 보내는 즉시 판단합니다. 앞선 메시지는 다음 캐릭터가 답하기 전에 판단합니다.
- 여기에서 고른 Narrator와 Roleplay 명령 설정에서 고른 Narrator character(내레이터 캐릭터)는 모든 메시지를 봅니다. 메시지 작성자는 항상 자신의 메시지를 봅니다. 장면에 없는 귓속말 수신자도 귓속말은 그대로 받습니다.
- Use Decision model이 켜져 있으면 캐릭터마다 그 메시지를 보거나 들을 수 없는 것이 분명한지 그 모델에게 묻습니다. 이야기에서 한 번도 장면에 나오지 않는 캐릭터는 다른 곳에 있는 것으로 봅니다. Decision 모델을 쓰지 않으면 Helper model이 판단합니다. 모델이 확신할 때만 메시지를 숨깁니다.
- 모델은 현재 장면에서 지금까지 나온 메시지를 읽고, 적어도 그 앞의 마지막 메시지 몇 개는 읽습니다. 장면이 시작된 뒤 말한 캐릭터 목록도 받습니다. 이 목록은 참고용일 뿐입니다. 조용히 듣고 있는 캐릭터도 그 자리에 있는 것으로 봅니다.
- 메시지의 Hide from AI를 직접 바꾸거나
/hide또는/unhide를 사용하면 직접 고른 설정이 유지되며, Advanced Memory는 그 메시지를 다시 바꾸지 않습니다. - 메시지마다 한 번만 판단합니다. 모델이 실패하거나 시간 초과되면 아무것도 숨기지 않으며, 오류는 서버 로그에 기록됩니다.
Advanced Memory가 켜져 있으면 새 캐릭터 답변이 **, ---, 같은 구분선으로 장면이나 시점을 바꿀 수 있습니다. 이때 답변은 부분마다 하나씩, 같은 캐릭터가 보낸 별도의 메시지로 저장됩니다.
- 부분마다 볼 수 있는 대상이 따로 있습니다. Decide who sees new messages, Hide from AI, 귓속말은 각 부분에 적용됩니다.
- 작성자는 여전히 모든 부분을 봅니다. 작성자가 보면 안 되는 부분은 직접 숨기세요.
- 구분선은 그 뒤 부분의 맨 위에 남습니다. 코드 블록이나
<details>같은 HTML 블록 안의 구분선은 구분선으로 보지 않습니다. - 답변의 사고 내용은 첫 부분에 표시됩니다. Exclude Past Reasoning(과거 추론 제외)이 꺼져 있어도 이 내용은 모델에 다시 보내지 않습니다.
- 메시지 정보, 트래커, 에이전트 결과는 마지막 부분에 붙습니다.
- Prose Guardian 같은 재작성 에이전트는 각 부분을 따로 재작성합니다. Hold Message Until Rewrite(리라이트까지 메시지 보류)를 켜 두면 각 부분이 자신의 재작성을 기다립니다. 재작성 하나가 실패하면 그 부분은 원래 쓴 그대로 남습니다.
- 음성 자동 재생은 모든 부분을 순서대로 읽습니다.
- 부분을 스와이프하거나 재생성하면 그 메시지의 새 버전만 만들어집니다. 앞쪽 부분이라면 새 버전에는 첫 구분선 앞의 텍스트만 남습니다.
- 이어 쓰기와 Impersonate는 답변을 나누지 않습니다.
캐릭터 회고
각 캐릭터에게 장면에 대한 자신만의 기억을 주려면 Character recollections를 켜세요. 기본값은 꺼짐입니다.
- 끝난 장면에 있던 캐릭터는 각자 약 50단어에서 100단어 분량의 짧은 기억을 하나씩 얻습니다. 1인칭으로, 캐릭터 자신의 말투로 씁니다. 무엇을 눈여겨볼지는 캐릭터 카드가 정합니다. Narrator, 내 페르소나, 다른 곳에 있던 캐릭터는 회고를 받지 않습니다.
- 모델은 각 캐릭터가 알 수 있었던 내용만 사용할 수 있습니다. 그 캐릭터가 알 수 없었던 내용에서 네 단어를 연달아 그대로 옮긴 회고는 제외합니다. 다른 말로 바꿔 전한 사실은 지시로만 막습니다.
회고가 정확하게 유지되는 방식:
- 회고는 그 캐릭터가 읽을 수 있는 내용이 회고를 쓸 때와 정확히 같을 때만 유효합니다. 나중에 장면의 메시지가 그 캐릭터에게서 숨겨지거나 그 캐릭터에게 보이게 되면, 생성된 회고는 다시 씁니다. 직접 편집한 회고는 확인하고 다시 저장할 때까지 프롬프트에서 제외합니다.
- 새 장면의 회고는 그 장면의 요약과 같은 요청에서 나옵니다. 캐릭터 카드가 너무 커서 그 요청에 들어가지 않으면 회고는 별도 요청으로 이어서 씁니다. 카드가 그 장면에 쓸 수 있는 Helper의 공간을 절반 넘게 차지하는 캐릭터는 회고를 받지 않습니다.
- 요약된 장면이 있는 채팅에서 이 설정을 켜면 한 번에 한 장면씩 회고를 추가하며, 진행 상황은 Writing character recollections(캐릭터 회고 작성 중)로 표시됩니다. 장면 요약은 바뀌지 않습니다. Resume은 실패한 장면을 다시 시도합니다.
- 모델이 쓸 만한 내용을 쓰지 못하면 장면에는 빈 회고가 남으며, 요약이나 읽을 수 있는 텍스트가 바뀔 때까지 그대로 둡니다. Access memories for this chat에서 직접 쓸 수 있습니다.
회고가 표시되는 위치와 비용:
- 회고는 회상된 장면에만 표시되며, 장면 요약 아래, 발췌 앞에 캐릭터마다 한 줄씩 들어갑니다. 캐릭터가 한 명씩 답하는 그룹 채팅에서는 각 캐릭터가 자신의 회고만 봅니다. 병합된 답변에서는 그 자리에 있는 캐릭터 중 그 장면을 기억하는 모든 캐릭터의 회고가 이름과 함께 표시됩니다.
- 회고는 Summary and recall budget에 포함됩니다. 요약이 먼저, 그다음 회고, 그다음 발췌 순입니다. 발췌를 먼저 줄이고, 그다음 회고를 통째로 뺍니다. 회고를 중간에 자르지는 않습니다.
- 회고는 Chat Summaries에 들어가지 않으며, 어떤 장면을 회상할지 정하는 데에도 쓰이지 않습니다.
- 장면 요약이 바뀌면 응답이 끝날 때마다 최대 3개 장면의 생성된 회고를 최신 장면부터 다시 씁니다. Prepare existing history, Re-scan scenes, Resume은 모든 회고를 다시 씁니다.
편집과 끄기:
- Access memories for this chat에서 장면을 열면 각 회고를 읽고 편집할 수 있습니다. 편집한 회고에는 Manually edited(수동 편집됨) 표시가 붙으며 다른 회고로 대체되지 않습니다. Delete는 회고를 프롬프트에서 영구히 빼지만, 새 회고를 직접 입력할 수는 있습니다.
- 설정을 끄면 저장된 회고는 유지하지만 프롬프트에서는 제외합니다. 내보내기, 가져오기, 분기에도 회고가 포함됩니다.
Game Mode에서 사용하기
Game Mode 채팅도 같은 방식으로 Chat Settings → Memory Recall에서 Advanced Memory Recall을 켭니다. 이 기능이 없으면 Game 세션은 컨텍스트 한도에 이를 때까지 매 턴 전체 기록을 보내므로, 긴 세션일수록 턴마다 입력 토큰이 훨씬 많이 듭니다. 이 기능을 켜면 프롬프트가 Maximum allowed context before compression 아래로 유지됩니다. 현재 장면은 원본 메시지로 보내고, 이전 장면은 요약과 회상이 고른 순간으로 보냅니다.
- 게임 마스터가 모든 기억을 읽습니다. Narrator 선택, 지식 범위, 자동 메시지 가시성, 캐릭터 회고가 없습니다.
- 위치. 요약과 회상된 장면은 기록 뒤, GM의 턴 지침 바로 앞에 들어갑니다. 앞쪽의 지침과 기록은 턴이 바뀌어도 그대로이므로, 프롬프트 캐싱을 지원하는 연결은 이를 재사용할 수 있습니다. 장면이 끝나면 요청 한 번이 캐시를 사용하지 못합니다.
- 출처. 요약은 화면에 보이는 이야기를 따릅니다. 직접 편집한 구간이 반영되고 GM의 명령 태그는 제외됩니다.
- 세션. 새 세션은 설정을 유지하지만 자체 보관함을 새로 시작합니다. GM은 앞선 세션의 요약도 계속 받습니다.
- Decision 모델. 선택 사항이며 기본값은 꺼짐입니다. 선택 사항인 Decision 모델을 참고하세요. 턴마다 작은 요청이 추가됩니다.
- 비용. Helper model은 장면마다 요약 하나를 쓰고 몇 턴마다 장면 변화를 검사합니다. 이 요청은 긴 세션을 다시 보내는 것에 비하면 작습니다.
- Game 채팅의 프롬프트 미리보기에는 아직 Advanced Memory가 표시되지 않습니다. 최종 프롬프트 검사기를 사용하세요.
문제 해결
| 문제 | 해결 방법 |
| Memory Recall이 아무것도 불러오지 않을 때 | 임베딩 소스가 설정되어 있는지 확인하세요. 조각이 Embedding unavailable 상태라면 Semantic search (embeddings) 모델을 설정하거나 내장 모델을 사용하세요. 내장 모델 설정을 참고하세요. |
| 조각이 Waiting for vector 상태일 때 | 잠시 기다리세요. 지문은 응답이 끝난 뒤에 만들어집니다. |
| 관련된 내용이 없는 것 같을 때 | 회상은 관련이 깊은 기억만 추가합니다. 아무것도 추가하지 않는 것은 정상입니다. |
| 임베딩 모델을 바꾼 뒤 회상이 나빠졌을 때 | Memories for This Chat에서 다시 만들기 아이콘을 사용하세요. |
| 요약이 생성되지 않을 때 | 채팅에 작동하는 텍스트 계정이 필요합니다. Chat Summary는 Summary Provider를 사용합니다. 쓸 수 있는 계정이 없으면 생성을 건너뜁니다. |
| AI 요약이 나타나지 않을 때 | Review Agent Outputs가 승인을 기다리고 있을 수 있습니다. |
| 요약이 멈춰 있을 때 | 실패한 요약은 잠시 뒤 다시 시도합니다. Backfill Summary(Roleplay)나 Backfill(Conversation)을 실행하세요. |
| 장면에 Check who was there 표시가 붙었을 때 | Fix를 누르거나, Access memories for this chat에서 장면을 열고 Edit character access(캐릭터 접근 권한 편집)를 사용하세요. |
다른 문제는 Marinara Engine 문제 해결을 참고하세요.
Advanced Memory 참고 자료
대부분의 독자에게는 필요 없는 세부 내용입니다. 이 내용을 읽지 않아도 위의 설정은 작동합니다.
장면을 감지하고 요약하는 방식
- 장면 감지는 Roleplay 주 응답을 저장한 뒤 실행됩니다. 간격만큼의 새 메시지가 쌓이면 검사 모델은 마지막 검사 이후의 모든 메시지(간격의 두 배까지), 마지막 검사가 끝난 지점의 메시지, 장면 지침, 출력 형식을 받습니다. 검사 모델은 각 장면이 끝나는 정확한 메시지를 반환하며, 장면이 계속되면 아무것도 반환하지 않습니다. 페르소나와 캐릭터 메시지를 모두 셉니다.
- Decision 모드가 꺼져 있을 때 검사할 차례가 되면, 가시성과 컨텍스트 예산이 허용하는 경우 해당하는 후처리 트래커 호출을 함께 사용합니다. 그렇지 않으면 보조 모델이 따로 호출합니다. 불확실한 전환은 장면을 열린 상태로 둡니다.
- 종료를 감지한 경우에만 그 장면의 요약과 메시지 색인을 백그라운드에서 준비합니다. Chat Settings → Agent activity(채팅 설정 → 에이전트 활동)는 일반 에이전트가 꺼져 있어도 진행 상황을 Advanced Recall(고급 회상)로 표시합니다.
- 각 장면 요약 요청에는 요약 지침, 장면의 대상 메시지, 적용 가능한 범위 수정, JSON 출력 형식이 들어갑니다. 한 요청에 들어가지 않는 큰 장면은 저장되는 묶음으로 처리한 뒤 합칩니다. 장면 요약은 2문단에서 3문단을 요청합니다. 기본 프롬프트는 현재 상황 섹션 없이 과거를 정리하는 요약을 씁니다. Summaries에서 선택한 사용자 지정 프롬프트도 계속 적용됩니다.
- 최초 기록 감지에는 주 모델이나 보조 모델을 쓸 수 있습니다. 요약에는 항상 보조 모델을 씁니다.
- 각 요약에는 참여한 캐릭터도 기록합니다. Kaito Nakamura를 "Kaito"라고 적은 경우처럼 참가자 이름이 카드와 달라도, 정확히 한 캐릭터에만 맞고 내 페르소나의 이름이 아니면 인정합니다. 함께 쓰는 이름, "Kaito's sister" 같은 설명, "(mentioned)"처럼 메모가 붙은 이름은 접근 권한을 주지 않습니다. 보조 모델이 누가 참여했는지 말하지 않으면 장면은 모든 캐릭터에게 배정되며, 그룹 채팅에서는 Check who was there 표시가 붙습니다. 나만 있었던 장면은 내레이터 전용으로 남습니다. 참가자 확인 기능이 생기기 전에 저장된 장면은 Fix나 Prepare existing history가 확인할 때까지 내레이터 전용으로 남습니다. 장면을 끝내는 응답도 나올 때마다 최대 3개씩 확인합니다.
- 캐릭터가 한 명씩 답하는 기존 그룹 채팅에서는 누락된 지식 범위를 한 번 확인하세요. 캐릭터의 첫 대사가 그 이전의 모든 내용을 알았다는 증거는 아닙니다. 참여 제한을 건너뛰어도 되는 경우에만 실제 캐릭터를 Narrator로 선택하세요. 전역 Hide from AI는 턴을 현재 기록에서만 제외합니다. Advanced Memory는 여전히 그 턴을 스캔하고, 요약하고, 색인합니다. 시작 마커는 현재 기록을 잘라냅니다.
현재 창과 예산
- 프롬프트 우선순위는 상시 요약(항상 켜져 있는 요약), 선택한 장면 요약, 캐릭터 회고, 메시지 발췌 순입니다. 상시 요약은 예산의 최대 70%를 목표로 합니다. 필요하면 전체 기억이 컨텍스트 상한 안에서 최대 2,000토큰을 더 쓸 수 있습니다. 현재 메시지는 상시 요약 몫에 포함되지 않습니다.
- 송신 프롬프트가 상한에 도달하면 모든 캐릭터의 현재 창을 최신 장면의 시작으로 재설정한 뒤 다시 늘립니다. 함수 호출과 굴림의 후속 요청은 계산에 들어가지 않습니다. 잘라낸 지점은 Mark as new start(새 시작점으로 표시)에서 All이 선택된 상태로 표시됩니다. All을 해제하면 취소됩니다. 개인별 시작 플래그도 계속 적용됩니다. 미완료 장면이나 너무 큰 상시 요약이 들어가지 않으면 표시한 원본 발췌를 사용하고 최신 메시지를 유지합니다. 저장된 요약과 메시지는 절대 덮어쓰지 않습니다.
- 주 생성은 저장된 기억을 즉시 읽습니다. 연속성 작업을 기다리지 않습니다.
- 주 응답 후 Advanced Memory는 아직 어떤 요약에도 포함되지 않은 보관된 메시지에 대해 Chat Summaries를 추가합니다. 캐릭터가 한 명씩 답하는 그룹 채팅에서는 장면을 읽은 모든 캐릭터가 그 장면에 대한 요약 하나를 공유합니다.
- 한 캐릭터가 읽는 활성 요약이 예산의 70%를 넘으면 Updating continuity(연속성 업데이트 중)가 응답 후 보조 모델을 사용해 그 요약들을 합한 크기의 절반 정도인 요약 하나로 통합합니다. 응답은 이 작업을 기다리지 않습니다. 아직 현재 메시지를 포함하는 요약은 그 메시지가 현재 창에서 빠질 때까지 기다립니다. 통합한 요약이 여전히 몫을 넘으면 다음 업데이트에서 다시 절반으로 줄입니다.
- 각 요청에는 Combine prompt(결합 프롬프트), 길이를 절반 정도로 줄여 달라는 한 줄, 요약 텍스트만 들어갑니다. 텍스트에
{{user}}같은 매크로가 있으면 그 줄은 매크로를 적힌 그대로 유지해 달라는 요청도 합니다. 한 요청에 들어가지 않을 만큼 긴 텍스트는 나누어 보내며, 각 부분을 절반으로 줄입니다. 보조 모델의 응답은 텍스트 길이에 1,024토큰을 더한 만큼까지 길어질 수 있습니다. 상한은 8,196토큰이며, Chat Summary → Maximum output size가 더 크면 그 값입니다. - 서로 다른 캐릭터가 읽는 요약은 직접 쓴 요약을 포함해 하나로 통합됩니다. 비공개 부분은
{{#if char == "Name"}}…{{/if}}구역에 남아 그 내용을 알던 캐릭터에게만 정확히 적용됩니다. 각 캐릭터 그룹이 읽는 텍스트는 조건을 뺀 채 별도의 요청으로 줄인 다음, 원래와 같은 조건 안에 다시 넣습니다. 그룹의 순서는 각 그룹이 처음 나타나는 순서를 따릅니다. 64토큰 미만인 부분은 요청 없이 그대로 둡니다. 다른 매크로를 쓰는 요약은 그대로 둡니다. 이런 요약만으로 한 캐릭터의 몫이 차면 직접 줄이거나 예산을 늘리세요. 대체된 항목은 비활성화되므로 다시 켤 수 있습니다. - 보조 모델의 응답이 한도에서 잘리거나, 비어 있거나, 원래보다 짧지 않거나, 매크로를 추가하거나, 결과 때문에 어떤 부분을 읽을 수 있는 대상이 바뀌면 요약은 그대로 남고 업데이트는 그래도 완료됩니다. 같은 요약은 그중 하나가 바뀌거나 보조 모델이나 Combine prompt를 바꾸기 전까지 다시 보내지 않습니다. Resume processing은 오류로 멈춘 업데이트를 다시 시도합니다.
- 캐릭터의 프롬프트에 표시되는 요약의 메시지 범위와 날짜는 그 캐릭터가 볼 수 있는 메시지만을 기준으로 합니다. 혼자 답하는 Narrator는 모든 부분을 한 번씩 읽습니다.
회상이 돌려주는 내용
- 하나의 Recalled Scenes(회상된 장면) 섹션에 각 요약과 그 뒤의 발췌(있는 경우)를 범위 제목 하나 아래에 담습니다. 과거 사건을 현재 턴으로 착각하지 않도록, 이 블록에는 현재 기록 범위와 마지막 사용자 메시지 번호도 표시됩니다.
- 장면은 모든 원본 메시지가 전송되는 현재 기록 밖에 있을 때만 회상됩니다. 범위가 있는 Chat Summaries는 포함한 메시지 중 하나라도 현재 기록에 있으면 생략합니다. 이 요약은 저장된 상태와 활성 상태를 유지합니다. 해당하는 상시 요약은 선택적 회상보다 우선합니다. 선택한 모든 요약의 공간을 확보한 뒤에 발췌를 추가합니다.
- 일러스트 첨부와 이미지 설명은 회상된 텍스트와 새 요약 입력에서 제외합니다. 읽을 수 있는 텍스트 첨부는 유지합니다.
- Decision 모드가 꺼져 있으면 회상은 준비된 기억을 읽습니다. 질의 임베딩에는 짧은 시간 제한이 있으며, 시간이 지나면 텍스트 검색으로 전환합니다. 텍스트 검색은 답하는 캐릭터가 마지막으로 말한 뒤 내가 보낸 메시지의 특징적인 단어에 가중치를 둡니다. 그 메시지에서 언급한 이름이 가장 큰 가중치를 받습니다. 답하는 캐릭터와 내 페르소나의 이름, 대부분의 기억에 나오는 이름은 여기에 해당하지 않습니다. 모델 호출은 추가하지 않습니다.
- 회상은 Roleplay 주 생성에서만 실행됩니다. 에이전트 호출, 수동 에이전트 재실행, 시험 실행은 회상을 시작하지도 받지도 않습니다.
- 스와이프는 그 응답에서 저장된 가장 이른 호환 기억을 재사용합니다. 그 캐릭터가 회상할 수 있는 이전 장면이 그 뒤로 저장되거나, 편집되거나, 켜지거나 꺼졌다면 스와이프에서도 다시 회상합니다. 응답을 이어 쓰면 시작할 때의 기억을 유지합니다. 기록, 접근 설정, 요약, 기억을 바꾸면 저장된 스냅샷은 무효화됩니다.
- 원본 메시지를 편집하거나, 스와이프하거나, 숨기거나, 삭제하면 영향을 받는 기억은 사용 전에 다시 검사합니다. 과거 응답을 재생성할 때는 대상 이전의 원본만 사용합니다.
- 회상 기록에는 예상 컨텍스트 크기, 선택된 경계, 회상된 출처가 표시됩니다. 아무것도 회상하지 않았으면 이전 장면이 없었는지, 남은 공간이 없었는지, 관련된 내용이 없었는지 알려 줍니다. 프롬프트 미리보기는 준비된 기억을 사용하며 모델 호출을 시작하지 않습니다. 최종 프롬프트 검사기는 모델에 보낸 내용을 보여 줍니다.
- 회상된 장면에 발췌가 없으면 회상 기록에 그 이유가 표시됩니다. 요약을 넣은 뒤 남은 공간이 없었거나, 그 장면의 메시지를 하나도 인용할 수 없는 경우입니다.
Access memories for this chat
이 창을 열면 번호가 붙은 장면 요약을 검색하고, 이야기 속 시기와 볼 수 있는 대상을 확인하고, Summary text(요약 텍스트)를 편집하거나, Inspect source messages(원본 메시지 확인)로 원본을 읽을 수 있습니다. 레코드를 끄거나, Reindex(재색인)하거나, 내보내고 가져오거나, Delete all memories(모든 기억 삭제)로 채팅과 설정은 유지하면서 준비를 다시 시작할 수 있습니다. 수동 요약을 수정한 내용은 유지되며, 그 요약에 의존하는 연속성은 무효화됩니다. 요약 아래쪽의 Delete summary(요약 삭제)는 요약과 대상을 확인한 뒤 요약을 지웁니다. 이전 Continuity(연속성)와 Ongoing scene(진행 중 장면) 항목에도 쓸 수 있습니다. 삭제한 요약은 일반 준비 과정에서 다시 만들지 않습니다.
장면을 회상에서 제외하려면 그 기억 레코드를 끄세요. 캐릭터별 숨김은 계속 누가 접근할 수 있는지 정합니다. 전역 숨김은 보관함에서 장면을 제거하지 않습니다.
장면을 읽을 수 있는 대상
- 장면의 일부에 있었던 캐릭터는 일부 메시지가 숨겨져 있어도 그 기억에 대한 접근 권한을 공유합니다. 접근 가능한 원본 메시지가 하나도 없는 장면은 사용할 수 없습니다. 자리에 없는 캐릭터를 언급해도 참가자가 되지는 않습니다.
- 새 요약은 메시지 가시성을 표시하고, 공유된 사건은 일반 문장으로 쓰며, 비공개 부분에는
{{#if character == "Name"}}…{{/if}}를 사용합니다. 가시성이나 요약의 대상 캐릭터가 바뀌면, 그 장면을 다시 준비하거나(Fix는 이런 장면을 모두 다시 준비합니다) 비공개 조건을 검토하고 저장할 때까지 부분 접근만 가능한 독자에게 기존 요약을 제공하지 않습니다. 나중에 참여한 캐릭터는 장면의 일부만 보이는 경우가 아니면 변경으로 보지 않습니다. 오래된 요약은 캐릭터가 참여한 뒤 Fix를 한 번 실행해야 합니다. 모든 원본 메시지에 접근할 수 있는 독자는 계속 회상할 수 있습니다. 직접 수정한 텍스트는 알리지 않고 다시 쓰지 않습니다. - 장면 날짜는 지정된 모든 참가자가 공유합니다. 원문 발췌에는 캐릭터에게 숨긴 메시지나 귓속말이 절대 포함되지 않습니다. 일부 캐릭터만을 위한 부분이 있는 요약도 발췌를 받으며, 그 발췌는 해당 캐릭터가 본 내용만 인용합니다. 어떤 메시지를 캐릭터의 기억에서 빼려면 그 캐릭터에게서 메시지를 숨기세요.
- 병합된 그룹 채팅에서는 적어도 한 캐릭터가 기억하는 내용을 회상에 포함합니다. 모든 캐릭터가 알지는 못하는 장면이나 비공개 부분에는 "known only to Kaito"처럼 표시됩니다. 발췌는 그 장면을 기억하는 모든 캐릭터가 본 메시지만 인용합니다. 내레이터 전용 장면처럼 어느 캐릭터도 기억하지 못하는 내용은 포함하지 않습니다. 캐릭터가 한 명씩 답하는 그룹 채팅에서는 각 캐릭터가 자신의 기억만 회상합니다.
Decision 회상의 작동 방식
- 일반 회상은 먼저 장면 요약을 최대 24개까지 후보로 추립니다. Maximum recalled scenes가 더 크면 그 값까지 추립니다. 후보 목록은 텍스트 검색과 임베딩을 합친 것입니다. 임베딩은 답하는 캐릭터가 마지막으로 말한 뒤 내가 보낸 메시지를 최대 6개까지 각 장면과 비교합니다. 첫 응답에는 내 최신 메시지를 사용합니다. 거의 모든 장면에 임베딩이 생기기 전까지는 후보 목록이 일반 회상의 순위를 사용합니다. 가장 잘 맞는 세 장면 각각의 바로 다음 장면도 후보에 들어갑니다.
- 모델이 평가하는 장면 요약은 각각 한 줄로 시작합니다. 이 줄에는 메시지 범위, 이야기 속 날짜, 누가 말했는지가 들어갑니다. 모델은 관련 장면을 고른 뒤, 고른 장면마다 가장 잘 맞는 원본 메시지를 최대 12개까지 평가해 그 장면의 발췌를 고릅니다. 가장 좋은 선택이 중심이 되고, 나머지 선택은 Maximum messages per excerpt(발췌당 최대 메시지 수)까지 발췌를 늘립니다.
- 새 메시지마다 모델은 이야기가 다른 장소나 시간으로 넘어가는지, 다른 곳에 있는 캐릭터들로 전환되는지, 장면 구분선 뒤에 이어지는지도 확인합니다. 이때 직전 메시지 3개와 각 메시지의 작성자를 봅니다. 경계가 불확실하면 장면을 열린 상태로 둡니다. 유효한 판단이라도 아무것도 선택하지 않을 수 있습니다.
- 시간 제한: 각 단계에는 모델이 질문 하나에 필요한 시간에 질문 수를 곱하고 그 절반을 더한 정도가 주어지며, 최소 10초, 최대 25초입니다. 두 단계를 합쳐 응답마다 최대 40초입니다. 모델이 모든 질문을 처리할 수 없으면 가장 잘 맞는 것부터 더 적게 평가합니다. 요청이 짧으므로 제시간에 도착한 답은 그대로 반영됩니다. 그동안 응답에는 평소의 Thinking…(생각 중…) 안내 문구가 표시됩니다.
- 요청 하나가 실패하거나, 시간 초과되거나, 너무 크면 해당 기억만 일반 회상으로 골라 모델이 고른 장면 뒤에 두며, 회상 기록에 그렇게 표시됩니다. 연결이 없거나 한 단계에서 답이 하나도 오지 않으면 완전히 후보 목록의 순위와 텍스트 검색으로 전환합니다. 장면 판단을 사용할 수 없으면 기본 장면 검사로 전환합니다.
- 이 모드에서도 임베딩을 만듭니다. 새로 요약된 장면은 바로 임베딩을 받습니다. 오래된 장면과 다른 임베딩 모델로 만든 장면은 응답 후에 몇 개씩 임베딩을 받습니다. Reindex는 한 번에 모두 만듭니다.
- Peek Prompt → Decision diagnostics → Advanced Memory activity(프롬프트 미리보기 → 결정 진단 → 고급 기억 활동)에는 최근 회상과 장면 검사의 저장된 결과가 표시됩니다. 모델, 시간, 점수, 선택된 기억이나 장면 시작 지점, 대체 처리 상태, 장면에 발췌가 없는 이유를 볼 수 있습니다. 최대 128개 결과를 보관합니다. 예측이 아니라 과거 활동입니다. 열어도 판단을 다시 실행하지 않습니다. 호환되는 스와이프는 저장된 선택을 재사용합니다. 이어 쓰기는 기억을 다시 고릅니다.
- 호스팅 Decision 계정은 컨텍스트 예산 안에서 제한된 묶음을 받습니다. 관리형 Open-Jev 모델은 측정한 질문당 시간을 사용하며, Decision 계정은 한 요청의 질문에 한꺼번에 답하므로 요청마다 한 번만 셉니다.
프리셋 배치
프리셋 제작자는 평소의 섹션 순서, 이름, 역할, 그룹 설정으로 다음 콘텐츠 마커를 배치할 수 있습니다.
| 마커 | 콘텐츠 |
chat_summary | Chat Summaries의 해당하는 상시 항목. |
current_scene_summary | 진행 중 장면의 오래된 부분에서 가져온 원본 발췌. |
recalled_scenes | 선택한 모든 장면 요약과 각 요약 바로 뒤의 발췌. |
각 마커는 프리셋의 XML, Markdown, None 형식을 따릅니다. 빈 구성 요소는 아무것도 출력하지 않습니다. 처음 활성화된 마커가 위치를 정합니다. 활성 마커가 없는 구성 요소는 기록 앞에 한 번 추가되므로 기존 프리셋도 작동합니다. 프리셋 선택기에는 Recalled Scenes만 있습니다. 기존 recalled_messages 마커는 별칭이며, 활성 recalled_scenes 마커가 우선합니다. Advanced Memory가 꺼져 있으면 이 마커는 비어 있습니다.
한계
회상은 선택적이며 요약은 뉘앙스를 놓칠 수 있습니다. 중요한 수정은 원본 기록이나 요약 편집기에 남기세요. 임베딩이 실패해도 제한된 텍스트 회상과 유효한 연속성은 남습니다. 보관함 전체를 삽입하지는 않습니다. 지침이나 첨부가 상한에 들어가지 않으면 줄이거나 상한을 늘리세요. 응답 예약분이 모델 전체 컨텍스트에 들어가지 않으면 출력 크기를 줄이거나 컨텍스트가 더 큰 모델을 고르세요. Advanced Memory는 지침을 몰래 지우지 않고 중단합니다.
Advanced 모드가 켜져 있는 동안은 이 모드가 검색을 담당하므로 Standard Recall이 같은 내용을 두 번 넣지 않습니다. 해당 채팅의 일반적인 Roleplay 자동 요약 일정도 대신합니다. 끄면 기존 설정으로 돌아갑니다. 기존 로어북과 다운로드 에이전트에는 각각의 범위 규칙이 적용됩니다.
관련 가이드
- 내장 모델 설정
- AI 제공자에 연결하기
- Conversation Mode: 시작하기
- Roleplay Mode: 시작하기
- Marinara Engine 문제 해결