Dify Workflow 起始节点
Dify Workflow 的起始节点决定流程如何被启动;User Input 适合按需用户或 API 调用,Trigger 适合定时、Webhook 或插件事件自动触发。
#tech / ai
#type / concept
#status / growing
#resource / dify
[!info] related notes
- 所属 MOC: Dify MOC
- 前置概念: Dify AI 应用类型
- 并列概念: Agentic Workflow Patterns
- 易混淆概念: 在 Dify 中创建 video-craft-agent Workflow
- 关系笔记: Dify
Dify Workflow 起始节点
一句话定义
Dify Workflow 起始节点决定 Workflow 是由用户或 API 按需启动,还是由定时任务、Webhook、插件事件等外部事件自动触发。
核心机制 / 工作原理
Workflow 常见有两类起始方式:
User Input
User Input 节点用于收集用户输入并启动 Workflow / Chatflow。
它适合:
- 用户在 Web 应用中填写表单后运行。
- 后端服务通过 API 调用 Dify 应用。
- 上游系统明确知道要传哪些字段。
User Input 中可以定义自定义输入字段,例如短文本、长文本、数字、选择项、JSON、文件等。下游 LLM、Code、条件分支和 Output 节点可以引用这些变量。
Trigger
Trigger 是 Workflow 专用的自动触发起点,用于让流程不等待用户主动调用,而是被外部事件唤醒。
它适合:
- 定时任务,例如每天早上生成日报。
- Webhook,例如收到订单事件后自动处理。
- 插件事件,例如 Slack、Gmail 等外部系统事件。
Chatflow 总是从用户消息开始,因此不使用 Trigger。
最小例子 / 最小场景
如果要做一个短视频脚本生成器,前端或 FastAPI 提交:
product_nametarget_audienceselling_pointsstyleplatformduration_seconds
然后 Dify Workflow 生成固定 JSON 脚本,这时应该选择 User Input。
如果未来要做“每天自动扫描商品列表并批量生成脚本”,才更适合改用 Trigger。
选择速记
| 问题 | 选择 |
|---|---|
| 用户或后端 API 主动传参运行 | User Input |
| 每次运行前需要填写表单变量 | User Input |
| 需要定时运行 | Trigger |
| 需要响应第三方 Webhook | Trigger |
| 需要外部插件事件自动唤醒 | Trigger |
| 要做 Chatflow 对话 | User Input |
和 Output / End 的关系
Dify 旧文档和一些界面习惯里会把结束节点称为 End;当前文档中更常见的名字是 Output。
对 Workflow 来说:
- Output 用来显式返回变量给终端用户或 API 调用方。
- Workflow 可以没有 Output 节点也运行成功。
- 如果通过后端 API 调用且没有 Output,调用方拿不到需要的结果。
因此 video-craft-agent 这类需要把 script_json 交给 FastAPI 的流程,必须配置 Output,把清洗后的 script_json 暴露出去。
边界与易混淆点
- User Input 不等于只能由真人点击;后端 API 调用也可以传入这些字段。
- Trigger 不适合 V0.1 的手动表单提交场景,它更偏自动化和事件驱动。
- 起始节点只决定流程如何开始,不决定中间是否能调用 LLM、Code、Tool 或 Knowledge Retrieval。
- Output 只决定流程返回什么,不负责校验 JSON;校验应放在 Code 节点或后端。