> ## Documentation index
> Fetch the complete documentation index at: https://dify-docs.docs7.io/llms.txt
> Ask it with GET https://dify-docs.docs7.io/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.

# Agent ナレッジ検索

> Agent ナレッジベースを検索し、関連するコンテンツを後続のノードに渡す

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/cloud/use-dify/nodes/knowledge-retrieval-v2) を参照してください。

<Info>
Agent ナレッジ検索ノードはベータ版です。
</Info>

**Agent ナレッジ検索** を使うと、[Agent ナレッジベース](/ja/cloud/use-dify/knowledge-base/overview) から関連するコンテンツを探し、後続のノードで使えるようにできます。たとえば、LLM が回答する際のコンテキストとして使います。

<Info>
[従来型ナレッジベース](/ja/cloud/use-dify/knowledge/readme) を検索する場合は、代わりに [従来型の知識検索ノード](/ja/cloud/use-dify/nodes/knowledge-retrieval) を使ってください。
</Info>

## クエリの設定

テキスト、画像、またはその両方で検索します。

- **クエリテキスト**：テキスト変数を選択します。テキストは最大 16,000 文字です。

    - Chatflow アプリでは、現在のユーザーメッセージを表す組み込み変数 `userinput.query` を使います。

    - Workflow アプリでは、**ユーザー入力** の変数か、前のノードで用意したテキストを使います。

- **画像を検索**：画像 1 枚、または画像の配列を含む変数を選択します。1 回のクエリに含められる画像は、GIF、JPEG、PNG、WebP 形式で最大 4 枚です。サイズは 1 枚あたり 10 MB まで、合計 32 MB までです。

    上限を超える画像や、画像以外のファイルがあると、ノードは失敗します。Chatflow アプリでは、[ファイルアップロード](/ja/cloud/use-dify/build/additional-features#ファイルアップロード) で、画像のみを 1 メッセージあたり最大 4 枚まで受け付けるように設定してください。

    対応するモデルの組み合わせについては、[マルチモーダル検索](/ja/cloud/use-dify/knowledge-base/multimodal-retrieval) を参照してください。

    <Note>
    画像のみで検索する場合は、選択したすべてのナレッジベースで、ビジョン対応の埋め込みモデルまたは推論モデルが使われていることを確認してください。そうでない場合、ノードは失敗し、結果を返しません。
    </Note>

## Agent ナレッジベースの選択

ナレッジベースは最大 10 個まで選択できます。ノードはクエリごとに、選択したすべてのナレッジベースを検索し、結果をまとめます。

選択肢にナレッジベースが見つからない場合は、そのナレッジベースの権限を管理できるユーザーにアクセス権を依頼してください。

<Note>
選択したナレッジベースのいずれかで検索に失敗すると、ノードは部分的な結果も返さず、現在の実行は停止します。
</Note>

## 検索の調整

各ナレッジベースに設定された [検索の深度](/ja/cloud/use-dify/knowledge-base/retrieval-settings#retrieval-depth) をそのまま使うか、このノード内のすべてのナレッジベースに同じ深度を適用します。

<Info>
    検索テストとは異なり、「リサーチ」では回答を生成せず、一致したチャンクだけを返します。
</Info>

リランクモデル、Top K、スコアしきい値は、選択したすべてのナレッジベースの結果をまとめたものに適用されます。画像のみで検索する場合、ノードは結果をリランクしません。

各設定の詳細は、[検索設定](/ja/cloud/use-dify/knowledge-base/retrieval-settings) を参照してください。

## 検索対象ドキュメントの絞り込み {#filter-by-metadata}

通常、検索はナレッジベース内のすべてのドキュメントを対象にします。メタデータを使うと、条件に一致するドキュメントだけに検索を絞り込めます。よくあるのは、1 つのナレッジベースを複数のアプリで共有し、アプリごとにその一部だけをもとに回答させたい場合です。

たとえば、社内規程のナレッジベースに国ごとのガイドラインが入っているとします。地域ごとに、このナレッジベースを使った従業員向けのアシスタントアプリもあります。フィルターがなければ、EU のアシスタントが育児休業に関する質問に、米国のガイドラインをもとに回答してしまうおそれがあります。

これを防ぐには、各ドキュメントにその内容を表すラベルを付け、そのラベルで検索を絞り込みます。

1. ナレッジベースの **ドキュメント** ページで **メタデータ** をクリックし、絞り込みに使う情報ごとにフィールドを追加します。この社内規程のナレッジベースでは、タイプが「文字列」の `region` フィールドを 1 つ追加します。

    タイプは後から変更できないため、どう絞り込むかを考えて選んでください。比較する値には「数値」、前後で絞り込む日付には「時間」を選びます。

2. 各ドキュメントを開いて **ラベリングを開始** をクリックし、フィールドを選んで値を入力します。EU のガイドラインには `eu`、米国のガイドラインには `us` を入力します。

    ソースの同期でドキュメントの内容が更新されても、ラベルはそのまま残ります。

3. このノードで **メタデータフィルタ** を **手動設定** にし、条件を追加します。EU のアシスタントでは「`region` が `eu` である」という条件を追加すると、EU のガイドラインだけをもとに回答するようになります。

    **自動生成** を選んで、質問ごとにモデルに条件を判断させることもできます。ただし、LLM が条件を判断できない場合は絞り込みなしで検索されるため、絞り込みを必ず適用したい場合は **手動設定** を使ってください。

    ノードで複数のナレッジベースを同時に検索する場合は、共通のフィールドにどのナレッジベースでも同じ名前とタイプを付けてください。フィルターに使えるのは、すべてのナレッジベースに存在するフィールドだけです。

## 取得したコンテンツからの回答生成

同じ実行パス上にある後続の [LLM ノード](/ja/cloud/use-dify/nodes/llm) で、次のように設定します。

<Steps>
    <Step title="取得したコンテンツの受け渡し">
        **コンテキスト** でこのノードの `result` 変数を選択し、プロンプトに **コンテキスト** 変数を挿入します。
    </Step>
    <Step title="クエリの受け渡し">
        LLM ノードの **ユーザー** メッセージに、クエリに使ったものと同じ変数を挿入します。画像で検索する場合は、ビジョン対応のモデルを選びます。
    </Step>
    <Step title="回答方法の指示">
        取得したコンテンツを使ってクエリに回答するよう、プロンプトで LLM に指示します。
    </Step>
</Steps>

<Info>
ナレッジベースで見つかった画像は、テキストとしてのみ後続のノードに渡されます。渡されるのは、キャプション、代替テキスト、または画像から読み取ったテキストで、画像ファイルそのものは渡されません。
</Info>

## 一致がない場合の処理

一致するコンテンツがない場合も、ノードは成功し、空の `result` を返します。

取得したコンテンツがないときに LLM に回答させたくない場合は、このノードと LLM の間に [IF/ELSE ノード](/ja/cloud/use-dify/nodes/ifelse) を追加し、`result` が空かどうかを確認します。
