Dify 中的代理直接访问知识库

大家好,

我正在尝试使用 Dify,注意到 Agent 节点仅设计用于调用工具,但 无法直接访问知识库 / 向量数据库

我希望 AI 能够 自我推理(自我提问),以实现以下目标:

  1. 将用户的问题分解为更小的子问题。
  2. 查询知识库以获取准确的信息。
  3. 汇总结果并为用户提供最终答案。

当知识库不是工具时,有没有人有在 Dify 中实现这种工作流的经验?

谢谢!

@nam
你好,我所知道的最简单的方法是:

  1. 创建一个仅执行知识检索并返回结果的工作流。
  2. 将其发布为“工作流作为工具”。
  3. 将发布的工具添加到代理节点中。

这样,代理就可以将知识检索功能作为工具使用了。

希望这能帮到你 :slight_smile:

2 个赞

你好,kurokobo,感谢你在 GitHub 上的帮助。我定义了一个如下所示的工作流,并将其发布为一个工具。然后我在聊天工作流中使用它。

聊天工作流中的详细配置如下:

但是当代理执行一段时间后,代理只返回以下内容:

<tool_call>{"name": "Query_KB", "arguments": {"query": "SLM32F1XM606 WWDG 窗口看门狗 模块 详细功能 说明 文档"}}</tool_call>

代理和聊天配置如下:

我不知道如何避免这个错误。这导致代理输出查询参数而不是预期的输出。

我对 Qwen 不太熟悉,因此对我的回答不太有信心,但我认为这种格式是 Qwen 的 Tool Call 请求所特有的。

我不确定 Agent 节点是否能够正确解析来自 LLM 的这种 Tool Call 请求。如果可能的话,也许你可以尝试使用除 Qwen 以外的模型,看看它的行为如何。