从0到1开发Dify插件:手把手教你打造第一个“文本增强器”

AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试 AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。本节将介绍如何使用 Dify 平台调用 Ollama 部署的本地模型来创建一个聊天应用。通过 API 的方式发起聊天,可以让前端自由布置所需的聊天形式。 阅读详情
一、环境搭建

Dify插件开发对Python版本有硬性要求,这一点千万别忽视。

1. 使用Conda管理Python环境

首先,确保你的电脑里安装了 Python 3.12 或更高版本。低版本可能会导致兼容性问题。
强烈建议使用 Conda 来管理环境,这样可以避免依赖冲突,也能随时切换Python版本:

# 创建名为 dify-env 的虚拟环境,指定 Python 3.12
conda create -n dify-env python=3.12
#会出现Do you accept the Terms of Service (ToS) for https://repo.anaconda.com/pkgs/main? [(a)ccept/(r)eject/(v)iew]:
输入a
# 激活环境
conda activate dify-env
# 验证版本
python --version  # 应输出 Python 3.12.x
2. 安装Dify插件守护进程

这是官方提供的核心开发工具,用于本地调试和插件打包。
你需要去Dify的GitHub Releases页面下载对应系统的二进制文件。

下载完成后,需要进行两步关键操作:

macOS用户

  1.  添加执行权限:在终端中运行以下命令赋予工具执行权限。
    chmod +x dify-plugin-darwin-amd64
  2. 配置环境变量:为了方便在任何目录下都能使用该命令,建议将其重命名并移动到系统路径中。
    # 重命名为 dify 并移动到 /usr/local/bin
    mv dify-plugin-darwin-amd64 /usr/local/bin/dify

Windows用户

  1. 创建专用文件夹(推荐):
    在磁盘根目录创建一个专门存放工具的文件夹,例如:D:\dify-tools。
  2. 移动并重命名文件:
    将你下载的 dify-plugin-windows-amd64.exe 移动到上述文件夹中,并将其重命名为 dify.exe。
  3. 配置环境变量
    • 在桌面“此电脑”图标上点击右键,选择“属性”。
    • 在弹出的窗口右侧(或左侧菜单)点击“高级系统设置”。
    • 在“系统属性”窗口中,点击右下角的“环境变量”按钮。
    • 在下方的“系统变量”(或者上方的“用户变量”)区域中,找到名为 Path 的变量,选中它并点击“编辑”。
    • 新建输入刚才创建的文件夹路径,例如:D:\dify-tools

验证安装成功:

dify version

如果能看到版本信息,说明工具就位了。

3. 安装核心依赖

在编写代码之前,必须先安装 Dify 的 Python SDK,建议手动指定版本以确保兼容性(例如使用 0.7.0 版本):

pip install dify_plugin==0.7.0

#如果你没有配置源,安装会很慢,推荐(使用清华源)
pip install dify_plugin==0.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
二、项目初始化

在你想存放项目的文件夹下,运行初始化命令:

dify plugin init

这时候终端会进入交互模式,按提示填写即可:

  • Plugin Name:填 text-enhancer(插件唯一标识)。
  • Author:填你的名字。
  • Description:简单描述,比如“文本增强工具”。
  • Repository URL(Optional):回车跳过。
  • Language:选 Python。
  • Select Plugin Type:使用 ↑ ↓ 方向键,按 空格键 选中 Tool。
  • Permissions:根据需求勾选,比如“调用外部API”等。
  • 下一步配置插件的权限。因为我们要做的“文本增强工具”需要被 Dify 调用,所以必须开启 Tools 权限,如下图

  • Minimal Dify version:1.0.0(设置你的插件最低需要哪个版本的 Dify 才能运行)

执行完后,当前目录下会多出一个名为 text-enhancer 的文件夹。

三、核心开发

项目生成后,我们不需要动太多文件,核心工作集中在几个关键位置。一个典型的插件项目结构如下:

text-enhancer/
├── main.py           # 核心逻辑入口
├── manifest.yaml     # 插件元信息配置
├── provider/         # 具体功能实现目录
├── tools/            # 具体功能实现目录
│   ├── text_enhancer.yaml  # 工具定义文件
│   └── text_enhancer.py    # 工具逻辑文件
├── _assets/          # 存放图标等静态资源
├── requirements.txt  # Python 依赖包列表
└── .env.example      # 环境变量配置模板
1. 编写逻辑代码

文件路径:text-enhancer/tools/text-enhancer.py

from collections.abc import Generator
from typing import Any

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

class TextEnhancerTool(Tool):
    def _invoke(self, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage]:
        # 1. 获取参数
        # 这里的 'query' 必须和 manifest.yaml 里定义的参数名一致
        input_text = tool_parameters.get('query', '')
        
        # 2. 处理逻辑
        # 这里我们做一个简单的增强:在前面加上 "[增强后]: "
        enhanced_result = f"[增强后]: {input_text}"
        
        # 3. 返回结果
        # 我们返回一个文本消息
        yield self.create_text_message(enhanced_result)
2 .配置工具清单

文件路径:text-enhancer/tools/text-enhancer.yaml

确保 parameters 中的 query 配置正确,并修改版本号以便管理。

identity:
  version: 0.0.1             # 版本号,每次修改代码建议升级这里
  name: "text-enhancer"
  author: "gaowei"
  label:
    en_US: "text-enhancer"
    zh_Hans: "文本增强器".     #建议修改为中文
四、调试与部署

完成编码后,就可以进行本地调试和打包部署了。

1. 本地逻辑验证

在启动Dify服务进行联调之前,先写一个独立的Python脚本来验证核心逻辑。

在tools目录下创建了一个 test_logic.py 文件:

# -*- coding: utf-8 -*-
# 这是一个独立测试脚本,用来验证你的核心逻辑是否正确
# 不需要安装 dify_plugin 库即可运行

def mock_invoke_logic(tool_parameters):
    """
    这里复制了你插件中的核心逻辑
    """
    # 1. 获取参数
    input_text = tool_parameters.get('query', '')
    
    # 2. 处理逻辑 (模拟增强)
    enhanced_result = f"[增强后]: {input_text}"
    
    return enhanced_result

if __name__ == "__main__":
    print("--- 开始测试插件逻辑 ---")
    
    # 模拟 Dify 传过来的参数
    mock_params = {"query": "你好,这是测试文本"}
    
    # 调用逻辑
    result = mock_invoke_logic(mock_params)
    
    # 打印结果
    print(f"输入: {mock_params['query']}")
    print(f"输出: {result}")
    
    # 简单断言测试
    assert "[增强后]:" in result, "逻辑错误:结果中缺少前缀"
    
    print("--- 测试通过!逻辑没问题 ---")

运行脚本验证:

python test_logic.py

如果看到“测试通过”,说明处理逻辑是稳健的。

2. 打包部署

当本地调试成功后,就可以打包插件了。在项目目录上一层,运行打包命令:

dify plugin package ./text-enhancer

命令执行成功后,会生成一个 .difypkg 后缀的插件包文件。

3. 上传与验证

这是最后也是最关键的一步,我们要把打包好的文件真正用起来。

  1. 上传:登录 Dify Web 界面 -> 插件 -> 安装插件 -> 选择“本地插件” -> 上传 .difypkg 文件。
  2. 安装插件:上传成功后,点击“安装”,等待片刻。
  3. 工作流验证:
    • 新建一个空白工作流。
    • 右击画布->添加节点->工具->下拉选择新建的工具“text-enhancer”。
    • 在节点的配置面板中,为 query 参数填入一个测试值,比如“Hello Dify”。
    • 点击“运行”按钮。
  4. 结果确认:如果一切顺利,你会看到节点运行成功,并在输出结果中看到我们预期的 [增强后]: Hello Dify。这标志着你的第一个插件已经成功开发并投入使用!
五、源码探索
1.官方示例代码

如果你想参考官方写好的插件(比如 GitHub 搜索、维基百科插件)来模仿开发,可以去官方仓库拉取代码。

用途:这个仓库里通常包含 examples 目录,你可以直接阅读里面的 tool 类插件源码。

2. 核心概念辨析

新手容易混淆 dify_plugin (Python 包) 和 dify-plugin-sdks (GitHub 仓库),请参考下表:

特性dify_plugin (Python 库)dify-plugin-sdks (GitHub 仓库)
类比汽车的引擎和底盘驾校的教练车或汽车设计图纸
本质Python 依赖包 (代码库)GitHub 代码仓库 (文档与示例)
获取方式通过 pip install dify_plugin 安装通过 git clone 下载
作用提供开发插件所需的基础能力(如装饰器、基类、通信协议)。你的代码必须 import 它才能运行。提供参考代码。教你如何写 manifest.yaml,如何组织文件结构,如何处理复杂的逻辑。
你需要做什么安装它,然后在你的代码里引用它。阅读它,复制它的代码片段,模仿它的写法。
六、总结

至此,你的第一个 Dify 插件已经成功上线!

Dify之插件开发 本文介绍了如何将Crawl4AI网页爬虫开发为Dify插件的过程。主要步骤包括:搭建Dify插件模板环境(Windows系统)、创建插件模板(Python语言)、开发插件逻辑(实现爬虫功能)、调试部署(通过VSCODE和Anaconda环境)。重点说明了工具参数配置(yaml文件)和核心逻辑实现(Python类),并提供了调试过程中常见问题的解决方案。该插件支持URL过滤功能,可将爬虫服务集成到Dify工作流中,实现定制化数据采集。 阅读详情

相关推荐

基于FastAPI与飞书平台,快速构建企业级AI智能助理机器人

在现代企业数字化进程中,API网关与事件驱动架构是连接异构系统、实现自动化工作流的核心技术。其原理在于通过标准化的接口协议,将不同服务的能力进行封装与路由,实现高效、解耦的通信。这种架构的技术价值在于显著降低了系统集成的复杂度,提升了开发效率与可维护性。在应用场景上,它尤其适用于需要将外部AI能力(如大语言模型服务)无缝嵌入到内部协作工具(如企业IM)中的场景。本文聚焦于如何利用FastAPI框架的高性能异步特性与飞书开放平台的事件订阅机制,快速开发一个功能强大的智能助理机器人。通过封装飞书消息卡片与Dif

weixin_33738982的博客 540

dify插件在线和离线安装

注意:即使本地插件安装也需要联网,因为插件是由python开发,difypkg文件中只包含一个基本的python文件,安装时需要联网下载python库。如果需要离线安装dify插件,需要先在联网状态下进行dify部署,并且完成插件安装,同时下载所需安装插件的difypkg文件。启动完成在插件页面发现没有对应的插件,这时候点击本地插件,安装之前下载的difypkg文件,安装完成之后插件可以用了。如果下载,会下载一个.difypkg的文件,下载完成之后仍然可以进行安装,在安装插件选项中选择本地插件即可安装。

wjj_fire的博客 5409

2026年AI Agent平台选型实战指南:技术演进与业务适配

AI Agent是具备感知、规划、执行与反思能力的智能体,其落地依赖于平台级支撑能力。随着2026年混合推理、多模态语义图谱和四维部署成为标配,平台选型已从‘能否运行’转向‘能否稳管长用’。技术价值体现在模型编排精度、知识图谱演化速度与合规治理深度;典型应用场景覆盖客服对话、工业预测性维护、金融风控审批与教育个性化辅导等高要求领域。本文基于17个生产级项目经验,聚焦AI Agent平台在真实业务中的稳定性、可解释性与国产化适配能力,为技术决策者提供可验证、可复用的选型框架。

csxc65837的博客 404

Dify 大版本更新:v1.0.0 插件系统,为开发者带来无限可能!(附新版一键安装包)

Dify 昨晚进行了大版本v1.0.0更新,我第一时间上手体验,并给大家带来了体验报告 也带来了新版一键安装包(在文内),供大家下载快速上手使用

apo0625的博客 1万+

对话式辅助的范式革命:从流程编排到认知协同

对话式辅助正经历从传统规则驱动向大语言模型赋能的认知协同演进。其核心原理已超越意图识别与槽位填充,转向上下文自解释、多源实时推理与动态知识应用;技术价值体现在显著降低认知负荷、提升一次解决率与风险对齐度;典型应用场景覆盖政务咨询、金融风控、医疗决策与工业维保等高复杂度领域。在ChatGPT Era背景下,Conversational Assistance不再局限于聊天机器人形态,而是作为多模态服务入口,深度嵌入业务流程与物理世界交互。本文基于27个企业级系统落地经验,聚焦真实产线中的能力重写、架构迁移与评估

csdndownload11123的博客 466

GLM-4.7如何用AI Skills实现自然语言生成工作流

工作流(Workflow)是企业自动化的核心范式,其本质是将业务逻辑转化为可执行的步骤序列;传统方案依赖显式编排工具(如n8n),需人工配置节点、调试API与处理异常,学习成本高、迭代周期长;而以GLM-4.7为代表的新型大模型,通过结构化任务指令微调与流程解析头机制,实现了从自然语言需求到标准化YAML工作流定义的端到端生成;该能力的技术价值在于将‘意图理解’与‘动作编排’深度融合,使AI Skills成为可验证、可组合、带副作用声明的语义契约;典型应用场景覆盖电商客服响应、跨系统数据同步、动态库存决策等

weixin_30920597的博客 447

3. 插件体系的边界与可能:从规范到可扩展性的检视

插件体系的“边界”并非技术瓶颈,而是生态健康度的标尺。安全与扩展性不可割裂,规范是协作的基石,而非创新的枷锁。在Dify等平台中,开发者常陷入“要么妥协,要么重构”的两难。边界可被突破,但必须有章可循。未来,插件体系将从“功能容器”升级为“智能生态中枢”——而这一切,始于今天对规范的敬畏与对边界的清醒认知。行动建议立即检查,运行生成语义化版本;用Docker构建生产环境镜像,模拟部署测试;在GitLab中配置插件CI/CD流水线,实现自动化治理。插件的每一次失败,都是重构更健壮体系的契机。

zheng511254216的专栏 802

Dify 第 19 篇 手把手教你开发 Dify 插件:从零实现一个时间工具

本文介绍了Dify平台的插件开发机制和流程。Dify支持多种插件类型,包括模型、工具、数据源等,可通过CLI工具快速开发插件。文章详细讲解了如何安装Dify CLI工具,并演示了从零开发一个获取系统时间插件的完整过程,包括项目初始化、文件解读和打包部署。通过该教程,开发者可以快速掌握Dify插件开发的核心要点,实现自定义功能扩展。

甘蓝的专栏 2451

并行分布式框架:Celery、rq、funboost

Celery是一个异步任务的调度工具,也可以叫做 "分布式任务队列(Distributed Task Queue)"。

freeking101的博客 5万+

hMailServer安装配置

hMailServer安装配置 使用宝塔面板上的宝塔邮件服务器2.1版本,进行安装hMailServer。 宝塔在安装hMailServer是有做了一些配置,如果是手工安装需要注意一下配置点: 1、\hMailServer\Bin 目录下增加mysql连接文件libmysql.dll,要去下载32位的。 libmysql.dll下载 链接:https://pan.baidu.com/s/1YGJXzjowlJ9n_MiqB4xiqw 提取码:wz90 2、 需要提前安装mysql,并创建hM.

王者的博客 5870

利用Arcgis提取nc数据并计算区域年均温

1.下载数据。2.解压数据至不含中文的路径中。打开工具箱中的多维分析工具-创建NetCDF栅格图层,导入数据。3.打开工具箱中的数据管理工具-图层和表视图-创建栅格图层,导入数据,对输出数据进行命名,得到月均温栅格数据。4.选择工具箱-Spatial Analyst工具(空间分析工具)-地图代数-栅格计算器,计算全国一年年均温。​5.将其导出为.tif格式数据,方便后期使用。6.选择工具箱-Spatial Analyst工具(空间分析工具)-区域分析--以表格显示分区统计,得到分区域的气温数据。

什么都学亿点点的博客 7994

Dify 插件工具开发

Dify 插件开发运行

suozhi5439的博客 3157

FPGA设计中的扇出约束实战:从XDC到代码优化的全流程解析

本文全面解析FPGA设计中扇出约束的重要性与应用,详细介绍了从XDC约束文件设置到HDL代码优化的全流程实战技巧。通过MAX_FANOUT约束控制信号负载,结合寄存器复制和物理优化策略,有效解决高扇出导致的时序违例和布线拥塞问题,提升设计性能和可靠性。

nept的博客 798

小白向:如何使用dify官方市场“ECharts图表生成”工具插件——dify入门案例

dify小白使用echarts组件教程

开源AI 专属 UI——papyrai-ui。《千界明彻录》(故事形式构建元思维)——胡说小说。更多思辨内容在公众号。 1万+

Cadence Allegro安装全攻略:从准备到优化的完整指南

本文提供了一份详尽的Cadence Allegro安装教程,涵盖从系统准备、硬件要求到获取安装文件的完整前期工作。指南逐步解析了自定义安装、路径选择及核心组件配置,并重点阐述了许可证服务器的环境变量设置与服务启动等关键激活步骤,最后给出了首次启动验证、个性化优化及常见问题排错方案,助您高效完成安装与配置。

weixin_29243063的博客 187

MATLAB并行开不了的解决办法

在服务器上新安装了MATLAB 2013b,在开并行计算的时候出现了下列问题 经过在网上搜多这个问题,我感觉这个问题应该是安装的时候的验证问题或者激活不成功之类的。注意其中有一句validate the profile ‘local’ in the Cluster Profile Manager.在matlab官网上找到了设置Cluster Manager的教程,如下 parallel>

sinat_36713319的博客 5988

dify常用插件以及好用的解析

最近闲下来日更分享,今天必须给大家安利一波 Dify 的宝藏插件!用过就知道有多香 —— 虽然 Dify 的插件市场不像某些社区那样看似全面,但胜在隐私安全拉满,不用担心数据泄露或丢失~ 后面还会分享数据库实操场景,干货满满!不管你是想入门 AI 工作流,还是想优化现有流程,这篇都能给你灵感~ 戳进来学习,有任何问题评论区留言,手把手帮你解决!

m0_74425792的博客 2656

Zynq UltraScale+ MPSoC-AMP(linux+裸机)

接着 Zynq UltraScale+ MPSoC-双核裸机AMP继续 平台工具:zcu106,vitis2020.2,petalinux2019.2 文章目录1.cpu1跑裸机2.cpu0跑linux2.1petalinux设置2.2 app3.生成BOOT.bin4.zcu106测试 1.cpu1跑裸机 参照Zynq UltraScale+ MPSoC-双核裸机AMP建立的工程进行修改。BSP中stdin与out修改为uart1,uart1给裸机用,uart0给linux用。 ddr空间裸机与linu

zhuxl24的博客 5196

dify插件开发和技能开发,安装本地插件

dify插件开发,安装本地插件

nalanxiaoxiao2011的博客 3537

基于gm/id方法的折叠式共源共栅放大器设计实践

本文详细介绍了基于gm/id设计方法进行折叠式共源共栅放大器设计的完整流程。该方法通过确定晶体管的跨导效率(gm/id)作为核心设计参数,将复杂的放大器设计转化为有明确路径的优化问题。文章以设计一个增益80dB、带宽1GHz的两级放大器为例,逐步拆解了从指标分解、关键晶体管工作点选取、到实战仿真与微调的全过程,特别强调了第二级设计对稳定性的影响以及相位裕度的调试技巧。

w8x9y0z1的博客 416

vue3+ts+elementui-plus二次封装树形表格实现不同层级展开收起的功能

我只定义了三层数据,就只演示展开了三层,还可以多层,自己设置即可。

蜗牛~~ 2603

dify离线安装模型插件

【代码】dify离线安装模型插件。

qq_36813879的博客 3733

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Dify插件安装与使用教程

Dify插件安装与使用教程

nalanxiaoxiao2011的博客 7232

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Dify 保姆级教程之:零代码打造 AI 搜索引擎

本文通过一个简单案例,带大家实操了**Dify 搭建 AI 搜索引擎**

u010522887的专栏 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

三步让Dify工作流秒变智能插件!MCP Server插件实操指南

通过MCP协议,我们大大简化了AI Agent编写的门槛,原来很多工作流实现的复杂操作,通过一个dify Agent+提示词+各种MCP工具,就可以把Agent培养成一个超级助手。那么,我们这样,我们本地实现的这些工作流及其能力,无需进行二次开发,可以被高效复用到别的MCP Client工具和应用场景里。今天就让我们一起来看看如何实现。(不过需要注意的是,为避免潜在的数据安全风险,官方也仅建议做私有网络环境中使用MCP Server插件)在开始前,请确保:• 已部署Dify实例。

m0_59235245的博客 2846

Dify插件开发之模型插件开发(傻瓜式记录)

今天有空又想继续折腾下Dify插件开发关于模型接入这一块,虽然GitHub上有非常多且更加标准强大的成本,但本着尝试与学习的出发点做了一次尝试。

hnmpf的博客 1788
上一篇: Dify 插件离线打包完整指南(Windows + Docker 版)
下一篇: OpenClaw Docker部署避坑指南:服务启动成功但网页打不开?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值