一、环境准备

1.1 系统要求

  • Windows 10或更高版本

  • Python 3.12+

1.2 python环境搭建

可选择搭建 venv虚拟环境 或者 anaconda虚拟环境

1.3 安装Dify插件CLI工具

1.3.1 下载和安装

开发Dify插件的第一步是安装官方提供的CLI工具。在Windows平台推荐通过二进制文件安装:

  1. 访问 dify-plugin-daemon 下载页面

  2. 根据您的系统架构选择合适的版本:对于64位Windows系统,下载dify-plugin-windows-amd64.exe

  3. 将下载的文件重命名为dify-plugin.exe,可将其放置在系统PATH环境变量中的目录下便于全局使用

1.3.2 验证安装

安装完成后,打开PowerShell或命令提示符,在dify-plugin-windows-amd64.exe路径下执行以下命令验证安装是否成功:

dify-plugin-windows-amd64.exe version

如果显示版本号,则表示安装成功。

二、插件项目开发

2.1 插件项目初始化

创建新项目

使用CLI工具可以快速创建一个新的插件项目:

dify-plugin-windows-amd64.exe plugin init

(1)填充项目基本信息

  • Plugin name: 插件的唯一标识符。例如:hello_world

  • Author: 插件作者的标识符。例如:hw

  • Description: 对插件功能的简短描述。例如:测试dify-plugin

(2)选择开发语言

  • 当提示 Select language 时,请选择 python

(3)选择插件类型

  • 当提示 Select plugin type 时,对于本教程,请选择 tool

(4)选择附加功能

  • 当提示是否需要包含 Provider 验证、持久存储等附加功能。暂时可以不需要这些,可以直接按 回车键 跳过所有选项

(5)Dify版本要求

  • 默认为空即可,可以直接按回车键。

(6)确认创建成功

  • 当终端输出plugin hello_world created successfully类似信息时,表示插件项目已成功

插件项目结构

一个典型的Dify插件项目包含以下文件和目录:

hello_world/
├── provider/                 # 提供商配置和实现
│   ├── hello_world.py       # 提供商实现代码
│   └── hello_world.yaml     # 提供商配置文件
├── tools/                    # 工具配置和实现
│   ├── hello_world.py       # 工具实现代码
│   └── hello_world.yaml     # 工具配置文件
├── main.py                  # 插件入口文件
├── manifest.yaml            # 插件清单文件
├── requirements.txt         # Python依赖包列表
└── .env.example             # 环境变量示例文件

插件项目主方法_invoke讲解

在Dify插件中,_invoke方法是工具执行的核心方法。通过一个简单的示例来理解其工作原理:

from collections.abc import Generator
from typing import Any

from dify_plugin import Tool
from dify_plugin.entities.tool import ToolInvokeMessage

class HelloWorldTool(Tool):
    def _invoke(self, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage]:
        # 获取传入的参数
        query = tool_parameters.get('query', '')
        
        # 执行工具逻辑
        result = {
            "result": f"Hello, {query}!"
        }
        
        # 返回结果
        yield self.create_json_message(result)

_invoke方法的关键点:

  • 接收tool_parameters参数,包含调用工具时传入的所有参数

  • 执行具体的业务逻辑

  • 使用yield self.create_json_message()返回结果

  • 返回类型为Generator,支持流式返回多个结果

2.2 插件项目运行与调试

配置调试环境

(1)复制.env.example文件并重命名为.env:

copy .env.example .env

(2)编辑.env文件,填入调试信息:

INSTALL_METHOD=remote
REMOTE_INSTALL_URL=debug.dify.ai:5003
REMOTE_INSTALL_KEY=your_actual_debug_key_here

获取调试密钥

  1. 登录Dify平台

  2. 进入插件管理页面

  3. 点击调试按钮获取调试密钥和远程服务器地址

  4. 将获取的信息填入.env文件

运行插件 在项目根目录下执行以下命令启动插件:

python -m main

插件启动后,会在Dify平台的插件列表中显示为"DEBUGGING PLUGIN"状态,此时可以进行测试。

三、插件安装

3.1 插件项目打包

dify-plugin-windows-amd64.exe plugin package hello_world

该命令会生成一个名为hello_world.difypkg的打包文件。 打包过程会自动包含以下内容:

  • 所有源代码文件

  • manifest.yaml清单文件

  • requirements.txt依赖文件

  • 相关的配置文件和资源文件

3.2 发布插件

打包完成后,可以通过以下方式发布插件:

  1. 上传到Dify Marketplace:

    (1)登录Dify平台

    (2)进入插件管理页面

    (3)点击"上传插件"按钮

    (4)选择生成的.difypkg文件上传

  2. 通过GitHub发布:

    (1)将代码推送到GitHub仓库

    (2)创建Release并附加.difypkg文件

    (3)在Dify平台通过GitHub链接安装

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务

更多推荐