ロアブックのトークン予算と再帰
予算は、AIに届くロアブックのテキスト量を制限し、ロアブックがチャットを押し出さないようにします。このガイドでは、ロアブックごとのToken Budget(トークン予算)とEntry Limit(エントリー数の上限)、チャットのLorebook Token Budget(ロアブックのトークン予算)、Marinaraがエントリーを削る仕組み、Recursive(再帰)スキャンを取り上げます。
トークンとは、モデルが数える文章の小さな単位です。モデルのコンテキストウィンドウとは、一度に読み込めるテキストの量で、トークン数で数えます。ロアブックのテキストは、プロンプトのほかの部分とこのウィンドウを分け合います。
2つのトークン予算
Marinaraはプロンプトを組み立てるたびに、2つの予算を適用します。追加するとどちらか一方でも上限を超えてしまうエントリーは見送られます。
- ロアブックごとにToken Budgetがあります。そのロアブックが1回の返信に追加できるトークン数の上限です。
- チャットごとにLorebook Token Budgetが1つあります。有効なすべてのロアブックを合わせて追加できるトークン数の上限です。
ロアブックのToken BudgetとEntry Limitを設定する
- Lorebooksパネルからロアブックを開きます。
- Overview(概要)タブをクリックします。
- Token BudgetとEntry Limitを設定します。
| 設定 | デフォルト | 働き |
| Token Budget | 2048 | このロアブックが1回の返信で追加するトークン数の上限です。0にすると無制限になります。 |
| Entry Limit | 100 | このロアブックが1回の返信で追加するエントリー数の上限です。範囲は1から1000です。 |
Entry Limitが数えるのは、トークンではなくエントリーの数です。ロアブックは、どちらかの上限に達した時点でエントリーの追加をやめます。
たとえばToken Budgetが2048なら、3000トークンのエントリー1つは決して追加されません。ロアブックが場所を取りすぎているときは、予算を下げてください。重要なエントリーが何度も見送られるときは、予算を上げてください。
チャットのLorebook Token Budgetを設定する
- チャットを開きます。
- Chat Settings(チャット設定)を開きます。
- Lorebooksセクションを探し、Lorebook Token Budgetを設定します。
デフォルトは8192で、0にすると無制限になります。この予算は、このチャットで有効なすべてのロアブックの合計にかかり、ロアブックごとのToken Budgetに加えて働きます。
エントリーが削られる仕組み
予算で許される以上のエントリーが一致したとき、Marinaraは次の順でエントリーを追加します。
- Constantのエントリー
- 直近のメッセージに一致したエントリー
- 挿入順(エントリーのOrder(順序)欄)に並べた残りのエントリー
Marinaraは、まだ収まるエントリーを1つずつ追加します。収まらないエントリーは飛ばして、残りの確認を続けます。そのため、大きいエントリーが見送られたあとでも、小さいエントリーなら入ることがあります。
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(再帰)をオンにすると、新しく発動したエントリーの本文も探すため、1つのエントリーから関連するエントリーを引き込めます。
- ロアブックを開き、Overview(概要)をクリックします。
- Recursiveをオンにします。デフォルトはオフです。
- どこまで連鎖させるかを変えたいときは、Max Depth(最大深度)を設定します。
Max Depthは、追加で行うスキャンの回数です。デフォルトは3で、範囲は1から10です。値を大きくするほど関連するロアが多く見つかり、処理も多く使います。
各エントリーにも独自のRecursionトグルがあり、デフォルトはオフです。このトグルで、そのエントリーの本文からさらにエントリーを発動できるかどうかが決まります。連鎖させたいエントリー以外は、オフのままにしてください。ロアブックのエントリー: キー、位置、タイミングを参照してください。
再帰でも予算は迂回できません。再帰のスキャンで見つかったエントリーも、Token Budget、Entry Limit、チャットのLorebook Token Budgetを消費します。
関連ガイド
- ロアブックのエントリー: キー、位置、タイミング
- ロアブックの概要
- 知識ソース: Knowledge RetrievalとKnowledge Routerエージェント