> ## 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.

# Agent 知识检索

> 检索 Agent 知识库，并将相关内容传给后续节点

> 本文档由 AI 自动翻译。如有任何不准确之处，请参考 [英文原版](https://docs.dify.ai/en/cloud/use-dify/nodes/knowledge-retrieval-v2.md)。

> [!NOTE]
>
> Agent 知识检索节点目前处于 Beta 阶段。

使用 **Agent 知识检索** 节点，可从 [Agent 知识库](https://docs.dify.ai/zh/cloud/use-dify/knowledge-base/overview.md) 中找出相关内容供后续节点使用，例如作为 LLM 作答时的上下文。

> [!NOTE]
>
> 如需检索 [经典知识库](https://docs.dify.ai/zh/cloud/use-dify/knowledge/readme.md)，改用 [经典知识检索节点](https://docs.dify.ai/zh/cloud/use-dify/nodes/knowledge-retrieval.md)。

## 设置查询

可按文本、图片或两者组合进行检索：

* **查询文本**：选择一个文本变量。文本最多 16,000 个字符。

  * 在 Chatflow 中，使用内置的 `userinput.query` 变量获取当前的用户消息。

  * 在 Workflow 中，使用 **用户输入** 变量，或前序节点准备好的文本。

* **查询图片**：选择一个包含单张图片或图片数组的变量。每次查询最多包含 4 张 GIF、JPEG、PNG 或 WebP 格式的图片，单张不超过 10 MB，总计不超过 32 MB。

  图片超出上述限制，或传入的文件不是图片，都会导致节点运行失败。在 Chatflow 中，可将 [文件上传](https://docs.dify.ai/zh/cloud/use-dify/build/additional-features.md#文件上传) 设为仅接受图片，且每条消息最多 4 张。

  支持的模型组合详见 [多模态检索](https://docs.dify.ai/zh/cloud/use-dify/knowledge-base/multimodal-retrieval.md)。

  > [!NOTE]
  >
  > 仅用图片检索时，确保所选的每个知识库都使用支持视觉的嵌入模型或推理模型，否则节点会运行失败，不返回任何结果。

## 选择 Agent 知识库

最多可选择 10 个知识库。每次查询时，节点会检索所有已选的知识库，并合并结果。

如果在选择列表中找不到某个知识库，联系能管理其权限的成员，为你开通访问权限。

> [!NOTE]
>
> 只要有一个已选知识库检索失败，节点就不会返回部分结果，当前运行也会随之终止。

## 调整检索设置

可保留各知识库已配置的 [检索深度](https://docs.dify.ai/zh/cloud/use-dify/knowledge-base/retrieval-settings.md#retrieval-depth)，也可在此节点中为所有知识库统一指定同一深度。

> [!NOTE]
>
> 与检索测试中不同，「研究」深度在这里只返回匹配的分段，不会生成回答。

重排序模型、Top K 和分数阈值作用于所有已选知识库合并后的结果。仅用图片检索时，节点不会对结果重排序。

各项设置详见 [检索设置](https://docs.dify.ai/zh/cloud/use-dify/knowledge-base/retrieval-settings.md)。

## 将检索限定在特定文档

检索通常会搜索知识库中的所有文档。借助元数据，可将检索范围缩小到符合条件的文档。典型场景是一个知识库同时服务多个应用，而每个应用只应基于其中一部分内容作答。

假设公司内部有一个政策知识库，收录了各国的地区规定，每个地区都基于它为本地员工搭建了一个助手应用。如果不加过滤，欧盟的助手可能会依据美国的规定回答育儿假问题。

为避免这种情况，先给每个文档标注它的相关信息，再按这些标注过滤检索：

1. 在知识库的 **文档** 页面点击 **元数据**，为每项要用于过滤的信息添加一个字段。对这个政策知识库来说，只需一个字符串类型的 `region` 字段。

   字段类型之后无法更改，选择时要先想好如何过滤：需要比较大小的值用数字类型，要按日期先后过滤的用时间类型。

2. 打开每个文档，点击 **开始标注**，选择字段并填写值。欧盟的规定填 `eu`，美国的填 `us`。

   数据源同步更新了文档内容后，标注仍会保留。

3. 在此节点中，将 **元数据过滤** 设为 **手动**，并为欧盟助手添加条件「`region` 是 `eu`」。这样一来，它的回答就只会来自欧盟的规定。

   也可选择 **自动**，让模型根据每个问题推断过滤条件。但 LLM 无法确定条件时，检索会不加过滤地进行，因此凡是必须过滤的场景，都应使用 **手动**。

   如果节点同时检索多个知识库，共用的字段在每个知识库中都要使用相同的名称和类型。过滤条件只能使用所有知识库中都有的字段。

## 基于检索内容生成回答

在同一执行路径上的后续 [LLM 节点](https://docs.dify.ai/zh/cloud/use-dify/nodes/llm.md) 中：

**1. 传入检索到的内容**

在 **上下文** 中选择本节点的 `result` 变量，再将 **上下文** 变量插入提示词。

**2. 传入查询**

将同一个或同一组查询变量插入 LLM 节点的 **用户** 消息中。使用图片查询时，选择支持视觉的模型。

**3. 引导回答**

在提示词中，指示 LLM 基于检索到的内容回答查询。

> [!NOTE]
>
> 知识库中找到的图片只会以文本形式传给后续节点，即图片的说明文字、替代文本或从图片中识别出的文字。图片文件本身不会传递下去。

## 处理无匹配结果的情况

没有匹配的内容时，节点仍会成功运行，并返回空的 `result`。

如果不希望 LLM 在没有检索内容时作答，可在本节点与 LLM 节点之间添加一个 [条件分支节点](https://docs.dify.ai/zh/cloud/use-dify/nodes/ifelse.md)，判断 `result` 是否为空。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.