知識ソース: Knowledge RetrievalとKnowledge Routerエージェント

Knowledge Retrieval(知識の取得)とKnowledge Router(知識の振り分け)は、シーンで必要になったときだけ、ロアブックから事実を取り出してチャットに渡します。細かい設定をすべて毎回のプロンプトに入れる必要はありません。どちらのエージェントもRoleplayチャットでのみ動作し、どちらもデフォルトではオフです。

使う理由

ロアブックとは、世界やキャラクターについてのメモを集めたものです。1つ1つのメモをエントリーと呼びます。毎ターンすべてのエントリーを送ると、トークン(モデルが読み取り、料金の対象になる文章の小さな単位)を無駄にし、AIを混乱させることもあります。

これらのエージェントは、検索拡張生成(retrieval-augmented generation、RAG)を使います。Marinaraは今のシーンに合うエントリーを探し、そのターンのプロンプトにはそれだけを追加します。

RetrievalとRouterのどちらを選ぶか

質問Knowledge RetrievalKnowledge Router
内容の追加のしかたソースをまず要約する選んだエントリーをそのまま追加する
1ターンあたりの費用高め低め
アップロードしたファイルを読めるかはいいいえ
向いている場面ソースが小さいとき、または要約をすっきりまとめたいときエントリーの説明が充実した大きなロアブック

1つのチャットに両方を追加することもできますが、内容が重なり、費用が増えます。両方を設定すると、エージェントエディターが警告します。どちらか一方を選んでください。

知識系エージェントをチャットに追加する

始める前に: Agent Organizer(エージェント管理)からエージェントをインストールします。エージェント: チャットを支えるAIヘルパーを参照してください。

  1. Roleplayのチャットで、Chat Settings(チャット設定)を開きます。
  2. Agents(エージェント)セクションを探し、Enable Agents(エージェントを有効にする)をオンにします。
  3. Add Agent(エージェントの追加)をクリックします。
  4. Writer Agents(執筆エージェント)のグループを開き、Knowledge RetrievalかKnowledge Routerを選びます。
  5. 設定ウィンドウで、ソースを選びます(下記を参照)。

すると、そのエージェントの設定カードがAgentsに表示され、新しいターンごとにエージェントが動きます。Knowledge Retrievalの実行中は、進行状況の表示にRetrieving knowledge...と出ることがあります。

Note: これらのエージェントは、新しいターンでのみ動きます。返信を再生成したときには、もう一度動くことはありません。

ソースを選ぶ

どちらのエージェントも、同じソースの設定を使います。

1つのエージェントにいつも同じ参照用のロアブックを読ませたいときは、固定ソースを使います。チャットが使っているロアブックに合わせたいときは、トグルをオンにしたまま、固定の選択を空にしておきます。

ファイルをアップロードする(Knowledge Retrievalのみ)

Knowledge Retrievalの設定でUpload file(ファイルのアップロード)をクリックします。アップロードしたファイルは、Knowledge Retrievalを使うすべてのチャットで利用できます。

対応する形式は.txt、.md、.csv、.json、.xml、.html、.htm、.log、.yaml、.yml、.tsv、.pdfです。それ以外の形式は、ファイル選択の画面で選べません。各ファイルには、名前とサイズが削除ボタンとともに表示されます。

エントリーの説明の書き方

これがとくに重要になるのはKnowledge Routerです。Knowledge Routerは、各エントリーのDescription(説明)でエントリーを選びます。

  1. ロアブックエディターでエントリーを開きます。
  2. Descriptionに、そのエントリーが扱う内容を短く具体的にまとめて入力します。

Routerは、説明をエントリーの選択だけに使います。物語の内容としてメインのAIに送られることはありません。説明がない場合、Routerは代わりにエントリー本文の冒頭部分を使いますが、精度は落ちます。

Routerのソースにロアブックを選ぶと、Fixed source overrideの横にカバー率のバッジが表示されます。たとえば75% described (9/12)のように表示されます。点の色は、75%以上で緑、25%から74%で黄色、25%未満で赤になります。空のロアブックではNo entries yetと表示されます。緑を目指してください。

任意の機能: 意味による候補の絞り込み

Knowledge Routerは、キーワードだけでなく意味からも候補のエントリーを探せます。これにはエンベッダーを使います。エンベッダーとは、Marinaraが意味を比べられるように文章を数値に変える小さなモデルです。エンベッダーがなくてもRouterは動きます。

  1. ロアブックエディターを開き、Semantic search (embeddings)(埋め込みによるセマンティック検索)を探します。
  2. 埋め込みモデルを持つアカウントを選びます。Connections → Defaults(接続 → デフォルト)でEmbeddings(埋め込み)のデフォルトを設定している場合は、以前に別のソースを選んでいない限り、それが自動で選ばれます。
  3. チャットで使うアカウントと同じ埋め込みソースを使います。サイズの違うベクトルはスキップされます。
  4. ベクトル化のボタンをクリックします。ボタンには、まだベクトルがないエントリーの件数が表示されます。Re-vectorize allは、すべてのエントリーをやり直します。

ロアブックにベクトルがない場合や、使えるエンベッダーがない場合、Routerはキーワードだけで候補の一覧を作ります。何かが壊れることはありません。ロアブックのセマンティック検索を参照してください。

関連ガイド