로어북 토큰 예산과 재귀 스캔
예산은 AI에 전달되는 로어북 텍스트의 양을 제한해서 로어북이 채팅 내용을 밀어내지 않게 합니다. 이 가이드에서는 로어북마다 있는 Token Budget(토큰 예산)과 Entry Limit(항목 제한), 채팅의 Lorebook Token Budget(로어북 토큰 예산), Marinara가 항목을 추려내는 방식, Recursive(재귀 활성화) 스캔을 설명합니다.
토큰은 모델이 세는 작은 텍스트 조각입니다. 모델의 컨텍스트 창은 한 번에 읽을 수 있는 텍스트의 양이며, 토큰 단위로 셉니다. 로어북 텍스트는 이 창을 프롬프트의 나머지 부분과 함께 나눠 씁니다.
두 가지 토큰 예산
Marinara는 프롬프트를 만들 때마다 예산 2가지를 적용합니다. 어느 한쪽이라도 한도를 넘기게 되는 항목은 건너뜁니다.
- 로어북마다 자체 Token Budget이 있습니다. 그 로어북이 답변 한 번에 추가할 수 있는 최대 토큰 수입니다.
- 채팅마다 Lorebook Token Budget이 하나 있습니다. 활성화된 모든 로어북이 합쳐서 추가할 수 있는 최대 토큰 수입니다.
로어북의 Token Budget과 Entry Limit 설정
- Lorebooks(로어북) 패널에서 로어북을 여세요.
- Overview(개요) 탭을 클릭하세요.
- Token Budget과 Entry Limit을 설정하세요.
| 설정 | 기본값 | 하는 일 |
| Token Budget | 2048 | 이 로어북이 답변 한 번에 추가하는 최대 토큰 수입니다. 0은 제한 없음을 뜻합니다. |
| Entry Limit | 100 | 이 로어북이 답변 한 번에 추가하는 최대 항목 수입니다. 범위는 1에서 1000까지입니다. |
Entry Limit은 토큰이 아니라 항목 개수를 셉니다. 로어북은 두 한도 중 어느 하나에 도달하면 항목 추가를 멈춥니다.
예를 들어 Token Budget이 2048이면 3000 토큰짜리 항목 하나는 절대 추가될 수 없습니다. 로어북이 자리를 너무 많이 차지하면 예산을 낮추세요. 중요한 항목이 계속 빠진다면 예산을 올리세요.
채팅의 Lorebook Token Budget 설정하기
- 채팅을 여세요.
- Chat Settings(채팅 설정)를 여세요.
- Lorebooks 섹션을 찾아 Lorebook Token Budget을 설정하세요.
기본값은 8192이고, 0은 제한 없음을 뜻합니다. 이 값은 이 채팅에서 활성화된 모든 로어북을 합한 총량이며, 로어북별 Token Budget에 더해 적용됩니다.
항목이 추려지는 방식
예산이 허용하는 것보다 많은 항목이 일치하면 Marinara는 다음 순서로 항목을 추가합니다.
- Constant(상시) 항목.
- 최근 메시지에 일치한 항목.
- 나머지 항목. 주입 순서(항목의 Order(순서) 필드)를 따릅니다.
Marinara는 아직 들어갈 자리가 있는 항목을 하나씩 추가합니다. 들어가지 않는 항목이 있으면 그 항목만 건너뛰고 나머지를 계속 확인하므로, 큰 항목이 빠진 뒤에도 작은 항목은 들어갈 수 있습니다.
Active Context에서 건너뛴 항목 확인하기
- Chat Settings를 여세요.
- Active Context(활성 컨텍스트)를 펼치세요. 가장 최근 로어북 스캔 결과가 표시됩니다.
일치한 항목 중 건너뛴 것이 있으면 맨 위에 "N matching lore entries were skipped by token budget."라는 알림이 나타납니다. 알림에는 항목을 건너뛴 예산과 각 예산을 바꾸는 위치가 표시됩니다. 펼치면 건너뛴 항목마다 소속 로어북, 일치한 키워드, 추정 크기, 예산을 얼마나 사용했는지가 표시됩니다. 이유는 다음 중 하나입니다.
| 이유 | 의미 |
| lorebook budget(로어북 예산) | 해당 로어북의 Token Budget에 들어가지 못했습니다. |
| chat budget(채팅 예산) | 채팅의 Lorebook Token Budget에 들어가지 못했습니다. |
| lorebook and chat budgets(로어북 및 채팅 예산) | 두 한도가 이미 모두 찼습니다. |
| current-location context cap(현재 위치 컨텍스트 한도) | 현재 지도 위치에 연결된 항목입니다. 이 위치에는 2,048 토큰의 별도 고정 한도가 있습니다. |
본문이 비어 있거나 매크로를 처리하면 아무 내용도 남지 않는 항목은 목록에 나오지 않습니다. 그래도 매크로는 실행되므로 항목 안의 {{setvar}}는 변수를 그대로 설정합니다. 두 예산을 모두 0으로 두면 건너뛴 항목을 표시할 수 있는 것은 위치 한도뿐입니다.
큰 로어북이 계속 빠진다면 Active Context가 Knowledge Retrieval(지식 검색) 또는 Knowledge Router(지식 라우터) 에이전트를 권합니다. 지식 소스를 참고하세요. 이런 에이전트는 한도를 올리는 것보다 큰 로어북에 더 잘 맞는 경우가 많습니다.
재귀 스캔
기본적으로 Marinara는 최근 메시지에서만 키를 찾습니다. Recursive를 켜면 새로 활성화된 항목의 본문도 훑으므로, 한 항목이 관련 항목을 끌어올 수 있습니다.
- 로어북을 열고 Overview를 클릭하세요.
- Recursive를 켜세요. 기본값은 꺼짐입니다.
- 연쇄가 이어지는 범위를 바꾸려면 Max Depth(최대 깊이)를 설정하세요.
Max Depth는 추가 스캔 횟수입니다. 기본값은 3이고 범위는 1에서 10까지입니다. 값이 클수록 연결된 로어를 더 많이 찾아내고 처리량도 늘어납니다.
각 항목에도 자체 Recursion(재귀) 토글이 있으며 기본값은 꺼짐입니다. 이 토글은 그 항목의 내용이 다른 항목을 불러올 수 있는지를 결정합니다. 연쇄되어야 하는 항목이 아니라면 꺼 두세요. 로어북 항목: 키, 위치, 타이밍을 참고하세요.
재귀 스캔이라고 해서 예산을 건너뛰지는 않습니다. 재귀 스캔으로 찾은 항목도 Token Budget, Entry Limit, 채팅의 Lorebook Token Budget에 포함됩니다.
관련 가이드
- 로어북 항목: 키, 위치, 타이밍
- 로어북 개요
- 지식 소스: Retrieval 에이전트와 Router 에이전트