Difyのエージェントが直接ナレッジベースにアクセス

みなさん、こんにちは。

私はDifyを実験していて、Agentノードはツールの呼び出しのみを目的として設計されていることに気づきましたが、Knowledge Base / ベクトルDBに直接アクセスすることはできません

私はAIが自己推論(self-ask) を行えるようにしたいと考えています。具体的には:

  1. ユーザーの質問を小さなサブ質問に分解する。

  2. Knowledge Baseを照会して正確な情報を取得する。

  3. 結果を統合し、ユーザーに最終的な回答を提供する。

KBがツールではない場合に、このようなワークフローをDifyで実装した経験のある方はいらっしゃいますか?

よろしくお願いします!

@nam
こんにちは、私が知っている最も簡単な方法は次のとおりです:

  1. 知識の取得のみを行うワークフローを作成し、その結果を返す。
  2. それを「ワークフローとしてのツール」として公開する。
  3. 公開したツールをエージェントノードに追加する。

この方法で、エージェントは知識取得機能をツールとして使用できます。

参考になれば幸いです :slight_smile:

こんにちは、kurokobo さん、GitHubでのご協力ありがとうございます。
私は以下のワークフローを定義し、ツールとして公開しました。その後、それをチャットワークフローで使用しています。

チャットワークフローの詳細設定は以下の通りです。

しかし、エージェントが実行されるようになってしばらくすると、エージェントは以下の内容のみを返却します:

<tool_call>
{"name": "Query_KB", "arguments": {"query": "SLM32F1XM606 WWDG ウィンドウ・ドッグ モジュール 詳細機能 説明 ドキュメント"}}
</tool_call>

エージェントとチャットの設定は以下の通りです。

このエラーを回避する方法がわかりません。エージェントが期待される出力ではなく、クエリパラメータを出力してしまう原因がわかりません。

Qwenにはあまり詳しくないため、私の回答には自信がありませんが、この形式はQwen固有のツール呼び出しリクエストに特化していると思います。

エージェントノードがLLMからのこのようなツール呼び出しリクエストを正しく解釈できるかどうかは不明です。可能であれば、Qwen以外のモデルで試して、その動作を確認してみてください。