Tool
This document details how plugins can reverse invoke Tool services within the Dify platform. It covers three types of tool invocation methods calling installed tools (Built-in Tool), calling Workflow as Tool, and calling custom tools (Custom Tool). Each method includes corresponding entry points and interface parameter descriptions.
Reverse invoking a Tool means that a plugin can call other tool-type plugins within the Dify platform. If you are unfamiliar with the basic concepts of reverse invocation, please first read Reverse Invocation of Dify Services.
Consider the following scenarios:
- A tool-type plugin has implemented a function, but the result is not as expected, requiring post-processing of the data.
- A task requires a web scraper, and you want the flexibility to choose the scraping service.
- You need to aggregate results from multiple tools, but it’s difficult to handle using a Workflow application.
In these cases, you need to call other existing tools within your plugin. These tools might be from the marketplace, a self-built Workflow as a Tool, or a custom tool.
These requirements can be met by calling the self.session.tool
field of the plugin.
Calling Installed Tools
Allows the plugin to call various tools installed in the current Workspace, including other tool-type plugins.
Entry Point
Interface
Here, provider
is the plugin ID plus the tool provider name, formatted like langgenius/google/google
. tool_name
is the specific tool name, and parameters
are the arguments passed to the tool.
Calling Workflow as Tool
For more information on Workflow as Tool, please refer to the Tool Plugin documentation. (Note: Original link /plugin_dev_zh/9223-tool.zh
does not exist in English list, linked to closest match).
Entry Point
Interface
In this case, provider
is the ID of this tool, and tool_name
is specified during the creation of the tool.
Calling Custom Tool
Entry Point
Interface
Here, provider
is the ID of this tool, and tool_name
is the operation_id
from the OpenAPI specification. If it doesn’t exist, it’s the tool_name
automatically generated by Dify, which can be found on the tool management page.
Related Resources
- Reverse Invocation of Dify Services - Understand the fundamental concepts of reverse invocation
- Reverse Invocation App - Learn how to call Apps within the platform
- Reverse Invocation Model - Learn how to call model capabilities within the platform
- Tool Plugin Development Guide - Learn how to develop tool plugins
- Advanced Tool Plugins - Learn about advanced features like Workflow as Tool (Note: Original link
/plugin_dev_zh/9223-tool.zh
does not exist in English list, linked to closest match)