> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Knowledge Retrieval

> Retrieve relevant content from knowledge bases and use it as context for downstream nodes

Use the Knowledge Retrieval node to integrate existing knowledge bases into your workflows. The node searches specific knowledge for information relevant to queries and outputs results as contextual content for use in downstream nodes (e.g., LLMs).

Below is an example of using the Knowledge Retrieval node in a Chatflow:

1. The **User Input** node collects the user query.

2. The **Knowledge Retrieval** node searches the selected knowledge base(s) for content related to the user query and outputs the retrieval results.

3. The **LLM** node generates a response based on both the user query and the retrieved knowledge.

4. The **Answer** node returns the LLM's response to the user.

<Frame>
  <img src="https://mintcdn.com/dify-6c0370d8/gyesM3ime6gTaYSO/images/use-dify/workflow/knowledge-retrieval-node-example.png?fit=max&auto=format&n=gyesM3ime6gTaYSO&q=85&s=b019d605170890aa9ec679b17a9c5cd6" alt="Knowledge Retrieval Node Use Case" width="2022" height="580" data-path="images/use-dify/workflow/knowledge-retrieval-node-example.png" />
</Frame>

Before using a Knowledge Retrieval node, ensure that you have at least one available knowledge base. To learn about creating knowledge bases, see [Knowledge](/en/use-dify/knowledge/readme#create-knowledge).

<Info>
  On Dify Cloud, knowledge retrieval operations are subject to rate limits based on the subscription plan. For more information, see [Knowledge Request Rate Limit](/en/use-dify/knowledge/knowledge-request-rate-limit).
</Info>

## Configure the Node

To make the Knowledge Retrieval node work properly, you need to specify:

* *What* it should search for (the query)

* *Where* it should search (the knowledge base)

* *How* to process the retrieval results (the node-level retrieval settings)

You can also use document metadata to enable filter-based searches and further improve retrieval precision.

### Specify the Query

Provide the query content that the node should search for in the selected knowledge base(s).

* **Query Text**: Select a text variable. For example, use `userinput.query` to reference user input in Chatflows, or a custom text-type user input variable in Workflows.

* **Query Images**: Select an image variable, e.g., the image(s) uploaded by the user through a User Input node, to search by image. The image size limit is 2 MB.

  <Tip>
    For self-hosted deployments, you can adjust the image size limit via the environment variable `ATTACHMENT_IMAGE_FILE_SIZE_LIMIT`.
  </Tip>

  <Info>
    The **Query Images** option is available only when at least one multimodal knowledge base is added.

    Such knowledge bases are marked with the **Vision** tag, indicating that they are using a multimodal embedding model.
  </Info>

### Select Knowledge to Search

Add one or more existing knowledge bases for the node to search for content relevant to the query.

When multiple knowledge bases are added, knowledge is first retrieved from all of them simultaneously, then combined and processed according to the [node-level retrieval settings](#configure-node-level-retrieval-settings).

<Info>
  Knowledge bases marked with the **Vision** tag support cross-modal retrieval—retrieving both text and images based on semantic relevance.
</Info>

You can click the **Edit** icon next to any added knowledge base to modify its [settings](/en/use-dify/knowledge/manage-knowledge/introduction).

### Configure Node-Level Retrieval Settings

To fine-tune how the node processes retrieval results after they are fetched from the knowledge base(s), click **Retrieval Setting**.

<Info>
  There are two layers of retrieval settings—the knowledge base level and the knowledge retrieval node level.

  Think of them as two consecutive filters: the knowledge base settings determine the initial pool of results, and the node settings further rerank the results or narrow down the pool.
</Info>

* **Rerank Settings**

  * **Weighted Score**

    The relative weight between semantic similarity and keyword matching during reranking. Higher semantic weight favors meaning relevance, while higher keyword weight favors exact matches.

    Weighted Score is available only when all added knowledge bases are indexed with **High Quality** mode.

  * **Rerank Model**

    The rerank model to re-score and reorder all the results based on their relevance to the query.

    <Note>
      If any multimodal knowledge bases are added, select a multimodal rerank model (marked with a **Vision** tag) as well. Otherwise, retrieved images will be excluded from reranking and the final output.
    </Note>

* **Top K**

  The maximum number of top results to return after reranking.

  When a rerank model is selected, this value will be automatically adjusted based on the model's maximum input capacity (how much text the model can process at once).

* **Score Threshold**

  The minimum similarity score for returned results. Results scoring below this threshold are excluded. Use higher thresholds for stricter relevance or lower thresholds to include broader matches.

### Enable Metadata Filtering

By default, retrieval searches across the entire knowledge base. To restrict retrieval to specific documents, enable manual or automatic metadata filtering.

This improves retrieval precision, especially when your knowledge base is large or contains content for different contexts.

For creating and managing document metadata, see [Metadata](/en/use-dify/knowledge/metadata).

## Output

The Knowledge Retrieval node outputs the retrieval results as a variable named `result`, which is an array of retrieved document chunks containing their content, metadata, title, and other attributes.

When the retrieval results contain image attachments, the `result` variable also includes a field named `files` containing image details.

## Use with LLM Nodes

To use the retrieval results as context in an LLM node:

1. In **Context**, select the Knowledge Retrieval node's `result` variable.

2. In the system instruction, reference the `Context` variable.

3. Optional: If the LLM is vision-capable, enable **Vision** so it can process image attachments in the retrieval results.

   <Info>
     You don't need to specify the retrieval results as the vision input. Once **Vision** is enabled, the LLM will automatically access any retrieved images.
   </Info>

In chatflows, citations are shown alongside responses that reference knowledge by default. You can turn this off by disabling **[Citation and Attributions](/en/use-dify/build/additional-features#citations-and-attributions)** in **Features** at the top right corner of the canvas.
