> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dify-guide/chatflow/dify-docs-configure-knowledge-retrieval-node.md).

# ナレッジ検索ノードの設定

\*\*ナレッジ検索ノード（Knowledge Retrieval）\*\*は、接続されたナレッジベース（Knowledge Base）からユーザーの質問に関連する情報を検索・取得するためのノードです。 取得した情報はコンテキストとして後続のLLMノードに渡され、RAG（Retrieval-Augmented Generation）を実現するために使用されます。

## 設定手順

### 1. ノードの配置

1. ワークフローエディタのノードパネルから「**ナレッジ検索（Knowledge Retrieval）**」を選択し、キャンバスに追加します。
2. 開始ノード、または質問を受け取る前のノードの後ろに接続します。

### 2. ナレッジベースの選択

![dify-docs-configure-knowledge-retrieval-node\_dhkk\_flow\_editor 1.png](/files/jWW3AhAht2Nx1B9yEqfe)

1. ノード内の「＋**ナレッジを追加（Add Knowledge）**」をクリックします。
2. リストから検索対象としたいナレッジベースを選択します。
3. 必要に応じて複数のナレッジベースを選択可能です。

### 3. クエリ（検索ワード）の設定

検索に使用するキーワードを設定します。

* **設定値**: 通常はユーザーの入力変数（例: `sys.query`）を指定します。
* **変数の挿入**: 入力欄の「{x}」マークをクリックするか、`{{`を入力して変数を呼び出せます。

## 主要な設定パラメータ

検索精度を調整するためのパラメータです。

| 項目名                 | 説明                                        | 推奨設定例       |
| ------------------- | ----------------------------------------- | ----------- |
| **クエリ変数**           | 検索に使用する入力値。                               | `sys.query` |
| **TopK**            | 取得するドキュメントの最大件数。                          | 3 〜 5       |
| **Score Threshold** | 検索結果の類似度スコアの下限値。これ以下の関連度の低い情報は除外されます。     | 0.5 〜 0.7   |
| **Rerank設定**        | (オプション) 検索結果をRerankモデルで再ランク付けし、精度を向上させます。 | オン (推奨)     |

{% hint style="info" %}
Score Threshold を高くしすぎると、検索結果が0件になる場合があります。\
最初は低め（0.5など）に設定し、デバッグしながら調整してください。
{% endhint %}

* **メタデータフィルタ**: ナレッジベースのドキュメントに付与されたメタデータを条件として検索対象を絞り込む機能です。デジタルヒューマン環境ではデフォルトで「無効」に設定されています。

## 複数ナレッジ検索（N-to-1 Recall）

複数のナレッジベース（例：「社内規定」と「製品マニュアル」）を同時に検索対象とする場合、「**複数ナレッジ検索（N-to-1 Recall）**」モードが適用されます。

```markdown
ナレッジ検索ノード
├── 社内規定ナレッジ
└── 製品マニュアルナレッジ
```

* **仕組み**: 各ナレッジベースから検索された結果を統合し、最も関連性の高い順に並べ替えて出力します。
* **推奨**: 複数のナレッジを使用する場合は、情報の優先順位を正しく判定させるため、**Rerankモデル**の設定を強く推奨します。

## 出力結果の利用方法

検索結果は変数として出力され、後続の「LLMノード」のコンテキストとして利用します。

### LLMノードでの設定例

LLMノードの「コンテキスト」欄、またはプロンプト内で以下のように変数を参照します。

```markdown
### 参考情報
{{#knowledge_retrieval.result#}}

### ユーザーの質問
{{#sys.query#}}

### 指示
上記の参考情報のみに基づいて、ユーザーの質問に回答してください。
情報が不足している場合は「情報がありません」と回答してください。
```

## ベストプラクティス

1. **適切なTopKの設定**: LLMのコンテキストウィンドウ（トークン制限）を圧迫しないよう、TopKは3〜5程度から開始してください。
2. **デバッグの活用**: プレビュー/デバッグ機能を使用し、実際にどのようなテキストが検索（Retrieve）されているかを確認してください。意図しないテキストがヒットしている場合は、ナレッジベースのデータ分割（チャンク）設定を見直す必要があります。
3. **Rerankの検討**: 検索精度が低い場合、外部のRerankモデル（Cohere Rerank等）を導入することで劇的に改善する場合があります。

{% hint style="warning" %}
本ドキュメントはDifyのバージョンアップによりUI名称等が変更される可能性があります。
{% endhint %}
