深入探索 Dify 插件开发,打造个性化 AI 应用。本文将从零基础起步,全面讲解如何为 Dify 开发工具插件,涵盖环境搭建、项目创建、代码编写、调试打包与发布完整流程,帮助你高效扩展 AI 应用的能力边界。
一、前期准备与环境搭建
在着手开发 Dify 插件前,需先准备好以下环境和工具:
- Dify 插件脚手架工具(即
dify-plugin-daemon,插件开发 SDK) - Python 环境,版本号 ≥ 3.12
小提示:建议使用 Python 3.12 或更高版本,否则可能遇到依赖库兼容性问题。
1. 安装 Dify 插件开发脚手架工具
访问 Dify Plugin CLI 项目地址,下载并安装与操作系统匹配的最新版本工具。

2. 初始化 Python 环境
推荐使用 conda 创建独立的 Python 环境,具体操作可搜索“conda 创建环境”教程。你也可以直接使用系统自带的 Python,只要版本满足要求即可。
小提示:使用 conda 可避免系统级 Python 环境混乱,便于多版本管理。
二、创建插件项目
1. 赋予脚手架可执行权限
在终端中执行以下命令(以 macOS/Linux 为例,Windows 可直接运行 .exe 文件):
chmod +x dify-plugin-darwin-amd64 # 根据实际下载的文件名调整
2. 初始化项目
运行脚手架工具创建新项目,根据提示依次输入插件名称、作者、描述信息,并在选择插件类型时选中 tool。
在终端中使用方向键选择权限,按 Tab 键授予权限。勾选所有权限项后,按下回车即可完成插件创建,系统将自动生成插件项目代码。
注意:必须勾选所有权限项,否则后续部分功能可能无法正常使用。
3. 用 PyCharm 打开项目并配置 Python 环境
将生成的插件项目文件夹用 PyCharm 打开,然后在设置中选择之前创建好的 Python 环境(版本 ≥ 3.12)。
三、开发插件
在生成的项目文件中有两个重要的文件夹:
- provider/ —— 插件供应商,一个项目中可包含多个
- tools/ —— 供应商对应的工具
首先需要安装 dify_plugin 依赖包:
pip install dify_plugin
1. Provider 配置与代码
provider 配置(通常位于 provider/provider.yaml)定义了供应商的基础信息。我们重点看provider 代码:
DifyPluginExampleProvider 主要实现了一些验证功能,例如你的工具需要 API Key 时,可在此处完成配置。
2. Tools 配置与代码
tools 配置(例如 tools/html_to_markdown.yaml)定义了工具的输入参数和输出。对应的tools 代码示例如下:
import json
from collections.abc import Generator
from typing import Any
import requests
from dify_plugin import Tool
from dify_plugin.entities.tool import ToolInvokeMessage
class HtmlToMarkdownTool(Tool):
def _invoke(self, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage]:
print(json.dumps(tool_parameters, indent=4))
query = tool_parameters["query"]
print(f"fetch {query}")
try:
j_query = f"https://r.jina.ai/{query}"
print(f"jina query url {j_query}")
response = requests.get(j_query)
response.raise_for_status()
content = response.text
except requests.RequestException as e:
content = str(e)
yield self.create_json_message({
"result": content
})
可以看出,这个工具的作用是:输入一个 URL,返回对应的 Markdown 内容供其他节点使用。其中 https://r.jina.ai 是一个将网页转为 Markdown 的服务,你可以在浏览器中测试 https://r.jina.ai/https://www.baidu.com。
小提示:实际开发中,你可以替换为任意外部 API,实现联网搜索、科学计算、图片生成等能力。
四、调试插件
插件开发完成后,需要验证其是否能正常运行。Dify 提供了便捷的远程调试方式,帮助你快速在测试环境中验证插件功能。
1. 获取远程服务器地址和调试 Key
前往 Dify 平台的“插件管理”页面,获取远程服务器地址和调试 Key。
2. 配置 .env 文件
在插件项目根目录下,拷贝 .env.example 文件并重命名为 .env,将获取到的远程服务器地址和调试 Key 等信息填入其中。
3. 启动插件
运行项目中的 main.py 文件,确保启动成功。此时在 Dify 的插件页面即可看到我们的插件,接下来可以进行调试。
4. 配置工作流测试插件
在 Dify 工作流中添加你开发的插件节点,并配置正确的输入参数。最终的工作流效果如下图所示:

运行工作流:

查看程序打印日志,确认插件执行是否正常。工作流运行结果显示成功后,即可进入下一步打包。
常见问题:如果运行工作流时插件无响应,请检查 .env 中的远程地址和 Key 是否填写正确,以及本地 Python 环境是否已激活。
五、打包插件
确认插件能够正常运行后,可通过以下命令行工具打包并命名插件:
./dify-plugin-darwin-amd64 plugin package ./html-to-markdown
打包生成包名:html-to-markdown.difypkg
恭喜,你已完成一个工具类型插件的完整开发、调试与打包流程!
六、发布插件
若要将插件发布至 Dify Marketplace,请确保你的插件遵循了插件发布规范。审核通过后,代码将合并至主分支并自动上线至 Dify Marketplace。
注意:发布前建议在社区查阅已有的插件规范文档,避免重复劳动。
常见问题与解答
- Q:Python 版本必须 ≥ 3.12 吗?
A:是的,低于 3.12 可能会出现语法错误或依赖不兼容的情况。 - Q:如何获取远程调试地址和 Key?
A:在 Dify 平台左侧导航进入“插件管理”,点击“远程调试”即可获取。 - Q:打包时提示“command not found”?
A:请确保脚手架工具已正确下载并赋予可执行权限,且当前目录为插件项目根目录。 - Q:插件在工作流中运行成功但结果为空?
A:检查代码中yield返回的数据结构是否正确,以及外部 API 是否返回了预期内容。
总结
通过为 Dify 开发工具插件,我们不仅能够扩展 AI 应用的功能,还能显著提升系统的灵活性与可扩展性。无论是接入外部 API、执行复杂计算,还是增强交互体验,插件都能让 Dify 变得更加强大。希望本教程能帮助你快速上手,打造出属于自己的个性化 AI 应用!
