
# 在工作流中使用知识库
支持在AgentArts中添加引用知识库，以根据用户意图来检索召回对应的知识切片。
在工作流中，"知识检索"节点作为独立的处理单元，将检索结果输出给下游的"LLM"节点，使大模型能够基于检索到的私有知识生成回答。适用于需要结合工具调用、多轮复杂逻辑的场景。
**工作原理**：知识检索节点接收用户问题，通过向量嵌入或关键词匹配在知识库中检索相关内容，按相关度排序后返回TopK个知识切片，供下游LLM节点生成回答。
**典型场景**：
- 企业内部知识问答：员工提问"如何申请年假？"，系统检索员工手册相关条款
- 技术文档助手：开发者提问"如何配置API网关？"，系统检索技术文档对应章节。
#### 费用说明
召回的知识切片将作为上下文传递给后续节点，切片数量和大小会影响大模型的Token消耗，请合理设置TopK和阈值。切片数量越多、内容越长，传递给大模型的上下文Token数越多，调用费用越高。建议根据实际需求设置TopK（推荐3-5），避免召回过多无关内容。
#### 前提条件
- 如果需要在工作流中使用平台知识库，请确保已[创建平台知识库](https://support.huaweicloud.com/lowcode-agentarts/agentarts_05_0150.html)且知识库是启用状态。
- 如果需要在工作流中使用第三方知识库，请确保已[接入第三方知识库](https://support.huaweicloud.com/lowcode-agentarts/agentarts_05_0164.html)且知识库是启用状态。
 
#### 配置知识库
1. 登录[AgentArts智能体平台](https://console.huaweicloud.com/agentarts/#/home/overview)。
2. 单击左侧导航栏"开发中心 \> 智能体管理 "，单击左上角"工作流"页签，进入工作流应用管理界面，单击您创建的工作流。
3. 单击"添加节点"并选择"知识检索"节点。
4. 通过单击该节点打开节点配置页面。
5. 配置输入参数，请参见[表1]设置参数。
   
   图1输入参数   
   ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549763.png "点击放大")
    表1参数说明 
   | 参数名称 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 示例                                                                                             |
   |:---|:---|:---|
   | 输入参数 | 输入参数固定只有1个，参数名称为query且不可修改，类型是字符串，表示待知识检索的问题。通常引用开始节点的值，该变量决定了检索的搜索词。 设置参数值时，支持"引用"和"输入"两种方式。 - 引用：支持用户选择工作流中已包含的前置节点的输出变量值以及全局配置中的记忆变量，限制String类型，适用于需要从前置节点输出中获取知识检索问题的场景。 系统参数列举如下： - "conversation_history"：存储当前对话的历史消息记录。  - "current_time"：获取当前的系统时间戳或时间字符串。  - "user_id"：识别当前用户的唯一标识符。  - "conversation_id"：当前工作流的唯一对话标识。  - "dialogue_count"：当前对话的轮次数计数。     - 输入：支持用户输入固定值，适用于知识检索问题固定的场景。   | 类型：输入 值：1                                                 |
   | 输出参数 | 知识检索节点的输出是一个名为output_list的对象数组，表示所有满足检索要求的知识切片。数组中对象有七个属性： - document_name，知识切片所在的知识文档名称。  - subtitle，知识切片子标题。  - content，知识切片的内容。  - score，知识切片的匹配度得分，output_list中的元素按照得分由高到低排序。  - knowledge_base_id，文件所属知识库ID。  - knowledge_base_type，文件所属知识库类型。  - file_id，文件ID。   后续节点引用该输出参数，可以引用output_list，此时将获取全量的检索结果，包括文档名、切片子标题、切片内容和分数。也可以直接引用切片的属性，比如content，此时将获取output_list中第一条记录的切片内容。                                                                                                                                                                                                                                               | ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790274.png "点击放大") |
      
   
   
6. 在知识库区域单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950130.png)按钮，进入知识库添加页面。
7. 在"添加知识库"窗口，选择知识库类型，勾选目标知识库右侧的![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687950136.png)进行添加，单击"确定"。
   
   图2添加知识库   
   ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717389893.png "点击放大")
   
   
8. 在知识库区域单击![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790282.png)按钮，弹出检索参数配置页面。
9. 配置检索参数，完成后，单击其他位置退出弹窗。 
   图3配置检索参数
   ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002687790270.png)
   表2参数说明 
   | 参数名称     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 示例    |
   |:---|:---|:---|
   | 检索策略     | 文档检索的方式，有三种： - 语义检索：使用向量检索技术检索，对文档及结构化数据中知识进行检索，召回与用户意图相关性高的切片内容，推荐在需要结合上下文相关性、并对用户意图进行理解的场景中使用。  - 关键词检索：使用倒排检索技术，对文档及结构化数据中知识进行检索，召回与Query关键词匹配度高的切片内容，推荐在需要用户提问关键词匹配度高的场景中使用。  - 混合检索：使用向量检索和关键词检索两种策略混合检索知识库，推荐在需要兼顾用户意图理解及关键词匹配度场景中使用。   | 语义检索  |
   | 相关度阈值    | 超过相关度阈值的搜索结果会提交给大模型进行总结，否则被过滤，可以参考知识库中命中测试的相关度分值调整该阈值。 取值范围：0\~1。 默认值：0.5。                                                                                                                                                                                                                                                                                                                                                                                                      | 0.100 |
   | topk召回数量 | 召回的相关性排名前topk的切片数量，如topk召回数量为5，则相关性排名前5的切片将被召回提交给大模型总结。 取值范围：1\~50。 默认值：3。                                                                                                                                                                                                                                                                                                                                                                                                         | 3     |
   | FAQ直出阈值  | FAQ检索超过阈值的结果将直接提交给大模型总结，不再进行文档检索。如果没有超过阈值的结果，将进行文档检索。 取值范围：0\~1。 启用FAQ功能后，系统将优先检索FAQ数据。如果未命中结果，则会继续查询切片内容，可能会带来一定的性能开销。当FAQ检索结果超过预设阈值时，将直接提交给大模型进行总结，不再进行文档检索。如果未超过阈值，则将继续进行文档检索。                                                                                                                                                                                                                                                                                                 | 0.100 |
   | 查看图片     | 开启此功能后，当知识库支持图片检索时，可查看检索结果中的图片信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 开启    |
      
   
   
10. 在知识检索配置页面单击"确定"，完成知识检索节点配置。 
    配置完成后，单击工作流编辑器右上角的"试运行"或使用节点的![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549769.png)功能，验证知识库是否能正确召回内容。
    
    
 
#### 常见问题
- **为什么知识检索节点返回结果为空？**
  - 可能原因：知识库异常、阈值设置不合理。
  
  - 处理措施：检查知识库：状态正常，命中测试通过；重新设置检索阈值。
   

- **如何在工作流中引用知识检索节点的输出？**
  后续节点引用该输出参数，可以引用output_list，此时将获取全量的检索结果，包括文档名、切片子标题、切片内容和分数。也可以直接引用切片的属性，比如content，此时将获取output_list中第一条记录的切片内容。
  图4结束节点引用知识检索节点的输出参数示例   
  ![](https://support.huaweicloud.com/lowcode-agentarts/zh-cn_image_0000002717549761.png) 
 
