Dify Plugin Daemon API 文档

1. 项目介绍

Dify Plugin Daemon 是一个插件管理服务,负责插件的安装、卸载、更新和调用等功能。本文档详细描述了其提供的HTTP API接口。

2. 接口概览

模块路径前缀主要功能
健康检查/health服务健康状态检查
插件管理/plugin/:tenant_id/management插件的安装、卸载、更新等管理操作
端点管理/plugin/:tenant_id/endpoint插件端点的设置、列表、启用/禁用等操作
插件调用/plugin/:tenant_id/dispatch插件功能的调用
远程调试/plugin/:tenant_id/debugging远程调试相关功能
服务器事务/backwards-invocation服务器端事务处理
插件资产/plugin/:tenant_id/asset插件资产的获取
插件资产提取/plugin/:tenant_id/extract-asset插件资产的提取
管理员接口/admin管理员操作接口
性能分析/debug/pprof性能分析工具接口

3. 详细接口文档

3.1 健康检查接口

API路径方法功能描述请求参数成功响应
/health/checkGET检查服务健康状态无{"status": "ok"}

3.2 插件管理接口

3.2.1 插件安装
API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/management/install/upload/packagePOST上传插件包dify_pkg: 文件
verify_signature: 布尔值
插件安装任务信息
/plugin/:tenant_id/management/install/upload/bundlePOST上传插件 bundledify_bundle: 文件
verify_signature: 布尔值
插件安装任务信息
/plugin/:tenant_id/management/install/identifiersPOST从标识符安装插件plugin_unique_identifiers: 插件唯一标识符数组
source: 来源
metas: 元数据数组
插件安装任务信息
/plugin/:tenant_id/management/install/upgradePOST升级插件original_plugin_unique_identifier: 原始插件唯一标识符
new_plugin_unique_identifier: 新插件唯一标识符
source: 来源
meta: 元数据
插件升级任务信息
3.2.2 插件安装任务管理
API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/management/install/tasksGET获取插件安装任务列表page: 页码
page_size: 每页大小
任务列表
/plugin/:tenant_id/management/install/tasks/:idGET获取插件
安装任务详情
id: 任务ID任务详情
/plugin/:tenant_id/management/install/tasks/delete_allPOST删除所有插件安装任务无删除结果
/plugin/:tenant_id/management/install/tasks/:id/deletePOST删除插件安装任务id: 任务ID删除结果
/plugin/:tenant_id/management/install/tasks/:id/delete/*identifierPOST从任务中删除插件安装项id: 任务ID
identifier: 插件标识符
删除结果
3.2.3 插件信息获取
API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/management/decode/from_identifierGET解码插件标识符plugin_unique_identifier: 插件唯一标识符解码结果
/plugin/:tenant_id/management/fetch/manifestGET获取插件清单plugin_unique_identifier: 插件唯一标识符插件清单
/plugin/:tenant_id/management/fetch/identifierGET从标识符获取插件plugin_unique_identifier: 插件唯一标识符插件信息
/plugin/:tenant_id/management/fetch/readmeGET获取插件 READMEplugin_unique_identifier: 插件唯一标识符
language: 语言
README 内容
/plugin/:tenant_id/management/listGET获取插件列表page: 页码
page_size: 每页大小
插件列表
/plugin/:tenant_id/management/installation/fetch/batchPOST批量获取插件安装信息plugin_ids: 插件ID数组安装信息列表
/plugin/:tenant_id/management/installation/missingPOST获取缺失的插件安装plugin_unique_identifiers: 插件唯一标识符数组缺失的插件安装
3.2.4 插件卸载
API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/management/uninstallPOST卸载插件plugin_installation_id: 插件安装ID卸载结果
3.2.5 插件组件列表
API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/management/modelsGET获取模型列表无模型列表
/plugin/:tenant_id/management/toolsGET获取工具列表无工具列表
/plugin/:tenant_id/management/toolGET获取工具详情无工具详情
/plugin/:tenant_id/management/triggersGET获取触发器列表无触发器列表
/plugin/:tenant_id/management/triggerGET获取触发器详情无触发器详情
/plugin/:tenant_id/management/tools/check_existencePOST检查工具是否存在无检查结果
/plugin/:tenant_id/management/agent_strategiesGET获取代理策略列表无代理策略列表
/plugin/:tenant_id/management/agent_strategyGET获取代理策略详情无代理策略详情
/plugin/:tenant_id/management/datasourcesGET获取数据源列表无数据源列表
/plugin/:tenant_id/management/datasourceGET获取数据源详情无数据源详情

3.3 端点管理接口

API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/endpoint/setupPOST设置端点plugin_unique_identifier: 插件唯一标识符
user_id: 用户ID
settings: 设置
name: 名称
端点信息
/plugin/:tenant_id/endpoint/removePOST移除端点endpoint_id: 端点ID移除结果
/plugin/:tenant_id/endpoint/updatePOST更新端点endpoint_id: 端点ID
user_id: 用户ID
settings: 设置
name: 名称
更新结果
/plugin/:tenant_id/endpoint/listGET获取端点列表page: 页码
page_size: 每页大小
端点列表
/plugin/:tenant_id/endpoint/list/pluginGET获取插件端点列表plugin_id: 插件ID
page: 页码
page_size: 每页大小
端点列表
/plugin/:tenant_id/endpoint/enablePOST启用端点endpoint_id: 端点ID启用结果
/plugin/:tenant_id/endpoint/disablePOST禁用端点endpoint_id: 端点ID禁用结果

3.4 插件调用接口

API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/dispatch/agent_strategy/invokePOST调用代理策略具体参数根据策略而定调用结果

3.5 远程调试接口

API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/debugging/keyPOST获取远程调试密钥无调试密钥

3.6 服务器事务接口

API路径方法功能描述请求参数成功响应
/backwards-invocation/transactionPOST处理服务器端插件事务事务数据事务处理结果

3.7 插件资产接口

API路径方法功能描述请求参数成功响应
/plugin/:tenant_id/asset/:idGET获取插件资产id: 资产ID资产数据
/plugin/:tenant_id/extract-asset/GET提取插件资产plugin_unique_identifier: 插件唯一标识符
file_path: 文件路径
资产数据

3.8 管理员接口

API路径方法功能描述请求参数成功响应
/admin/plugin/serverless/reinstallPOST重新安装服务器端插件plugin_unique_identifier: 插件唯一标识符安装结果
/admin/plugin/serverless/switch-endpointPOST切换服务器端端点plugin_unique_identifier: 插件唯一标识符
function_name: 函数名称
function_url: 函数URL
切换结果

3.9 性能分析接口

API路径方法功能描述请求参数成功响应
/debug/pprof/GET性能分析首页无性能分析页面
/debug/pprof/cmdlineGET命令行信息无命令行信息
/debug/pprof/profileGETCPU 性能分析无分析数据
/debug/pprof/symbolGET符号信息无符号信息
/debug/pprof/traceGET跟踪信息无跟踪信息
/debug/pprof/goroutineGETGoroutine 分析无分析数据
/debug/pprof/heapGET堆内存分析无分析数据
/debug/pprof/allocsGET内存分配分析无分析数据
/debug/pprof/blockGET阻塞分析无分析数据
/debug/pprof/mutexGET互斥锁分析无分析数据
/debug/pprof/threadcreateGET线程创建分析无分析数据

4. 请求和响应示例

4.1 从标识符安装插件

请求示例:

POST /plugin/tenant123/management/install/identifiers
Content-Type: application/json

{
  "plugin_unique_identifiers": [
    "plugin1:v1.0.0"
  ],
  "source": "marketplace",
  "metas": [
    {}
  ]
}

响应示例:

{
  "code": 0,
  "message": "success",
  "data": {
    "task_id": "task_123",
    "status": "pending",
    "progress": 0
  }
}

4.2 获取插件列表

请求示例:

GET /plugin/tenant123/management/list?page=1&page_size=10

响应示例:

{
  "code": 0,
  "message": "success",
  "data": {
    "plugins": [
      {
        "id": "plugin1",
        "name": "Test Plugin",
        "version": "1.0.0",
        "description": "A test plugin"
      }
    ],
    "total": 1,
    "page": 1,
    "page_size": 10
  }
}

5. 错误处理

所有API接口返回的错误格式如下:

{
  "code": 400,
  "message": "error message",
  "data": null
}

常见错误码:

  • 400: 请求参数错误
  • 401: 未授权
  • 404: 资源不存在
  • 500: 内部服务器错误

6. 认证与授权

  • 所有插件相关接口需要在请求头中提供 X-Server-Key 认证
  • 管理员接口需要在请求头中提供 X-Admin-API-Key 认证

7. 速率限制

  • 插件安装接口:每分钟最多 10 次请求
  • 插件调用接口:每分钟最多 100 次请求
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐