news 2026/5/1 7:14:46

【Python大语言模型系列】新版Dify 开发自定义工具插件在工作流中直接调用(完整步骤)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python大语言模型系列】新版Dify 开发自定义工具插件在工作流中直接调用(完整步骤)

这是我的第441篇原创文章。

一、引言

“工具插件”指的是一个完整的项目,其中包含工具供应商文件、功能代码等结构。之前写过一个旧版dify开发自定义工具:

【Python大语言模型系列】Dify 开发一个自定义工具并在工作流中直接调用(完整案例)

新版dify遵循插件化原则,自定义工具的开发流程和步骤略有不同。基于官方文档和实战经验,以下是 Dify Tools 插件的从零到上线完整开发流程。

二、实现过程

2.1 安装 Dify 插件开发脚手架工具

访问 Dify Plugin CL 项目地址,下载并安装最新版本号和对应操作系统的工具。

运行以下命令检查安装是否成功。

./dify-plugin-darwin-arm64 version # macOS ./dify-plugin-windows-arm64 version # windows

运行命令后,终端若返回类似v0.0.1-beta.15的版本号信息,则说明安装成功。

如果你已将该二进制文件重命名为dify并拷贝至 系统路径下(如:/usr/local/bin路径)下,配置完成后,在终端输入dify version命令后将输出版本号信息。可以运行以下命令创建新的插件项目:

dify plugin init

2.2 初始化插件项目

使用脚手架工具创建插件项目:

/dify-plugin plugin init

输入插件名称、作者信息,选择插件类型(如tool工具插件)。配置权限(如 Tools、Apps、Endpoints 等),完成后生成标准目录结构:

my-plugin/ ├── main.py # 插件入口文件 ├── manifest.yaml # 插件元数据配置,一般可以不管 ├── tools/ # 功能实现代码 ├── provider/ # 服务商凭证与验证,一般可以不管 └── requirements.txt # Python 包依赖 └── .env.example # 配置文件

2.3 功能开发

在tools/my-plugin.py中实现核心逻辑:继承Tool基类并实现_invoke方法。例如:

from difyplugin import Tool, ToolInvokeError class MyTool(Tool): def _invoke(self, tool_parameters: dict) -> str: try: param = tool_parameters['input'] result = f"Processed: {param}" return self.create_text_message(result) except Exception as e: raise ToolInvokeError(f"Error: {str(e)}")

配置参数:在tools/my-plugin.yaml文件中定义插件参数和描述。

2.4 配置 Python 环境

确保 Python 版本 ≥ 3.12,建议使用虚拟环境:

python -m venv .venv source .venv/bin/activate # Linux/macOS \.venv\Scripts\activate # Windows pip install -r requirements.txt # 安装核心包

2.5 测试与验证

复制模板

cp .env.example .env

配置.env文件,填写调试 Key 和服务器地址:

INSTALL_METHOD=remote REMOTE_INSTALL_URL=10.0.x.5 REMOTE_INSTALL_PORT=5003 REMOTE_INSTALL_KEY=xxxx

启动插件进行测试:

python -m main

在 Dify 平台中运行工作流,验证插件输出是否符合预期。

2.6 打包与发布

打包插件为.difypkg文件:

/dify-plugin plugin package ./my-plugin

可选择签名插件以提高安全性,并上传到 Dify 平台或 Marketplace。

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 17:57:25

GFPGAN人脸修复完整教程:从安装到实战应用

GFPGAN人脸修复完整教程:从安装到实战应用 【免费下载链接】GFPGAN TencentARC/GFPGAN: GFPGAN(GFPGAN: Real-World Blind Face Restoration with PULSE)是由腾讯ARC实验室研发的一个基于深度学习的人脸图像修复工具,主要用于低质…

作者头像 李华
网站建设 2026/5/1 0:54:44

HexStrike AI MCP Agents v6.0 - 技术文档

HexStrike AI MCP Agents v6.0 - 技术文档 一、为什么选择 MCP 多智能体? 开放标准的价值 HexStrike v6.0采用MCP(Model Context Protocol)作为核心通信协议,这一开放标准使得Claude、GPT、Copilot、Cursor、Roo Code等主流AI智能…

作者头像 李华
网站建设 2026/5/1 6:09:52

传统vsAI:Vue WebSocket开发效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 生成一个完整的Vue WebSocket聊天应用对比案例:1. 传统方式:手动编写连接管理、消息处理、错误恢复等代码;2. AI方式:描述需求后自动…

作者头像 李华
网站建设 2026/5/1 6:10:33

OMPL运动规划库终极指南:从算法选择到性能优化的实战解决方案

OMPL运动规划库终极指南:从算法选择到性能优化的实战解决方案 【免费下载链接】ompl The Open Motion Planning Library (OMPL) 项目地址: https://gitcode.com/gh_mirrors/om/ompl 你是否曾经面临这样的困境:机器人在复杂环境中无法找到可行路径…

作者头像 李华
网站建设 2026/5/1 6:10:03

TypeScript Execute终极指南:5分钟解锁Node.js开发新体验

TypeScript Execute终极指南:5分钟解锁Node.js开发新体验 【免费下载链接】tsx ⚡️ TypeScript Execute: Node.js enhanced to run TypeScript & ESM 项目地址: https://gitcode.com/gh_mirrors/ts/tsx 想要在Node.js环境中无缝运行TypeScript代码&…

作者头像 李华
网站建设 2026/5/1 1:58:25

建筑工程项目管理软件解决方案:企智汇全流程数字化管控,提升施工效率与质量!工程项目管理系统,工程项目管理软件!企智汇软件!建筑企业项目管理软件系统!建筑工程项目管理系统!建筑企业项目管理解决方案!

在建筑行业数字化转型的浪潮中,传统项目管理模式已难以满足现代企业高效运营的需求。项目进度滞后、成本超支、质量安全隐患频发、多方协同不畅等问题,成为制约建筑企业发展的"顽疾"。如何实现"以项目为中心、以计划控进度、以预算控成本…

作者头像 李华