打开 Dify 后,很多人会立刻拖一个 LLM 节点到画布上。更好的第一步是先判断:用户如何发起任务,应用是否需要连续对话,执行步骤能否提前确定。应用类型决定了入口、结束方式、会话状态和发布接口,选错以后再补节点,通常只会让流程越来越绕。

需要连续对话时选择 Chatflow

Chatflow 适合客服、知识问答、咨询助手和需要追问信息的场景。它的核心不是“有一个聊天框”,而是同一会话中的多轮输入可以共享上下文。

例如用户先问“退款需要多久”,接着说“那已经发货的呢”,第二句话依赖上一轮语境。此时可以使用 Chatflow,让用户输入进入问题分类、知识检索和 LLM,最后由 Answer 节点回复。

用户输入 → 问题分类 → 知识检索 → LLM → Answer

如果对话中需要保存结构化状态,例如已经确认的订单号、用户选择的产品或当前办理阶段,可以使用会话变量配合变量赋值节点。不要把关键身份和权限只放在聊天记忆里,敏感操作仍应由外部系统验证。

一次任务一次结果时选择 Workflow

Workflow 适合文档提取、内容生成、报告制作、批量处理和后端自动化。它通常接收一组明确输入,经过固定步骤后返回一组输出,不需要维持多轮对话。

用户输入 → 文档提取 → 参数提取 → 条件判断 → Output

Workflow 的优势是路径清楚、输入输出容易定义,也更适合通过 API 被其他系统调用。如果任务可以画成稳定的流程图,优先使用 Workflow,而不是为了“看起来智能”引入 Agent。

部分部署版本还支持定时、Webhook 或集成触发器。它们改变的是任务如何开始,不改变流程内部仍需明确输入、处理和输出的原则。

步骤无法预先确定时才选择 Agent

Agent 适合需要根据中间结果决定下一步的任务,例如研究助理在多个来源之间搜索、读取、比较,再形成结论。它会在可用工具中选择动作,并根据工具结果继续判断。

Agent 应用类型与画布里的 Agent 节点不是完全相同的概念:前者是一种应用形态,后者可以作为 Chatflow 或 Workflow 中的一步。无论哪种形式,都应从少量只读工具开始,限制最大迭代次数,并为写入、发送、删除等动作加入人工确认。

用三个问题完成选择

在新建应用前,先回答:

  1. 用户是否需要连续追问和共享会话上下文?需要就优先 Chatflow。
  2. 步骤和分支是否能在运行前画清楚?能就优先 Workflow。
  3. 是否必须让模型根据中间结果自主选择工具和顺序?只有此时才考虑 Agent。

同一个业务也可以组合使用。例如前台是 Chatflow,复杂的数据整理交给一个 Workflow 工具,只有开放式研究任务才进入 Agent。应用类型不是能力高低的排名,而是对交互方式和可控程度的选择。