ロアブックのトークン予算と再帰

予算は、AIに届くロアブックのテキスト量を制限し、ロアブックがチャットを押し出さないようにします。このガイドでは、ロアブックごとのToken Budget(トークン予算)とEntry Limit(エントリー数の上限)、チャットのLorebook Token Budget(ロアブックのトークン予算)、Marinaraがエントリーを削る仕組み、Recursive(再帰)スキャンを取り上げます。

トークンとは、モデルが数える文章の小さな単位です。モデルのコンテキストウィンドウとは、一度に読み込めるテキストの量で、トークン数で数えます。ロアブックのテキストは、プロンプトのほかの部分とこのウィンドウを分け合います。

2つのトークン予算

Marinaraはプロンプトを組み立てるたびに、2つの予算を適用します。追加するとどちらか一方でも上限を超えてしまうエントリーは見送られます。

ロアブックのToken BudgetとEntry Limitを設定する

  1. Lorebooksパネルからロアブックを開きます。
  2. Overview(概要)タブをクリックします。
  3. Token BudgetとEntry Limitを設定します。
設定デフォルト働き
Token Budget2048このロアブックが1回の返信で追加するトークン数の上限です。0にすると無制限になります。
Entry Limit100このロアブックが1回の返信で追加するエントリー数の上限です。範囲は1から1000です。

Entry Limitが数えるのは、トークンではなくエントリーの数です。ロアブックは、どちらかの上限に達した時点でエントリーの追加をやめます。

たとえばToken Budgetが2048なら、3000トークンのエントリー1つは決して追加されません。ロアブックが場所を取りすぎているときは、予算を下げてください。重要なエントリーが何度も見送られるときは、予算を上げてください。

チャットのLorebook Token Budgetを設定する

  1. チャットを開きます。
  2. Chat Settings(チャット設定)を開きます。
  3. Lorebooksセクションを探し、Lorebook Token Budgetを設定します。

デフォルトは8192で、0にすると無制限になります。この予算は、このチャットで有効なすべてのロアブックの合計にかかり、ロアブックごとのToken Budgetに加えて働きます。

エントリーが削られる仕組み

予算で許される以上のエントリーが一致したとき、Marinaraは次の順でエントリーを追加します。

  1. Constantのエントリー
  2. 直近のメッセージに一致したエントリー
  3. 挿入順(エントリーのOrder(順序)欄)に並べた残りのエントリー

Marinaraは、まだ収まるエントリーを1つずつ追加します。収まらないエントリーは飛ばして、残りの確認を続けます。そのため、大きいエントリーが見送られたあとでも、小さいエントリーなら入ることがあります。

Active Contextで見送られたエントリーを確認する

  1. Chat Settings(チャット設定)を開きます。
  2. 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つのエントリーから関連するエントリーを引き込めます。

  1. ロアブックを開き、Overview(概要)をクリックします。
  2. Recursiveをオンにします。デフォルトはオフです。
  3. どこまで連鎖させるかを変えたいときは、Max Depth(最大深度)を設定します。

Max Depthは、追加で行うスキャンの回数です。デフォルトは3で、範囲は1から10です。値を大きくするほど関連するロアが多く見つかり、処理も多く使います。

各エントリーにも独自のRecursionトグルがあり、デフォルトはオフです。このトグルで、そのエントリーの本文からさらにエントリーを発動できるかどうかが決まります。連鎖させたいエントリー以外は、オフのままにしてください。ロアブックのエントリー: キー、位置、タイミングを参照してください。

再帰でも予算は迂回できません。再帰のスキャンで見つかったエントリーも、Token Budget、Entry Limit、チャットのLorebook Token Budgetを消費します。

関連ガイド