首页 > 教程攻略 > ai资讯 >Dify v1.10.0-rc1:引入事件驱动工作流!

Dify v1.10.0-rc1:引入事件驱动工作流!

来源:互联网 时间:2026-07-24 13:50:10

Dify v1.10.0-rc1 带来了一项真正称得上“革命性”的更新——事件驱动的工作流。这不仅仅是增加几个新按钮那么简单,它标志着 Dify 正在从一个被动等待指令的 AI 工具,向一个能够主动响应、智能决策的自动化平台演进。无论你是在打磨企业级业务流程,还是想构建更复杂的 AI 应用,这次的更新都值得认真一看。

Dify v1.10.0-rc1:引入事件驱动工作流!

v1.10.0 简介:触发器功能详解

所谓触发器,说白了就是一句话:

当某件事发生时,就去执行某个操作。

这是事件驱动型工作流的核心基础。在 v1.10.0 中,Dify 主要引入了以下几种触发器类型:

  • 定时触发

    :基于时间的调度器,到点自动干活。
  • SaaS 集成事件触发

    :来自 Slack、GitHub、Linear 等外部平台的事件,通过插件系统实现无缝衔接。
  • Webhook 触发

    :接收外部的 HTTP 回调,实现系统间的即时通知与联动。

需要特别注意的是,以上所有功能目前仅为工作流(Workflow)设计,还

不支持

聊天流(Chatflow)、智能体(Agent)以及基础的聊天模式(BasicChat)。

设计前提:重新定义“开始节点”

在推进这个功能时,团队经过反复推敲后认为,原有的“开始节点”设计已经无法承载新的触发器理念。于是,团队将其重新设计为一个与 Web 应用或服务 API 深度绑定的组件。这意味着什么呢?

  1. 工作流的输入参数,将直接等同于“开始节点”所定义的表单。
  2. 不同类型的触发器可以自由定义自己的输入格式,不再受限于 Dify 固定的“开始节点”格式。比如:
    • Webhook

      :用户可以自由定义需要的 HTTP 负载结构。
    • 插件

      :为特定的第三方平台预置好工作流输入参数。
    • 定时触发

      :只需要一个简单的 $current_time 参数就够了。

基于这个思路,衍生出了三种本质上都属于“触发器节点”的新“开始节点”。目前,该功能的产品设计、UI/UX 设计都已经收尾,具体将分为以下三个部分落地:

  • WebHook

    — 在画布里直接配置 WebHook 的相关信息。
  • 定时触发(Schedule)

    — 基于时间的自动任务。
  • 插件(Plugins)

    — 大部分第三方集成都依赖于此。

基于队列的图引擎:为什么要重做?

这次更新背后,是四个非常现实的痛点,也是推动 Dify 从被动走向主动的根本原因。

1. 支持更多真实的使用场景

以前,如果你想搞一个“Discord 工单机器人 → Linear 自动同步”的功能,需要自己写一堆粘合代码,预发布扩展,还得手动去 Discord 开发者后台拿令牌。整个过程繁琐且不直观,做不到一键 OAuth 绑定。类似的痛苦,在 GitHub PR 审查、邮件自动回复等场景里比比皆是。

2. 减少体验的割裂感

当然,你也可以借助外部自动化平台来调用 Dify 的 API,实现类似效果。但这样做,体验就被切成了两半。而且,很多外部自动化平台自己也在一步步引入 LLM 编排能力,导致体验更加碎片化。

3. 实现集中配置与管理

对于开发者来说,过去往往需要部署多个服务去轮询不同的事件。虽然 Dify 原有的“端点”功能可以提供一定支持,但它并非为触发器场景设计,配置起来不直观也不顺手。

4. 回应真实的用户需求

这次更新不是闭门造车。社区里有不少用户一直在呼唤这个功能,相关议题编号包括: #9168、#4516、#19409、#21583。

升级指南

如果你打算尝鲜,以下是两种部署方式的升级流程。

Docker Compose 部署

  1. 备份自定义的 docker-compose YAML 文件(可选)

    cd docker
    cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
  2. 从 main 分支获取最新代码

    git checkout 1.9.0
    git pull origin 1.9.0
  3. 停止服务(在 docker 目录中执行)

    docker compose down
  4. 备份数据

    tar -cvf volumes-$(date +%s).tgz volumes
  5. 升级服务

    docker compose up -d

源代码部署

  1. 停止 API 服务器、Worker 和 Web 前端服务器。
  2. 从发布分支获取最新代码:
    git checkout 1.10.0-rc1
  3. 更新 Python 依赖:
    cd api
    uv sync
  4. 运行迁移脚本:
    uv run flask db upgrade
  5. 重新运行 API 服务器、Worker 和 Web 前端服务器。

变更内容一览

这次版本包含大量的重构与优化,主要变更点整理如下:

  • 将工作流控制面板中的“导出”按钮替换为“更多操作”按钮。
  • 新增“滚动至选中节点”按钮(位于工作流顶部栏)。
  • 新增完善的触发器节点系统,包含定时触发器实现。
  • 将工作流“运行”按钮更新为“测试运行(Test Run)”,并支持快捷键。
  • 新增“测试运行”下拉菜单,支持动态选择触发器。
  • 优化定时触发器的小时模式计算逻辑,提升 UI 一致性。
  • 移除“工作流功能”按钮。
  • 实现定时触发器验证功能,支持多开始节点拓扑结构。
  • 修复“移除功能”与“增强验证”之间的代码合并冲突。
  • 重构“开始节点”UI 为“用户输入(User Input)”,优化“入口节点容器(EntryNodeContainer)”。
  • 修复工作流国际化(i18n)文件中重复的“星期”键值。
  • UI 优化,修复定时触发器的翻译问题及自定义图标。
  • 修复切换至“小时”频率时未初始化重复字段的问题。
  • 实现定时触发器的“按月”多选项功能。
  • (工作流)新增“插件触发器节点”,适配统一入口节点系统。
  • 将“测试运行”下拉菜单中的模拟数据替换为动态工作流选项。
  • 重构定时触发器组件,优化整体设计。
  • (触发器)实现通用入口功能。
  • (触发器)支持指定根节点。
  • 实现 WebHook 触发器前端功能。
  • (WebHook 触发器)移除冗余的 WebhookParam 类型,简化参数处理逻辑。
  • (定时触发器)以用户为中心简化时区处理逻辑。
  • 重构工作流执行的错误类型,使用特定错误类型。
  • 重构“RunAllTriggers”图标名称为“TriggerAll”,提升语义清晰度。
  • 修复“仅含触发器节点的工作流无法保存”的问题。
  • 修复“无开始节点的工作流无法打开服务接口”的问题。
  • 实现工作流引导弹窗系统。
  • 实现 WebHook 触发器后端 API。
  • 修复国际化(i18n)缺失的键值,合并上游主分支代码。
  • 重构(侧边栏)应用操作区域,新增切换功能。
  • 修复“仅工作流应显示引导弹窗”的逻辑。
  • 重构“租户日限流(TenantDailyRateLimiter)”,内部使用 UTC 时间,错误提示支持时区显示。
  • 统一 WebHook 触发器与定时节点的样式,修复选中边框截断问题。
  • 支持空工作流,优化工作流验证逻辑。
  • 提升 WebHook 服务及控制器的代码质量。
  • (定时触发器)修正“按周”频率的星期计算算法。
  • 增强工作流错误处理能力,优化国际化支持。
  • 优化工作流检查清单组件的 UI 样式。
  • (定时触发器)为“按周”频率模式添加时间逻辑,确保与“按日”模式行为一致。
  • 新增“应用触发器列表”API。
  • 优化工作流模块选择器的搜索功能。
  • 优化触发器模块的提示框(Tooltip)设计。
  • 实现触发器卡片组件,支持自动刷新。
  • 优化触发器卡片的布局间距,移除分隔线。
  • 实现“添加 / 删除 WebHook 触发器时调用 API”的功能。
  • 增强 WebHook 触发器面板的 UI 一致性与交互性。
  • 修复工作流卡片切换逻辑,实现极简状态 UI。
  • 修复“执行 WebHook 前未检查 AppTrigger 状态”的问题。
  • 优化定时触发器及“快速设置”应用操作按钮的 UI。
  • (WebHook)新增基于内容类型(Content-Type)的参数类型处理逻辑。
  • 优化时间选择器(TimePicker)底部布局及按钮样式。
  • 统一“测试运行”快捷键,优化下拉菜单样式。
  • 重构触发器节点架构,清理技术债务。
  • 实现 WebHook 节点的变量同步功能。
  • (WebHook 触发器)移除冗余的错误处理逻辑。
  • (应用卡片)限制仅“开始节点”可启用切换功能。
  • 修复“WebHook HTTP 方法大小写不敏感”的问题。
  • 在应用日志中添加“触发器来源”字段。
  • (工作流日志)增强日志 UI,支持排序与状态筛选。
  • 修复“因竞争条件与视口错误导致工作流画布清空”的问题。
  • (WebHook 触发器)调整请求数组类型。
  • 修复国际化翻译路径缺失的键值。
  • (WebHook)限制状态码范围为 200~399。
  • (WebHook)删除冗余变量。
  • (WebHook)修正内容类型(Content-Type)。
  • (WebHook)调用时验证 application/json 类型的参数。
  • (工作流)增强 WebHook 状态码输入框,支持增减按钮。
  • 修复 UUID v7 相关问题。
  • (WebHook)优化选中类型的 UI 样式。
  • (WebHook)使用普通变量替代 InputVar。
  • (WebHook)切换内容类型时清空请求体变量。
  • 修复“页面导航时同步空工作流草稿”的问题。
  • (触发器)支持 WebHook 上传文件。
  • (触发器)将内容类型从 form 改为 application/octet-stream。
  • (触发器)实现插件模块选择器,遵循工具设计模式。
  • 修复模块选择器 UI 问题。
  • (触发器)新增 WEBHOOK_REQUEST_BODY_MAX_SIZE 配置。
  • 优化触发器插件的 UI 布局与响应式表现。
  • (触发器)重构 WebHook 服务。
  • 为工作流的触发器插件节点添加图标支持。
  • 实现触发器插件的前端集成。
  • 优化“测试运行”菜单及检查清单 UI。
  • 实现触发器插件支持,含实时状态同步。
  • 为触发器列表添加稳定排序,防止位置错乱。
  • 实现触发器插件的认证 UI。
  • 在应用级别初始化触发器状态,防止画布刷新导致的状态问题。
  • 调整“滚动至选中节点”的位置,使其定位到左上角区域。
  • (触发器插件)支持 API 密钥(API Key)。
  • 修复工作流顶部栏问题。
  • (WebHook)防止 SimpleSelect 组件重置用户选择。
  • 修复“仅工作流应调用触发器 API”的逻辑。
  • 优化提示框(Tooltip)与引导弹窗 UI。
  • 实现工作流的定时触发器支持。
  • 修复 BaseNode 中未向子节点传递 id 属性的问题。
  • 修复定时触发器问题。
  • (定时触发器)默认设置为每日午夜触发。
  • 优化 WebHook 功能。
  • (定时触发器)使用成熟库增强 Cron 解析器,完善测试覆盖。
  • (工作流)修复“知识管道重构后引导弹窗无法创建节点”的问题。
  • (重构 / 优化)实现 useState 延迟初始化,避免重复计算。
  • 重构:使用 @ns.route 装饰器优化标签 API 路由。
  • (国际化)翻译 i18n 文件并更新类型定义。
  • 修复:启用 Pyright 类型检查,修正数据集控制器的类型错误。
  • 小修复:修正部分翻译(“trunk” 应使用本地化表述)及翻译拼写错误。
  • 修复 core/model_runtime 相关问题。