跳转到主要内容
⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版

Dify 应用

Dify 专为智能体应用构建而设计。在 Studio 中,你可以通过拖拽界面快速构建智能体工作流并将其发布为应用。你可以通过 API、Web 或作为 MCP 服务器访问已发布的应用。Dify 提供两种主要的应用类型:工作流和对话流。在创建新应用时,你需要选择一种应用类型。
我们推荐选择工作流或对话流作为你的应用类型。但除了这些之外,Dify 还提供 3 种更基础的应用类型:聊天机器人、智能代理和文本生成器。22087830d0a6478d42d0c60e6eb88d19bca27be3c645f2bb0968d51330b7da72.png这些应用类型在底层运行相同的工作流引擎,但提供了更简单的传统界面:chatbot-interface.png

工作流

构建工作流应用来处理单轮任务。Web 应用界面和 API 提供了便捷的批量执行多个任务的访问方式。
在底层,工作流构成了 Dify 中所有其他应用类型的基础。
你可以指定如何以及何时启动工作流。有两种类型的开始节点:
  • 用户输入:通过直接用户交互或 API 调用触发应用程序。
  • 触发器:应用程序按计划自动运行或响应特定的第三方事件。
用户输入和触发器开始节点是互斥的——它们不能在同一画布上使用。要在它们之间切换,请右键单击当前开始节点 > 更改节点。或者,删除当前开始节点并添加一个新节点。
只有由用户输入启动的工作流才能发布为独立的 Web 应用程序或 MCP 服务器,通过后端服务 API 公开,或在其他 Dify 应用程序中用作工具。

对话流

对话流是一种特殊类型的工作流应用,在对话的每一轮都会被触发。除了工作流功能外,对话流还具有存储和更新自定义对话特定变量的能力,在大型语言模型节点中启用记忆功能,并在对话流运行的不同节点流式传输格式化的文本、图像和文件。 与工作流不同,对话流不能使用触发器来启动。

Dify 领域特定语言

所有 Dify 应用都可以导出为 Dify 自有领域特定语言的 YAML 文件,你也可以直接从这些领域特定语言文件创建 Dify 应用。这使得将应用移植到其他 Dify 实例并与他人分享变得容易。

变量

变量是存储信息的标记容器,因此你可以通过引用其名称来查找和使用该信息。在构建 Dify 应用时,你会遇到不同类型的变量: 输入:你可以在用户输入节点为你的应用最终用户指定任意数量的输入变量来填写。 CleanShot 2025-08-04 at 14.34.04@2x.png 此外,用户输入节点还带有一组输入变量,你可以在流程中稍后引用。根据应用程序类型(工作流或对话流),会提供不同的变量。
  • 工作流
  • 对话流
变量名
数据类型
描述注释
sys.user_idString用户 ID:系统在用户使用工作流应用程序时自动分配给每个用户的唯一标识符。用于区分不同的用户。
sys.app_idString应用程序 ID:系统自动分配给每个应用程序的唯一标识符。此参数用于记录当前应用程序的基本信息。此参数用于具有开发能力的用户区分和定位不同的工作流应用程序。
sys.workflow_idString工作流 ID:此参数记录当前工作流应用程序中所有节点的信息。此参数可供具有开发能力的用户用于跟踪和记录工作流中包含的节点信息。
sys.workflow_run_idString工作流运行 ID:用于记录工作流应用程序的运行时状态和执行日志。此参数可供具有开发能力的用户用于跟踪应用程序的历史执行记录。
sys.timestampString每次工作流执行的开始时间。
用户输入在每次工作流运行开始时设置,无法更新。 输出:每个节点产生一个或多个输出,可以在后续节点中引用。例如,大型语言模型节点有以下输出: Cl.57@2x.png 与输入一样,节点输出也无法更新。 环境变量:使用环境变量来存储你应用特定的敏感信息,如 API 密钥。这允许在密钥和 Dify 应用本身之间进行清晰分离,因此在分享你的应用领域特定语言时,你不必承担暴露密码和密钥的风险。环境变量也是常量,无法更新。 会话变量(仅对话流):这些变量是对话特定的——意味着它们在单个对话的多轮对话流运行中持续存在,因此你可以存储和访问动态信息,如待办事项列表和令牌成本。你可以通过变量分配器节点更新会话变量的值: 2935cb58851e5c5407a08dde49f7d9738bb13aa0e64df24278e2104b316f6af6.png

变量引用

在配置输入字段时,你可以通过从下拉菜单中选择,轻松将变量传递给任何节点: CleanShot 2025-08-04 at 15.13.33@2x.png 你还可以通过键入 / 斜杠并从下拉菜单中选择所需变量,将变量值插入到复杂的文本输入中。 image.png