Skip to main content
⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
ツールの逆呼び出しとは、プラグインがDifyプラットフォーム内の他のツールタイププラグインを呼び出すことを意味します。逆呼び出しの基本概念に馴染みがない場合は、まずDifyサービスの逆呼び出しをお読みください。 以下のシナリオを考えてみてください:
  • ツールタイププラグインが機能を実装したが、結果が期待通りではなく、データの後処理が必要な場合。
  • タスクにウェブスクレイパーが必要で、スクレイピングサービスを柔軟に選択したい場合。
  • 複数のツールの結果を集約する必要があるが、ワークフローアプリケーションでの処理が難しい場合。
これらの場合、プラグイン内で他の既存のツールを呼び出す必要があります。これらのツールは、マーケットプレイスから、自作のWorkflow as Tool、またはカスタムツールである可能性があります。 これらの要件は、プラグインのself.session.toolフィールドを呼び出すことで満たすことができます。

インストール済みツールの呼び出し

プラグインが現在のワークスペースにインストールされているさまざまなツール(他のツールタイププラグインを含む)を呼び出すことができます。 エントリーポイント
    self.session.tool
インターフェース
    def invoke_builtin_tool(
        self, provider: str, tool_name: str, parameters: dict[str, Any]
    ) -> Generator[ToolInvokeMessage, None, None]:
        pass
ここで、providerはプラグインIDとツールプロバイダー名を組み合わせたもので、langgenius/google/googleのような形式です。tool_nameは具体的なツール名で、parametersはツールに渡す引数です。

Workflow as Toolの呼び出し

Workflow as Toolの詳細については、ツールプラグインドキュメントを参照してください。 エントリーポイント
    self.session.tool
インターフェース
    def invoke_workflow_tool(
        self, provider: str, tool_name: str, parameters: dict[str, Any]
    ) -> Generator[ToolInvokeMessage, None, None]:
        pass
この場合、providerはこのツールのIDで、tool_nameはツールの作成時に指定されます。

カスタムツールの呼び出し

エントリーポイント
    self.session.tool
インターフェース
    def invoke_api_tool(
        self, provider: str, tool_name: str, parameters: dict[str, Any]
    ) -> Generator[ToolInvokeMessage, None, None]:
        pass
ここで、providerはこのツールのIDで、tool_nameはOpenAPI仕様のoperation_idです。存在しない場合は、Difyによって自動生成されたtool_nameであり、ツール管理ページで確認できます。

関連リソース


Edit this page | Report an issue