ナレッジ検索ノードの設定
dify-docs-configure-knowledge-retrieval-node
ナレッジ検索ノード(Knowledge Retrieval)は、接続されたナレッジベース(Knowledge Base)からユーザーの質問に関連する情報を検索・取得するためのノードです。 取得した情報はコンテキストとして後続のLLMノードに渡され、RAG(Retrieval-Augmented Generation)を実現するために使用されます。
設定手順
1. ノードの配置
- ワークフローエディタのノードパネルから「ナレッジ検索(Knowledge Retrieval)」を選択し、キャンバスに追加します。
- 開始ノード、または質問を受け取る前のノードの後ろに接続します。
2. ナレッジベースの選択
- ノード内の「+ナレッジを追加(Add Knowledge)」をクリックします。
- リストから検索対象としたいナレッジベースを選択します。
- 必要に応じて複数のナレッジベースを選択可能です。
3. クエリ(検索ワード)の設定
検索に使用するキーワードを設定します。
- 設定値: 通常はユーザーの入力変数(例:
sys.query)を指定します。
- 変数の挿入: 入力欄の「{x}」マークをクリックするか、
{{を入力して変数を呼び出せます。
主要な設定パラメータ
検索精度を調整するためのパラメータです。
項目名 | 説明 | 推奨設定例 |
クエリ変数 | 検索に使用する入力値。 | sys.query |
TopK | 取得するドキュメントの最大件数。 | 3 〜 5 |
Score Threshold | 検索結果の類似度スコアの下限値。これ以下の関連度の低い情報は除外されます。 | 0.5 〜 0.7 |
Rerank設定 | (オプション) 検索結果をRerankモデルで再ランク付けし、精度を向上させます。 | オン (推奨) |
Score Threshold を高くしすぎると、検索結果が0件になる場合があります。 最初は低め(0.5など)に設定し、デバッグしながら調整してください。
複数ナレッジ検索(N-to-1 Recall)
複数のナレッジベース(例:「社内規定」と「製品マニュアル」)を同時に検索対象とする場合、「複数ナレッジ検索(N-to-1 Recall)」モードが適用されます。
ナレッジ検索ノード
├── 社内規定ナレッジ
└── 製品マニュアルナレッジ- 仕組み: 各ナレッジベースから検索された結果を統合し、最も関連性の高い順に並べ替えて出力します。
- 推奨: 複数のナレッジを使用する場合は、情報の優先順位を正しく判定させるため、Rerankモデルの設定を強く推奨します。
出力結果の利用方法
検索結果は変数として出力され、後続の「LLMノード」のコンテキストとして利用します。
LLMノードでの設定例
LLMノードの「コンテキスト」欄、またはプロンプト内で以下のように変数を参照します。
### 参考情報
{{#knowledge_retrieval.result#}}
### ユーザーの質問
{{#sys.query#}}
### 指示
上記の参考情報のみに基づいて、ユーザーの質問に回答してください。
情報が不足している場合は「情報がありません」と回答してください。ベストプラクティス
- 適切なTopKの設定: LLMのコンテキストウィンドウ(トークン制限)を圧迫しないよう、TopKは3〜5程度から開始してください。
- デバッグの活用: プレビュー/デバッグ機能を使用し、実際にどのようなテキストが検索(Retrieve)されているかを確認してください。意図しないテキストがヒットしている場合は、ナレッジベースのデータ分割(チャンク)設定を見直す必要があります。
- Rerankの検討: 検索精度が低い場合、外部のRerankモデル(Cohere Rerank等)を導入することで劇的に改善する場合があります。
本ドキュメントはDifyのバージョンアップによりUI名称等が変更される可能性があります。
お役に立ちましたか?
😞
😐
🤩
最終更新日 February 20, 2026