在 Dify 平台中,ChartFlow 这一名称可能是一个笔误或特定版本的称呼,平台官方和社区资料中主要区分的是 Chatflow(对话流)Workflow(工作流) 两种核心流程类型。这两者在“记忆”(Memory)功能上存在根本性差异,这直接决定了它们分别适用于对话型和自动化型场景。

核心差异:内存(Memory)支持

特性 Chatflow (对话流) Workflow (工作流)
内存支持 支持内置记忆功能,用于维持多轮对话的上下文[[1]][[2]][[3]]。 不支持内置记忆功能,专注于单次执行的自动化任务[[4]][[5]][[6]]。
设计目的 专为多轮交互式对话场景设计,如客服机器人、智能问答。 专为自动化、批处理任务设计,如数据转换、报告生成、一次性内容创作。
关键节点 拥有专属的 Answer(回答)节点,用于在对话中返回中间结果[[7]][[8]]。 拥有专属的 End(结束)节点,用于标志流程的终结[[9]][[10]]。
内置变量 包含对话相关的变量,如 sys.query(用户查询)、sys.conversation_id(会话ID)[[11]]。 包含文件处理等变量,如 sys.files[[12]]。

具体说明与实例展示

1. Chatflow:具备对话记忆能力

Chatflow 的 LLM(大语言模型)节点可以启用“记忆”功能,该记忆能够在同一流程的不同 LLM 节点之间共享,从而构建连贯的多轮对话[[13]]。

例如:在一个 Chatflow 中,开发者可以利用 sys.dialogue_count 等系统变量来判断对话轮次,并根据奇偶轮次引导至不同的 LLM 节点进行处理,实现复杂的对话逻辑[[14]]。

下图展示了一个 Chatflow 的设计界面,其中 LLM 节点可以配置记忆相关参数,以实现上下文的保持:
Chatflow记忆配置示例[[15]]

2. Workflow:无内置记忆,专注单次执行

Workflow 被设计为执行线性的、无状态的业务流程。它不管理对话历史,每次执行都是独立的。这意味着,如果你需要在一个 Workflow 中引用之前步骤产生的信息,必须通过明确的变量传递来实现,系统不会自动为你记录和调用历史交互内容[[16]]。

因此,Workflow 的界面中不会出现像 Chatflow 那样的“记忆”配置选项。其节点配置更侧重于数据转换、条件判断和工具调用。

总结与选择建议

  • 选择 Chatflow:当你的应用场景需要与用户进行多轮、有状态的对话,并且需要模型记住之前的交流内容时(例如个性化助手、客服导购),应使用 Chatflow。
  • 选择 Workflow:当你的任务是一次性或可重复的自动化处理,无需考虑历史对话上下文时(例如批量翻译文档、定期生成报告、处理上传的文件),应使用 Workflow。

简单来说,记忆功能是 Dify 中区分交互式对话应用自动化处理管道的关键设计之一。

Logo

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

更多推荐