Dify Plugin Daemon 是一个管理插件生命周期的服务。它负责管理三种运行时:
Dify API 服务器将与守护进程通信,以获取所有插件的状态(例如哪个插件安装到了哪个工作空间),并接收来自 Dify API 服务器的请求来调用插件(如无服务器函数)。
所有来自 Dify API 的请求都基于 HTTP 协议,但根据运行时类型的不同,守护进程会以不同的方式将请求转发到相应的运行时。
关于 Dify 插件的更详细介绍,请参阅我们的文档:https://docs.dify.ai/plugins/introduction。
我们提供了一个 CLI 工具,用于在本地环境中进行插件开发。
brew 安装支持 Linux 和 MacOS 系统,以及 arm64 或 amd64 架构。
brew tap langgenius/dify
brew install dify
从 发布页面 的资产列表中下载二进制文件。
首先将 .env.example 文件复制为 .env,并设置正确的环境变量,如 DB_HOST 等。
cp .env.example .env
如果您在 0.1.2 版本之前使用非 AWS S3 存储,需要在 .env 文件中手动将 S3_USE_AWS 环境变量设置为 false。
请注意,PYTHON_INTERPRETER_PATH 是 Python 解释器的路径,请根据您的 Python 安装指定正确的路径,并确保 Python 版本为 3.11 或更高,因为 dify-plugin-sdk 有此要求。
我们建议您使用 vscode 来调试守护进程,.vscode 目录中提供了一个 launch.json 文件。
守护进程使用 uv 来管理插件的依赖项,在启动守护进程之前,您需要自行安装 uv。
您的机器上可能安装了多个 Python 版本,我们提供了一个变量 PYTHON_INTERPRETER_PATH 来为您指定 Python 解释器路径。
目前,守护进程仅支持 Linux 和 MacOS,Windows 需要大量适配工作,如果您需要此功能,欢迎贡献代码。
注意: 由于守护进程依赖于共享的
cwd目录来运行插件,不建议使用基于网络的卷或来自主机外部的绑定挂载。这可能导致性能不佳,例如插件无法及时启动。
使用 Docker 卷与主机共享目录,以获得更好的性能。
目前,Daemon 社区版不支持通过增加副本数来平滑扩展。如果您对此功能感兴趣,请联系我们。我们为企业用户提供了更适用于生产环境的版本。
对于在此代码库上工作的开发者,请参阅我们全面的开发文档:
请参阅 基准测试
Dify Plugin Daemon 基于 Apache-2.0 许可证 发布。