模型 (Models): 学习如何将不同的 AI 模型打包、配置并作为插件进行管理。
工具 (Tools): 为 Agent 和工作流构建专业能力,如数据分析、内容处理、自定义集成等。
Agent 策略 (Agent Strategies): 创建自定义的推理策略(如 ReAct, CoT, ToT)来赋能 Dify 中的自主 Agent。
扩展 (Extensions): 通过 HTTP Webhook 实现与外部服务的集成,处理复杂逻辑。
包 (Bundles): 了解如何将多个插件组合打包,以便于分发和部署。 不同插件的开发流程都差不多,这里以Extension为例,介绍下Dify插件的完整开发流程。不得不承认Dify在产品化这块儿做得还可以,虽然比不上coze这样的商业化产品,但是文档和工具还是比较全面的。 首先我们下载开发插件用的脚手架: https://github.com/langgenius/dify-plugin-daemon/releases/download/0.0.9/dify-plugin-darwin-amd64 下载下来后查看下版本 chmod +x dify-plugin-darwin-amd64./dify-plugin-darwin-amd64 versionv0.0.9
./dify-plugin-darwin-amd64 plugin init
% tree.|____endpoints| |____firstexp.yaml| |____firstexp.py|_____assets| |____icon.svg|____requirements.txt|____group| |____firstexp.yaml|____PRIVACY.md|____README.md|____.gitignore|____manifest.yaml|____GUIDE.md|____.github| |____workflows| | |____plugin-publish.yml|____.env.example|____main.py|____.difyignore
python3 -m venv myenv# 激活当前环境source myenv/bin/activate# 退出环境deactivate
pip3 install werkzeug -i https://mirrors.aliyun.com/pypi/simple/pip3 install dify_plugin -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt
INSTALL_METHOD=remoteREMOTE_INSTALL_HOST=debug.dify.aiREMOTE_INSTALL_PORT=5003REMOTE_INSTALL_KEY=********-****-****-****-************
REMOTE_INSTALL_HOST=host.docker.internal
./dify-plugin-darwin-amd64 plugin package ./firstexp2025/05/07 15:22:51 package.go:39: [INFO]plugin packaged successfully, output path: firstexp.difypkg
PluginDaemonBadRequestError: plugin verification has been enabled, and the plugin you want to install has a bad signature
FORCE_VERIFYING_SIGNATURE=false

from dify_plugin import Plugin, DifyPluginEnvplugin = Plugin(DifyPluginEnv(MAX_REQUEST_TIMEOUT=120))if __name__ == '__main__':plugin.run()
plugins:tools:- provider/firstexp.yaml
extra:python:source: tools/firstexp.py
from collections.abc import Generatorfrom typing import Anyfrom dify_plugin import Toolfrom dify_plugin.entities.tool import ToolInvokeMessageclass FirstexpTool(Tool):def _invoke(self, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage]:yield self.create_json_message({"result": "Hello, world!"})


文章转载自golang算法架构leetcode技术php,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




