Skip to main content
本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版
插件可反向调用 Dify 平台内的其他工具类型插件。如果你不熟悉反向调用的基本概念,先阅读 反向调用 Dify 服务 考虑以下场景:
  • 工具类型插件实现了某个功能,但结果不及预期,需要对数据做后处理。
  • 任务需要网页爬虫,而你希望灵活选择爬取服务。
  • 你需要聚合多个工具的结果,而这在 Workflow 应用中难以处理。
此时,插件需要调用其他现有工具:市场中的工具、自建的 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。如果不存在 operation_id,则为 Dify 自动生成的 tool_name,可在工具管理页面找到。

相关资源

Last modified on June 25, 2026