知識ソース: Knowledge RetrievalとKnowledge Routerエージェント
Knowledge Retrieval(知識の取得)とKnowledge Router(知識の振り分け)は、シーンで必要になったときだけ、ロアブックから事実を取り出してチャットに渡します。細かい設定をすべて毎回のプロンプトに入れる必要はありません。どちらのエージェントもRoleplayチャットでのみ動作し、どちらもデフォルトではオフです。
使う理由
ロアブックとは、世界やキャラクターについてのメモを集めたものです。1つ1つのメモをエントリーと呼びます。毎ターンすべてのエントリーを送ると、トークン(モデルが読み取り、料金の対象になる文章の小さな単位)を無駄にし、AIを混乱させることもあります。
これらのエージェントは、検索拡張生成(retrieval-augmented generation、RAG)を使います。Marinaraは今のシーンに合うエントリーを探し、そのターンのプロンプトにはそれだけを追加します。
RetrievalとRouterのどちらを選ぶか
| 質問 | Knowledge Retrieval | Knowledge Router |
| 内容の追加のしかた | ソースをまず要約する | 選んだエントリーをそのまま追加する |
| 1ターンあたりの費用 | 高め | 低め |
| アップロードしたファイルを読めるか | はい | いいえ |
| 向いている場面 | ソースが小さいとき、または要約をすっきりまとめたいとき | エントリーの説明が充実した大きなロアブック |
- Knowledge Retrievalは、選んだロアブックの有効なエントリーすべてと、アップロードしたファイルを読み、直近のメッセージに合う事実を要約するようAIに依頼します。AIがソースのテキストをすべて読むため、費用が高くなります。
- Knowledge Routerは、エントリーの小さなカタログを作ります。各行には、ID、名前、いくつかのキーワード、短い要約が入ります。AIはカタログからエントリーを選び、Marinaraがそれを全文で追加します。AIがすべてのエントリーを読むことはないため、大きなロアブックでもRouterは費用を抑えられます。
1つのチャットに両方を追加することもできますが、内容が重なり、費用が増えます。両方を設定すると、エージェントエディターが警告します。どちらか一方を選んでください。
知識系エージェントをチャットに追加する
始める前に: Agent Organizer(エージェント管理)からエージェントをインストールします。エージェント: チャットを支えるAIヘルパーを参照してください。
- Roleplayのチャットで、Chat Settings(チャット設定)を開きます。
- Agents(エージェント)セクションを探し、Enable Agents(エージェントを有効にする)をオンにします。
- Add Agent(エージェントの追加)をクリックします。
- Writer Agents(執筆エージェント)のグループを開き、Knowledge RetrievalかKnowledge Routerを選びます。
- 設定ウィンドウで、ソースを選びます(下記を参照)。
すると、そのエージェントの設定カードがAgentsに表示され、新しいターンごとにエージェントが動きます。Knowledge Retrievalの実行中は、進行状況の表示にRetrieving knowledge...と出ることがあります。
Note: これらのエージェントは、新しいターンでのみ動きます。返信を再生成したときには、もう一度動くことはありません。
ソースを選ぶ
どちらのエージェントも、同じソースの設定を使います。
- Use chat-active lorebooks(チャットで有効なロアブックを使う)は、デフォルトでオンです。エージェントエディターでは、同じトグルがUse this chat's active lorebooksと表示されます。オンのまま固定のロアブックを選ばなければ、エージェントは今のチャットで有効なロアブックを読みます。
- Fixed source override(固定ソースの上書き)は、設定ウィンドウではFixed Source Lorebooksと表示され、エージェントが読むソースを選んだロアブックに固定します。固定した選択は、このエージェントを使うすべてのチャットで、チャットで有効なロアブックより常に優先されます。
1つのエージェントにいつも同じ参照用のロアブックを読ませたいときは、固定ソースを使います。チャットが使っているロアブックに合わせたいときは、トグルをオンにしたまま、固定の選択を空にしておきます。
ファイルをアップロードする(Knowledge Retrievalのみ)
Knowledge Retrievalの設定でUpload file(ファイルのアップロード)をクリックします。アップロードしたファイルは、Knowledge Retrievalを使うすべてのチャットで利用できます。
対応する形式は.txt、.md、.csv、.json、.xml、.html、.htm、.log、.yaml、.yml、.tsv、.pdfです。それ以外の形式は、ファイル選択の画面で選べません。各ファイルには、名前とサイズが削除ボタンとともに表示されます。
- PDF以外のファイルは、すべてプレーンテキストとして読み込みます。画像の拡張子を
.txtに変えたファイルのように、テキストでないファイルもアップロードはできますが、読めない内容が追加されます。 - スキャンしたPDFや画像だけのPDFには、テキストのレイヤーがありません。エージェントは内容の代わりにプレースホルダーを挿入します。文字を選択できるPDFを使ってください。
エントリーの説明の書き方
これがとくに重要になるのはKnowledge Routerです。Knowledge Routerは、各エントリーのDescription(説明)でエントリーを選びます。
- ロアブックエディターでエントリーを開きます。
- Descriptionに、そのエントリーが扱う内容を短く具体的にまとめて入力します。
Routerは、説明をエントリーの選択だけに使います。物語の内容としてメインのAIに送られることはありません。説明がない場合、Routerは代わりにエントリー本文の冒頭部分を使いますが、精度は落ちます。
Routerのソースにロアブックを選ぶと、Fixed source overrideの横にカバー率のバッジが表示されます。たとえば75% described (9/12)のように表示されます。点の色は、75%以上で緑、25%から74%で黄色、25%未満で赤になります。空のロアブックではNo entries yetと表示されます。緑を目指してください。
任意の機能: 意味による候補の絞り込み
Knowledge Routerは、キーワードだけでなく意味からも候補のエントリーを探せます。これにはエンベッダーを使います。エンベッダーとは、Marinaraが意味を比べられるように文章を数値に変える小さなモデルです。エンベッダーがなくてもRouterは動きます。
- ロアブックエディターを開き、Semantic search (embeddings)(埋め込みによるセマンティック検索)を探します。
- 埋め込みモデルを持つアカウントを選びます。Connections → Defaults(接続 → デフォルト)でEmbeddings(埋め込み)のデフォルトを設定している場合は、以前に別のソースを選んでいない限り、それが自動で選ばれます。
- チャットで使うアカウントと同じ埋め込みソースを使います。サイズの違うベクトルはスキップされます。
- ベクトル化のボタンをクリックします。ボタンには、まだベクトルがないエントリーの件数が表示されます。Re-vectorize allは、すべてのエントリーをやり直します。
ロアブックにベクトルがない場合や、使えるエンベッダーがない場合、Routerはキーワードだけで候補の一覧を作ります。何かが壊れることはありません。ロアブックのセマンティック検索を参照してください。
関連ガイド
- ロアブックのセマンティック検索
- ロアブックの概要
- エージェント: チャットを支えるAIヘルパー