Echo's blog
Echo's blog
· 1 min read · Dify平台

Dify 构建应用

Dify 构建应用#

本文整理自 Dify 官方文档,涵盖 构建应用 章节的全部内容。

本章内容#


PRTCL // PLAINTEXT
1|# 应用工具箱
2|
3|> 原文:[应用工具箱](https://docs.dify.ai/zh/use-dify/build/additional-features)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/additional-features)。
11|
12|Dify 应用内置了多项可选功能,开启后可提升终端用户的使用体验。打开构建器的 ** 功能 ** 面板,即可查看当前应用类型支持的功能。
13|
14|
15|## 对话开场白设置一条在每次对话开始时向用户展示的欢迎消息,并可添加建议问题,引导用户了解应用的核心能力。
16|
17|你可以在开场白和建议问题中插入变量,实现个性化体验。
18|
19|
20|- 在开场白中输入`{`或`/`,即可从变量选择器中插入变量。
21|
22|
23|- 在建议问题中,需手动输入`{{variable_name}}`格式的变量名称。
24|
25|
26|## 下一步问题建议开启后,每次回复后系统会推荐下一步问题,帮助用户继续对话。
27|
28|点击 ** 设置 ** 可选择用于生成问题的模型,或编写自定义提示词(最多 1,000 字符)来调整问题的数量、措辞或长度。
29|
30|
31|## 文字转语音将 AI 回复转换为音频。你可以配置语言和语音以适配目标用户,并开启 ** 自动播放 ** 功能,在 AI 回复时自动播放音频流。
32|
33|
34|> 💡 ** 文字转语音 ** 使用工作区的文本转语音(Text to Speech, TTS)模型(在 ** 设置 **>** 模型供应商 **>** 默认模型设置 ** 中配置)。
35|
36|只有在配置了默认 TTS 模型后,该功能才会出现在 ** 功能 ** 面板中。
37|
38|
39|## 语音转文字为聊天界面启用语音输入。开启后,终端用户可以点击麦克风按钮,通过语音输入消息,无需手动输入。
40|
41|
42|> 💡 ** 语音转文字 ** 使用工作区的语音转文本(Speech to Text, STT)模型(在 ** 设置 **>** 模型供应商 **>** 默认模型设置 ** 中配置)。
43|
44|只有在配置了默认 STT 模型后,该功能才会出现在 ** 功能 ** 面板中。
45|
46|
47|## 文件上传允许终端用户在对话过程中随时发送文件。你可以配置接受的文件类型、上传方式以及每条消息允许的最大文件数量。
48|
49|
50|> 💡 对于自托管部署,可通过以下环境变量调整文件大小限制:
51|
52|
53|- `UPLOAD_IMAGE_FILE_SIZE_LIMIT`(默认:10 MB)
54|- `UPLOAD_FILE_SIZE_LIMIT`(默认:15 MB)
55|- `UPLOAD_AUDIO_FILE_SIZE_LIMIT`(默认:50 MB)
56|- `UPLOAD_VIDEO_FILE_SIZE_LIMIT`(默认:100 MB)详见[环境变量](/zh/self-host/configuration/environments)。
57|
58|
59|## 引用与归属展示 AI 回复背后的来源文档。开启后,从关联知识库中提取内容的回复会显示编号引用,链接至原始文档和分段。
60|
61|
62|## 内容审核过滤用户输入、AI 输出或两者中的不当内容。根据需要选择审核方式:
63|
64|
65|- **OpenAI Moderation**:使用 OpenAI 专用审核模型,检测多个类别的有害内容。
66|
67|
68|- ** 关键词 **:定义屏蔽词列表,任何匹配项都会触发预设回复。
69|
70|
71|- **API 扩展 **:接入自定义审核端点,实现你自己的过滤逻辑。
72|
73|当内容被标记时,应用会将其替换为你预先设定的回复内容。
74|
75|
76|## 标注回复定义优先于 LLM 回复的精选问答对。当用户问题与标注在 ** 语义上 ** 的匹配度超过分数阈值(即问题需要达到的匹配程度)时,系统会直接返回精选答案,而不调用 LLM。
77|
78|你可以配置分数阈值以及用于语义匹配的嵌入模型。
79|
80|创建和管理标注的方式:
81|
82|
83|- 在 ** 调试与预览 ** 或 ** 日志 ** 中,点击任意 LLM 回复上的 ** 添加标注 ** 图标,即可将现有对话直接转为标注。
84|
85|消息被标注后,图标会变为 ** 编辑 **,方便你就地修改标注内容。
86|
87|
88|- 在 ** 日志与标注 **>** 标注管理 ** 选项卡中,可以手动添加新的问答对、管理现有标注并查看命中记录。点击`...`进行批量导入或批量导出。
89|
90|
91|## 生成更多类似内容为相同输入生成不同的输出结果。开启后,每条生成结果都会附带一个按钮,用于生成变体,让你无需重新输入即可探索不同的回复。
92|
93|每条结果最多可生成 2 个变体,每个变体都会消耗额外的 token。
94|

PRTCL // PLAINTEXT
1|# Agent
2|
3|> 原文:[Agent](https://docs.dify.ai/zh/use-dify/build/agent)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/agent)。
11|
12|
13|Agent 是一种对话式应用,模型可以在需要时使用工具来完成用户的请求。
14|
15|当你希望模型利用可用工具自主决定如何处理任务,但无需设计多步工作流时,可以使用 Agent。例如,构建一个数据分析助手,能够自动获取实时数据、生成图表并总结发现。
16|
17|
18|> 💡 Agent 每次对话最多保留 500 条消息或 2,000 token 的历史记录。超出任一限制后,最早的消息将被移除以为新消息腾出空间。
19|
20|
21|> 💡 Agent 支持对话开场白、后续建议等可选功能。详见[应用工具箱](/zh/use-dify/build/additional-features)。
22|
23|
24|## 配置
25|### 编写提示词提示词告诉模型该做什么、如何回应以及需要遵循的约束条件。对于 Agent,提示词还应该指导模型如何推理任务以及何时使用工具,因此需要明确描述你期望的工作流程。
26|
27|以下是编写有效提示词的一些技巧:
28|
29|
30|- ** 定义角色 **:描述模型应扮演的角色及其应运用的专业知识。
31|
32|
33|- ** 指定输出格式 **:描述你期望的结构、长度或风格。
34|
35|
36|- ** 设定约束 **:告诉模型应避免什么或遵循什么规则。
37|
38|
39|- ** 引导工具使用 **:提及具体工具名称,并描述何时应使用它们。
40|
41|
42|- ** 概述工作流程 **:将复杂任务拆分为模型应遵循的逻辑步骤。
43|
44|
45|#### 使用变量创建动态提示词为了让 Agent 适应不同用户或场景而无需每次重写提示词,可以添加变量来预先收集必要的信息。
46|
47|变量是提示词中的占位符。每个变量都会显示为一个输入字段,用户在对话开始前填写,其值在运行时注入提示词。用户也可以在对话过程中更新变量值,提示词会随之调整。
48|
49|例如,数据分析 Agent 可以使用`domain`变量,让用户指定关注的领域:
50|
51|
52|```
53|`你是一名专注于 {{domain}} 领域的数据分析师。帮助用户探索和理解他们的数据。
54|
55|收到问题后,使用可用的数据工具获取相关信息。如果结果适合可视化展示,请生成图表。用通俗易懂的语言解释你的发现。
56|
57|回答要简洁。如果问题模糊,请在获取数据前先确认。
58|`
59|```
60|
61|> 💡 编写提示词时,输入`/`>** 添加新变量 ** 即可快速插入命名占位符。你可以稍后在 ** 变量 ** 部分配置其详细信息。
62|
63|
64|选择与预期输入匹配的变量类型:
65|
66|
67|- 文本
68|- 段落
69|- 下拉选项
70|- 数字
71|- 复选框
72|- 基于 API 的变量:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0" data-component-part="tab-content"> 接受最多 256 个字符。适用于姓名、电子邮件地址、标题或任何适合单行显示的简短文本输入。
73|
74|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 允许无长度限制的长文本输入,为用户提供多行文本区域以输入详细描述。
75|
76|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 显示带有预定义选项的下拉菜单。
77|
78|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 仅接受数字输入,适用于数量、评分、ID 或任何需要数学处理的数据。
79|
80|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 提供简单的是 / 否选项。用户勾选时输出为`true`,否则为`false`。适用于确认或任何需要二选一的场景。
81|
82|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 在运行时从外部 API 获取变量值,而非由用户输入。
83|
84|当提示词需要来自外部来源的动态数据(如实时天气状况或数据库记录)时使用。详见[API 扩展](/zh/use-dify/workspace/api-extension/api-extension)。
85|
86|
87|> 💡 ** 显示名称 ** 是终端用户看到的每个输入字段的名称。
88|
89|
90|#### 使用 AI 生成或改进提示词如果不确定从何开始或想优化现有提示词,点击 ** 生成 ** 让 LLM 帮助你起草。
91|
92|从零开始描述你的需求,或引用`current_prompt`并指定需要改进的内容。要获得更精准的结果,可以在 ** 理想输出 ** 中添加示例。
93|
94|每次生成都会保存为一个版本,因此你可以自由尝试和回滚。
95|
96|
97|### 使用 Dify 工具扩展 Agent 添加[Dify 工具](/zh/use-dify/workspace/tools),使模型能够与外部服务和 API 交互,执行文本生成之外的任务,如获取实时数据、搜索网页或查询数据库。
98|
99|模型会根据每个查询决定何时使用以及使用哪些工具。要更精确地引导工具使用,可在提示词中提及具体工具名称,并描述何时应使用它们。

100| 101|你可以禁用或移除已添加的工具,也可以修改其配置。如果工具需要认证,选择已有凭证或创建新凭证。 102| 103| 104|> 💡 要更改默认凭证,前往工具插件。 105| 106| 107|#### 最大迭代次数Agent 设置中的最大迭代次数限制了模型在单次请求中可以重复推理-行动循环(思考、调用工具、处理结果)的次数。 108| 109|对于需要多次工具调用的复杂多步任务,可以增大此值。较高的值会增加延迟和 token 消耗。 110| 111| 112|### 基于你的数据生成回复要让模型的回复基于你自己的数据而非通用知识,可以添加知识库。 113| 114|模型会评估每条用户查询与知识库描述的相关性,并决定是否需要检索。你无需在提示词中提及知识库。 115| 116|知识库描述越详细,模型判断相关性就越准确,从而实现更精准的检索。 117| 118| 119|#### 配置应用级检索设置要微调检索结果的处理方式,点击检索设置。 120| 121| 122|> 💡 检索设置有两个层级,即知识库级别和应用级别。 123| 124|可以将它们理解为两个连续的过滤器:知识库设置决定初始结果池,应用设置进一步重排序结果或缩小结果范围。 125| 126| 127|- 重排序设置 128| 129| 130|- 权重设置 131| 132|重排序过程中,语义相似度与关键词匹配之间的相对权重。较高的语义权重偏向语义相关性,较高的关键词权重偏向精确匹配。 133| 134|权重设置仅在所有已添加的知识库均以高质量模式索引时可用。 135| 136| 137|- 重排序模型 138| 139|重排序模型会根据结果与查询的相关性重新打分和排序所有结果。 140| 141| 142|> ⚠️ 如果添加了多模态知识库,还需选择多模态重排序模型(标有Vision标签)。否则,检索到的图片将被排除在重排序和最终输出之外。 143| 144| 145|- Top K 146| 147|重排序后返回的最大结果数量。 148| 149|选择重排序模型后,此值将根据模型的最大输入容量(模型一次能处理的文本量)自动调整。 150| 151| 152|- 分数阈值 153| 154|返回结果的最低相似度分数。低于此阈值的结果将被排除。使用较高阈值获得更严格的相关性,使用较低阈值包含更广泛的匹配。 155| 156| 157|#### 在特定文档中搜索默认情况下,检索会在整个知识库中进行。要将检索限制在特定文档中,可启用手动或自动元数据过滤。 158| 159|这可以提高检索精度,特别是当知识库较大或包含不同场景的内容时。 160| 161|关于创建和管理文档元数据,详见元数据。 162| 163| 164|### 处理多模态输入要允许终端用户上传文件,需选择具有相应多模态能力的模型。相关文件类型开关(视觉音频文档)会在模型支持时显示,你可以根据需要启用。 165| 166| 167|> 💡 你可以通过模型的标签快速识别其支持的模态。 168| 169| 170|点击视觉设置配置文件的接受和处理方式。上传设置适用于所有已启用的文件类型。 171| 172| 173|- 分辨率:仅控制图片处理的细节级别。 174| 175| 176|- :对复杂图片有更高的准确性,但消耗更多 token 177| 178| 179|- :对简单图片处理更快,消耗更少 token 180| 181| 182|- 上传方式:选择用户是通过设备上传、粘贴 URL 还是两者兼可。 183| 184| 185|- 上传数量限制:用户每条消息可上传的最大文件数量。 186| 187| 188|> 💡 对于自托管部署,可通过以下环境变量调整文件大小限制: 189| 190| 191|- UPLOAD_IMAGE_FILE_SIZE_LIMIT(默认:10 MB) 192|- UPLOAD_FILE_SIZE_LIMIT(默认:15 MB) 193|- UPLOAD_AUDIO_FILE_SIZE_LIMIT(默认:50 MB)详见环境变量。 194| 195| 196|## 调试与预览在右侧的预览面板中,实时测试你的 Agent。选择一个模型,输入消息并发送,查看 Agent 的响应。 197| 198|你可以调整模型参数来控制生成方式。可用参数和预设因模型而异。 199| 200| 201|> 💡 要比较不同模型的输出,点击多个模型进行调试同时运行最多 4 个模型。 202| 203| 204|我们建议选择推理能力强原生支持工具调用的模型。 205| 206|为什么这很重要 207| 208|Agent 需要判断何时使用工具、哪个工具适合当前任务,以及如何解读结果,这取决于模型的推理能力。具有内置工具调用支持的模型在执行这些决策时也更加可靠。 209| 210|你可以在Agent 设置中确认模型的工具调用支持,系统会自动显示其 Agent 模式: 211| 212| 213|- Function Calling适用于原生支持的模型,意味着它们可以直接调用工具。 214| 215| 216|- ReAct适用于其他模型,Dify 通过提示词策略引导它们使用工具。 217| 218| 219|## 发布对结果满意后,点击发布使应用可用。详见发布了解完整的发布选项。 220|


PRTCL // PLAINTEXT
1|# 聊天助手
2|
3|> 原文:[聊天助手](https://docs.dify.ai/zh/use-dify/build/chatbot)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/chatbot)。
11|
12|
13|聊天助手是一种对话式应用,用户通过聊天界面与模型进行交互。
14|
15|适用于需要来回交互但不需要工具调用或多步工作流的任务。例如,构建一个基于团队知识库的内部问答助手。
16|
17|
18|> 💡 聊天助手每次对话最多保留 500 条消息或 2,000 token 的历史记录。超出任一限制后,最早的消息将被移除以为新消息腾出空间。
19|
20|
21|> 💡 聊天助手还支持对话开场白、后续建议等可选功能。详见[应用工具箱](/zh/use-dify/build/additional-features)。
22|
23|
24|## 配置
25|### 编写提示词提示词告诉模型该做什么、如何回应以及需要遵循的约束条件。它塑造了模型在整个对话中的行为方式,因此可以将其理解为定义一个持续的角色,而非描述一次性任务。
26|
27|以下是编写有效提示词的一些技巧:
28|
29|
30|- ** 定义角色 **:描述模型应扮演的角色及其应使用的语气。
31|
32|
33|- ** 指定输出格式 **:描述你期望的结构、长度或风格。
34|
35|
36|- ** 设定约束 **:告诉模型应避免什么或遵循什么规则。
37|
38|
39|#### 使用变量创建动态提示词为了让聊天助手适应不同用户或场景而无需每次重写提示词,可以添加变量来预先收集必要的信息。
40|
41|变量是提示词中的占位符。每个变量都会显示为一个输入字段,用户在对话开始前填写,其值在运行时注入提示词。用户也可以在对话过程中更新变量值,提示词会随之调整。
42|
43|例如,入职助手可以使用`role`和`language`来定制回复:
44|
45|
46|```
47|`你是一名入职助手,负责帮助新加入的 {{role}} 了解公司流程和政策。回答要友好、简洁,使用 {{language}} 作答。
48|`
49|```
50|
51|> 💡 编写提示词时,输入`/`>** 添加新变量 ** 即可快速插入命名占位符。你可以稍后在 ** 变量 ** 部分配置其详细信息。
52|
53|
54|选择与预期输入匹配的变量类型:
55|
56|
57|- 文本
58|- 段落
59|- 下拉选项
60|- 数字
61|- 复选框
62|- 基于 API 的变量:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0" data-component-part="tab-content"> 接受最多 256 个字符。适用于姓名、电子邮件地址、标题或任何适合单行显示的简短文本输入。
63|
64|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 允许无长度限制的长文本输入,为用户提供多行文本区域以输入详细描述。
65|
66|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 显示带有预定义选项的下拉菜单。
67|
68|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 仅接受数字输入。适用于数量、评分、ID 或任何需要数学处理的数据。
69|
70|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 提供简单的是 / 否选项。用户勾选时输出为`true`,否则为`false`。适用于确认或任何需要二选一的场景。
71|
72|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 在运行时从外部 API 获取变量值,而非由用户输入。
73|
74|当提示词需要来自外部来源的动态数据(如实时天气状况或数据库记录)时使用。详见[API 扩展](/zh/use-dify/workspace/api-extension/api-extension)。
75|
76|
77|> 💡 ** 显示名称 ** 是终端用户看到的每个输入字段的名称。
78|
79|
80|#### 使用 AI 生成或改进提示词如果不确定从何开始或想优化现有提示词,点击 ** 生成 ** 让 LLM 帮助你起草。
81|
82|从零开始描述你的需求,或引用`current_prompt`并指定需要改进的内容。要获得更精准的结果,可以在 ** 理想输出 ** 中添加示例。
83|
84|每次生成都会保存为一个版本,因此你可以自由尝试和回滚。
85|
86|
87|### 基于你的数据生成回复要让模型的回复基于你自己的数据而非通用知识,可以添加知识库。
88|
89|每当用户发送消息时,该消息会作为搜索查询从知识库中检索相关内容,然后作为上下文注入提示词供模型使用。
90|
91|
92|#### 配置应用级检索设置要微调检索结果的处理方式,点击 ** 检索设置 **。
93|
94|
95|> 💡 检索设置有两个层级,即知识库级别和应用级别。
96|
97|可以将它们理解为两个连续的过滤器:知识库设置决定初始结果池,应用设置进一步重排序结果或缩小结果范围。
98|
99|

100|- 重排序设置 101| 102| 103|- 权重设置 104| 105|重排序过程中语义相似度与关键词匹配之间的相对权重。较高的语义权重偏向语义相关性,较高的关键词权重偏向精确匹配。 106| 107|权重设置仅在所有已添加的知识库均以高质量模式索引时可用。 108| 109| 110|- 重排序模型 111| 112|重排序模型会根据结果与查询的相关性重新打分和排序所有结果。 113| 114| 115|> ⚠️ 如果添加了多模态知识库,还需选择多模态重排序模型(标有Vision标签)。否则,检索到的图片将被排除在重排序和最终输出之外。 116| 117| 118|- Top K 119| 120|重排序后返回的最大结果数量。 121| 122|选择重排序模型后,此值将根据模型的最大输入容量(模型一次能处理的文本量)自动调整。 123| 124| 125|- 分数阈值 126| 127|返回结果的最低相似度分数。低于此阈值的结果将被排除。使用较高阈值获得更严格的相关性,使用较低阈值包含更广泛的匹配。 128| 129| 130|#### 在特定文档中搜索默认情况下,检索会在整个知识库中进行。要将检索限制在特定文档中,可启用手动或自动元数据过滤。 131| 132|这可以提高检索精度,特别是当知识库较大或包含不同场景的内容时。 133| 134|关于创建和管理文档元数据,详见元数据。 135| 136| 137|### 处理多模态输入要允许终端用户上传文件,选择具有相应多模态能力的模型。相关文件类型开关(视觉音频文档)会在模型支持时显示,你可以根据需要启用。 138| 139| 140|> 💡 你可以通过模型的标签快速识别其支持的模态。 141| 142| 143|点击视觉设置配置文件的接受和处理方式。上传设置适用于所有已启用的文件类型。 144| 145| 146|- 分辨率:仅控制图片处理的细节级别。 147| 148| 149|- :对复杂图片有更高的准确性,但消耗更多 token 150| 151| 152|- :对简单图片处理更快,消耗更少 token 153| 154| 155|- 上传方式:选择用户是通过设备上传、粘贴 URL 还是两者兼可。 156| 157| 158|- 上传数量限制:用户每条消息可上传的最大文件数量。 159| 160| 161|> 💡 对于自托管部署,可通过以下环境变量调整文件大小限制: 162| 163| 164|- UPLOAD_IMAGE_FILE_SIZE_LIMIT(默认:10 MB) 165|- UPLOAD_FILE_SIZE_LIMIT(默认:15 MB) 166|- UPLOAD_AUDIO_FILE_SIZE_LIMIT(默认:50 MB)详见环境变量。 167| 168| 169|## 调试与预览在右侧的预览面板中,实时测试你的聊天助手。选择一个最适合你任务的模型,输入消息并发送,查看模型的响应。 170| 171|选择模型后,你可以调整其参数来控制生成方式。可用参数和预设因模型而异。 172| 173| 174|> 💡 要比较不同模型的输出,点击多个模型进行调试同时运行最多 4 个模型。 175| 176| 177|## 发布对结果满意后,点击发布使应用可用。详见发布了解完整的发布选项。 178|


PRTCL // PLAINTEXT
1|# 使用 MCP 工具
2|
3|> 原文:[使用 MCP 工具](https://docs.dify.ai/zh/use-dify/build/mcp)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/mcp)。
11|
12|将来自[MCP 服务器](https://modelcontextprotocol.io/docs/getting-started/intro) 的外部工具连接到你的 Dify 应用程序。你可以使用不断增长的[MCP 生态系统](https://mcpservers.org/) 中的工具,而不仅仅是内置工具。
13|
14|
15|> ⚠️ 本内容涵盖在 Dify 中使用 MCP 工具。要将 Dify 应用程序发布为 MCP 服务器,请参阅[这里](/zh/use-dify/publish/publish-mcp)。
16|
17|
18|> 💡 目前仅支持使用[HTTP 传输](https://modelcontextprotocol.io/docs/learn/architecture#transport-layer) 的 MCP 服务器。
19|
20|
21|## 添加 MCP 服务器在你的工作空间中转到 ** 工具 **→**MCP**。
22|
23|点击 ** 添加 MCP 服务器 (HTTP)**:
24|
25|** 服务器 URL**:MCP 服务器的位置(如`https://api.notion.com/mcp`)
26|
27|** 名称和图标 **:给它一个有用的名称。Dify 会尝试自动获取图标。
28|
29|** 服务器 ID**:唯一标识符(小写字母、数字、下划线、连字符,最多 24 个字符)
30|
31|
32|> 💡 一旦开始使用服务器 ID,就不要更改它。这将破坏任何使用该服务器工具的应用程序。
33|
34|
35|## 接下来会发生什么 Dify 会自动:
36|
37|
38|- 连接到服务器
39|- 处理任何 OAuth 认证
40|- 获取可用工具列表
41|- 使它们在你的应用程序构建器中可用一旦找到工具,你将看到服务器卡片:
42|
43|
44|## 管理服务器点击任何服务器卡片可以:
45|
46|** 更新工具 **:当外部服务添加新工具时刷新
47|
48|** 重新授权 **:当令牌过期时修复认证
49|
50|** 编辑设置 **:更改服务器详细信息(但不能更改 ID!)
51|
52|** 移除 **:断开服务器连接(这会破坏使用其工具的应用程序)
53|
54|
55|## 使用 MCP 工具连接后,MCP 工具会出现在你期望的所有地方:
56|
57|** 在智能代理中 **:工具按服务器分组显示(“Notion MCP » Create Page”)
58|
59|** 在工作流中 **:MCP 工具作为节点可用
60|
61|** 在智能代理节点中 **:与常规智能代理相同
62|
63|
64|## 自定义工具添加 MCP 工具时,你可以自定义它:
65|
66|** 描述 **:覆盖默认描述以使其更具体
67|
68|** 参数 **:对于每个工具参数,选择:
69|
70|
71|- ** 自动 **:让 AI 决定值
72|- ** 固定 **:设置一个永不改变的特定值 ** 示例 **:对于搜索工具,将`numResults`设置为 5(固定),但保持`query`为自动。
73|
74|
75|## 分享应用程序当你导出使用 MCP 工具的应用程序时:
76|
77|
78|- 导出内容包含服务器 ID
79|- 要在其他地方使用该应用程序,需要添加具有相同 ID 的相同服务器
80|- 记录你的应用程序需要哪些 MCP 服务器
81|## 故障排除 **“未配置的服务器”**:检查 URL 并重新授权
82|
83|** 缺少工具 **:点击”更新工具”
84|
85|** 应用程序损坏 **:你可能更改了服务器 ID。使用原始 ID 重新添加它。
86|
87|
88|## 提示
89|- 使用永久的、描述性的服务器 ID,如`github-prod`或`crm-system`
90|- 在开发 / 测试 / 生产环境中保持相同的 MCP 设置
91|- 为配置项设置固定值,为部署前测试 MCP 集成
92|

PRTCL // PLAINTEXT
1|# 编排逻辑
2|
3|> 原文:[编排逻辑](https://docs.dify.ai/zh/use-dify/build/orchestrate-node)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/orchestrate-node)。
11|
12|
13|## 串行与并行执行构建工作流时,可将节点按串行或并行方式排列:
14|
15|
16|- ** 串行排列时 **,节点依次运行。每个节点可读取链中任何前序节点的变量。
17|
18|
19|- ** 并行排列时 **,节点同时运行,彼此无法读取变量;但当并行分支汇合后,下游节点可读取所有分支的变量。
20|
21|
22|> 💡 单条执行路径最多支持 50 个节点。自托管部署可通过`MAX_TREE_DEPTH`环境变量调整此上限。
23|
24|
25|## 节点复用除用户输入节点外,所有节点都可在同一工作流内、跨工作流或跨 Dify 实例复制粘贴,但不同 Dify 版本之间可能存在兼容性问题。
26|
27|
28|> ⚠️ 跨工作流或跨 Dify 实例粘贴时,Dify 页面需通过 HTTPS 加载,或通过环回地址(如`http://localhost`或`http://127.0.0.1`)访问。
29|
30|
31|粘贴节点时,节点配置随之迁移;但依赖周边环境的内容会在目标位置重新评估:
32|
33|
34|- ** 工作流资源 **,如变量
35|- ** 工作区资源 **,如工具、插件和知识库
36|## 迭代与循环若某些节点需要多次运行(按列表每项运行一次,或直到满足条件才停止),可将其置于[迭代](/zh/use-dify/nodes/iteration) 或[循环](/zh/use-dify/nodes/loop) 节点内部。
37|

PRTCL // PLAINTEXT
1|# 处理错误
2|
3|> 原文:[处理错误](https://docs.dify.ai/zh/use-dify/build/predefined-error-handling-logic)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/predefined-error-handling-logic)。
11|
12|
13|[大型语言模型](/en/use-dify/nodes/llm)、[HTTP](/en/use-dify/nodes/http-request)、[代码](/en/use-dify/nodes/code) 和[工具](/en/use-dify/nodes/tools) 节点支持开箱即用的错误处理。当节点失败时,可以采用以下三种行为之一:
14|
15|无
16|
17|默认行为。当节点失败时,整个工作流停止。你会收到原始错误消息。
18|
19|适用于以下情况:
20|
21|
22|- 正在测试并希望查看哪里出了问题
23|- 工作流无法在没有此步骤的情况下继续默认值
24|
25|当节点失败时,使用备用值代替。工作流继续运行。
26|
27|
28|** 要求 **
29|
30|
31|- 默认值必须与节点的输出类型匹配——如果输出字符串,你的默认值也必须是字符串。** 示例 **
32|
33|你的大型语言模型节点通常返回分析结果,但有时由于速率限制而失败。设置一个默认值,如:
34|
35|
36|```
37|`"抱歉,我暂时不可用。请几分钟后再试。"
38|`
39|```
40|现在用户会收到有用的消息,而不是损坏的工作流。
41|
42|失败分支
43|
44|当节点失败时,触发一个单独的流程来处理错误。
45|
46|
47|失败分支用橙色高亮显示。你可以:
48|
49|
50|- 发送错误通知
51|- 尝试不同的方法
52|- 记录错误以进行调试
53|- 使用备用服务 ** 示例 **
54|
55|你的主 API 失败,因此失败分支调用备用 API。用户永远不会知道出现了问题。
56|
57|
58|## 循环 / 迭代节点中的错误当子节点在循环和迭代中失败时,这些控制流节点有自己的错误行为。
59|
60|** 循环节点 ** 总是在任何子节点失败时立即停止。整个循环终止并返回错误,阻止任何进一步的迭代运行。
61|
62|** 迭代节点 ** 让你通过错误处理模式设置选择如何处理子节点失败:
63|
64|
65|- `terminated`- 当任何项目失败时立即停止处理(默认)
66|- `continue-on-error`- 跳过失败的项目并继续下一个
67|- `remove-abnormal-output`- 继续处理但从最终输出中过滤掉失败的项目当你将迭代设置为`continue-on-error`时,失败的项目在输出数组中返回`null`。当你使用`remove-abnormal-output`时,输出数组仅包含成功的结果,使其比输入数组更短。
68|
69|
70|## 错误变量使用默认值或失败分支时,你会得到两个特殊变量:
71|
72|
73|- `error_type`- 发生了什么类型的错误(参见[错误类型](/zh/use-dify/debug/error-type))
74|- `error_message`- 实际的错误详细信息使用这些来:
75|
76|
77|- 向用户显示有用的消息
78|- 向你的团队发送警报
79|- 选择不同的恢复策略
80|- 记录错误以进行调试 ** 示例 **
81|
82|
83|```
84|`{% if error_type == "rate_limit" %}
85|请求过多。请稍等片刻再试。
86|{% else %}
87|出了点问题。我们的团队已收到通知。
88|{% endif %}
89|`
90|```
91|

PRTCL // PLAINTEXT
1|# 快捷键
2|
3|> 原文:[快捷键](https://docs.dify.ai/zh/use-dify/build/shortcut-key)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/shortcut-key)。
11|
12|使用键盘快捷键加速你的工作流构建。
13|
14|
15|## 节点操作在画布上选中任意节点时:
16|
17|WindowsmacOS 操作`Ctrl`+`C``Cmd`+`C`复制节点`Ctrl`+`V``Cmd`+`V`粘贴节点`Ctrl`+`D``Cmd`+`D`复制节点`Delete``Delete`删除选中的节点`Ctrl`+`O``Cmd`+`O`自动排列节点`Shift``Shift`可视化变量依赖关系(仅限单个节点)
18|## 画布导航 WindowsmacOS 操作`Ctrl`+`1``Cmd`+`1`适应视图`Ctrl`+`-``Cmd`+`-`缩小`Ctrl`+`=``Cmd`+`=`放大`Shift`+`1``Shift`+`1`重置为 100%`Shift`+`5``Shift`+`5`设置为 50%`H``H`抓手工具(平移)`V``V`选择工具
19|## 历史记录 WindowsmacOS 操作`Ctrl`+`Z``Cmd`+`Z`撤销`Ctrl`+`Y``Cmd`+`Y`重做`Ctrl`+`Shift`+`Z``Cmd`+`Shift`+`Z`重做
20|## 测试操作`Alt`+`R``Option`+`R`运行工作流
21|

PRTCL // PLAINTEXT
1|# 文本生成应用
2|
3|> 原文:[文本生成应用](https://docs.dify.ai/zh/use-dify/build/text-generator)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/text-generator)。
11|
12|
13|文本生成应用是简单的单轮应用:你编写提示词、提供输入,模型生成回复。
14|
15|适用于不需要多轮对话、工具调用或多步工作流的任务。只需清晰的输入、一次模型调用,即可获得可直接使用的输出。
16|
17|
18|> 💡 文本生成应用支持一次生成多个输出、文字转语音和内容审核等可选功能。详见[应用工具箱](/zh/use-dify/build/additional-features)。
19|
20|
21|## 配置
22|### 编写提示词提示词告诉模型该做什么、如何回应以及需要遵循的约束条件。
23|
24|由于文本生成应用以单轮方式运行,没有对话历史,提示词是模型唯一的上下文来源,因此需要包含模型在一次运行中生成正确输出所需的所有信息。
25|
26|以下是编写有效提示词的一些技巧:
27|
28|
29|- ** 明确定义任务 **:说明模型应生成什么(例如翻译、摘要、SQL 语句)。
30|
31|
32|- ** 指定输出格式 **:描述你期望的结构、长度或风格。
33|
34|
35|- ** 设定约束 **:告诉模型应避免什么或遵循什么规则。
36|
37|由于文本生成应用始终需要用户输入才能运行,创建新应用时会自动在提示词中插入一个段落类型的`query`变量。你可以重命名`query`或更改其类型。
38|
39|变量是占位符。每个变量在运行应用前变为用户填写的输入字段,其值在运行时替换到提示词中。例如:
40|
41|
42|```
43|`你是一名专业编辑。请将以下文本总结为 3 个简洁的要点。使用中立语气,不要添加原文中没有的信息。
44|
45|{{query}}
46|`
47|```
48|
49|> 💡 编写提示词时,输入`/`>** 添加新变量 ** 即可快速插入命名占位符。你可以稍后在 ** 变量 ** 部分配置其详细信息。
50|
51|
52|选择与预期输入匹配的变量类型:
53|
54|
55|- 文本
56|- 段落
57|- 下拉选项
58|- 数字
59|- 复选框
60|- 基于 API 的变量:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0" data-component-part="tab-content"> 接受最多 256 个字符。适用于姓名、电子邮件地址、标题或任何适合单行显示的简短文本输入。
61|
62|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 允许无长度限制的长文本输入,为用户提供多行文本区域以输入详细描述。
63|
64|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 显示带有预定义选项的下拉菜单。
65|
66|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 仅接受数字输入。适用于数量、评分、ID 或任何需要数学处理的数据。
67|
68|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 提供简单的是 / 否选项。用户勾选时输出为`true`,否则为`false`。适用于确认或任何需要二选一的场景。
69|
70|:first-child:not(p)]:mt-0 [&>:first-child:not(p)_img]:mt-0 [&>:first-child[data-table-wrapper]]:!pt-0 hidden" data-component-part="tab-content"> 在运行时从外部 API 获取变量值,而非由用户输入。
71|
72|当提示词需要来自外部来源的动态数据(如实时天气状况或数据库记录)时使用。详见[API 扩展](/zh/use-dify/workspace/api-extension/api-extension)。
73|
74|
75|> 💡 ** 显示名称 ** 是终端用户看到的每个输入字段的名称。
76|
77|
78|#### 使用变量创建动态提示词为了让应用适应不同用户或场景而无需每次重写提示词,可以添加更多变量。
79|
80|每个变量预先收集一条特定信息,并在运行时注入提示词。
81|
82|例如,SQL 生成器可以使用`database_type`来适配输出方言,`query`则捕获用户的自然语言请求:
83|
84|
85|```
86|`你是一个 SQL 生成器。请将以下自然语言查询转换为 {{database_type}} SQL 语句:{{query}}
87|`
88|```
89|
90|#### 使用 AI 生成或改进提示词如果不确定从何开始或想优化现有提示词,点击 ** 生成 ** 让 LLM 帮助你起草。
91|
92|从零开始描述你的需求,或引用`current_prompt`并指定需要改进的内容。要获得更精准的结果,可以在 ** 理想输出 ** 中添加示例。
93|
94|每次生成都会保存为一个版本,因此你可以自由尝试和回滚。
95|
96|
97|### 基于你的数据生成回复要让模型的回复基于你自己的数据而非通用知识,可以添加知识库并选择一个已有变量作为 ** 查询变量 **。
98|
99|当用户运行应用并填写该字段时,其值会作为搜索查询从知识库中检索相关内容。检索到的内容随后作为上下文注入提示词,使模型能够生成更有依据的回复。

100| 101|示例:在内容写作应用中使用「内容类型」检索风格指南 102| 103|例如,假设你的知识库包含不同内容类型的风格指南,如博客文章、社交媒体文案、产品描述等。 104| 105|在内容写作应用中,将content_type设为查询变量。当用户选择一种内容类型时,应用会检索匹配的风格指南,并生成遵循相应写作标准的文案。 106| 107|你的提示词可能如下所示: 108| 109| 110|111|`你是一名品牌内容写手。请根据以下简报撰写一篇 {{content_type}}:{{brief}} 112| 113|请遵循上下文中提供的风格和语气指南。 114|` 115| 116| 117|#### 配置应用级检索设置要微调检索结果的处理方式,点击检索设置。 118| 119| 120|> 💡 检索设置有两个层级,即知识库级别和应用级别。 121| 122|可以将它们理解为两个连续的过滤器:知识库设置决定初始结果池,应用设置进一步重排序结果或缩小结果范围。 123| 124| 125|- 重排序设置 126| 127| 128|- 权重设置 129| 130|重排序过程中语义相似度与关键词匹配之间的相对权重。较高的语义权重偏向语义相关性,较高的关键词权重偏向精确匹配。 131| 132|权重设置仅在所有已添加的知识库均以高质量模式索引时可用。 133| 134| 135|- 重排序模型 136| 137|重排序模型会根据结果与查询的相关性重新打分和排序所有结果。 138| 139| 140|> ⚠️ 如果添加了多模态知识库,还需选择多模态重排序模型(标有Vision标签)。否则,检索到的图片将被排除在重排序和最终输出之外。 141| 142| 143|- Top K 144| 145|重排序后返回的最大结果数量。 146| 147|选择重排序模型后,此值将根据模型的最大输入容量(模型一次能处理的文本量)自动调整。 148| 149| 150|- 分数阈值 151| 152|返回结果的最低相似度分数。低于此阈值的结果将被排除。使用较高阈值获得更严格的相关性,使用较低阈值包含更广泛的匹配。 153| 154| 155|#### 在特定文档中搜索默认情况下,检索会在整个知识库中进行。要将检索限制在特定文档中,可启用手动或自动元数据过滤。 156| 157|这可以提高检索精度,特别是当知识库较大或包含不同场景的内容时。 158| 159|关于创建和管理文档元数据,详见元数据。 160| 161| 162|### 处理多模态输入要允许终端用户上传文件,选择具有相应多模态能力的模型。相关文件类型开关(视觉音频文档)会在模型支持时显示,你可以根据需要启用。 163| 164| 165|> 💡 你可以通过模型的标签快速识别其支持的模态。 166| 167| 168|点击视觉设置配置文件的接受和处理方式。上传设置适用于所有已启用的文件类型。 169| 170| 171|- 分辨率:仅控制图片处理的细节级别。 172| 173| 174|- :对复杂图片有更高的准确性,但消耗更多 token 175| 176| 177|- :对简单图片处理更快,消耗更少 token 178| 179| 180|- 上传方式:选择用户是通过设备上传、粘贴 URL 还是两者兼可。 181| 182| 183|- 上传数量限制:用户每次运行可上传的最大文件数量。 184| 185| 186|> 💡 对于自托管部署,可通过以下环境变量调整文件大小限制: 187| 188| 189|- UPLOAD_IMAGE_FILE_SIZE_LIMIT(默认:10 MB) 190|- UPLOAD_FILE_SIZE_LIMIT(默认:15 MB) 191|- UPLOAD_AUDIO_FILE_SIZE_LIMIT(默认:50 MB)详见环境变量。 192| 193| 194|## 调试与预览在右侧的预览面板中,实时测试你的应用。选择一个最适合你任务的模型,填写输入字段,然后点击运行查看输出。 195| 196|选择模型后,你可以调整其参数来控制生成方式。可用参数和预设因模型而异。 197| 198| 199|> 💡 要比较不同模型的输出,点击多个模型进行调试同时运行最多 4 个模型。 200| 201| 202|## 发布对结果满意后,点击发布使应用可用。详见发布了解完整的发布选项。 203| 204|运行 WebApp 时,终端用户可以保存单个输出以供日后参考。 205|


PRTCL // PLAINTEXT
1|# 版本控制
2|
3|> 原文:[版本控制](https://docs.dify.ai/zh/use-dify/build/version-control)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/version-control)。
11|
12|在对话流和工作流应用中跟踪变更和管理版本。
13|
14|
15|> 💡 目前仅适用于对话流和工作流应用。
16|
17|
18|## 工作原理 ** 当前草稿 **:你的工作版本。这是你进行更改的地方。对用户不可见。
19|
20|
21|** 最新版本 **:用户看到的实时版本。
22|
23|
24|** 历史版本 **:较旧的已发布版本。
25|
26|
27|## 发布版本点击 ** 发布 **→** 发布更新 ** 以使你的草稿上线。
28|
29|
30|你的草稿将成为新的最新版本,你将获得一个新的草稿进行工作。
31|
32|
33|## 查看版本点击历史图标查看所有版本:
34|
35|
36|筛选方式:
37|
38|
39|- ** 所有版本 ** 或 ** 仅你的版本 **
40|- ** 仅命名版本 **(跳过自动生成的名称)
41|
42|
43|## 管理版本 ** 命名版本 **:为版本提供一个合适的名称,而不是自动生成的名称
44|
45|
46|** 编辑版本信息 **:更改名称并添加发布说明
47|
48|
49|** 删除旧版本 **:清理你不需要的版本
50|
51|
52|> 💡 你无法删除当前草稿或最新版本。
53|
54|
55|** 恢复版本 **:将旧版本重新加载到你的草稿中
56|
57|
58|> 💡 这将完全替换你当前的草稿。确保你没有未保存的工作。
59|
60|
61|## 示例工作流以下是版本在典型开发周期中的工作方式:
62|
63|
64|### 1. 从草稿开始
65|
66|
67|### 2. 发布第一个版本
68|
69|
70|### 3. 发布第二个版本
71|
72|
73|### 4. 将旧版本恢复到草稿
74|
75|
76|### 5. 发布恢复的版本
77|
78|完整演示:
79|
80|
81|## 技巧
82|- 发布前始终在草稿中测试
83|- 为重要发布使用描述性版本名称
84|- 需要快速回滚时恢复版本
85|- 保留旧版本以供参考
86|

PRTCL // PLAINTEXT
1|# 工作流与对话流
2|
3|> 原文:[工作流与对话流](https://docs.dify.ai/zh/use-dify/build/workflow-chatflow)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/workflow-chatflow)。
11|
12|
13|## 为什么需要 Agentic 工作流 AI 模型功能强大,但单独使用时可能不够可预测,它们可能会产生幻觉、遗漏步骤或生成不一致的输出。在生产环境中,尤其是对可靠性有要求的团队和企业,你需要对 AI 的运行方式有更多控制。
14|
15|Agentic 工作流通过将 AI 能力嵌入结构化、可重复的流程来解决这一问题。与其依赖单个模型自行解决所有问题,不如设计一个流程来逐步编排模型、工具和逻辑,包含明确的条件、检查点和回退路径。
16|
17|AI 仍然承担繁重的工作,但在你定义的边界内运行。
18|
19|
20|## 工作流 vs. 对话流 Dify 提供两种应用类型来构建 Agentic 工作流:** 工作流 ** 和 ** 对话流 **。两者都基于共享的可视化画布和节点系统构建。
21|
22|要构建流程,仅需连接各个节点。每个节点处理一个特定步骤,如调用模型、检索知识、运行代码或基于条件分支。大部分工作是 ** 拖拽、连接和配置 **,只有当现有节点无法满足特定逻辑时,才需要考虑编写代码。
23|
24|两者的核心区别在于用户如何与应用交互:
25|
26|
27|- ** 工作流 ** 从头到尾运行一次。
28|
29|它接收输入,通过流程处理,然后返回结果。适用于自动报告生成、数据处理管道或批处理等任务。
30|
31|
32|- ** 对话流 ** 增加了对话层。
33|
34|用户通过聊天界面进行交互,每条消息在生成回复前,都会触发你设计的流程。适用于交互式助手、引导式问答,或任何需要在每次回复背后进行结构化处理的对话场景。
35|
36|
37|> 💡 对话流支持内容审核、文字转语音等可选功能。详见[应用工具箱](/zh/use-dify/build/additional-features)。
38|
39|
40|两者的起始和结束节点也不同:
41|
42|工作流对话流起始节点[用户输入](/zh/use-dify/nodes/user-input) 或[触发器](/zh/use-dify/nodes/trigger/overview) 用户输入结束节点[输出](/zh/use-dify/nodes/output)(可选)[直接回复](/zh/use-dify/nodes/answer)(必需)触发器可按计划、Webhook 或插件事件自动运行工作流。对话流始终由用户消息启动,因此没有触发器。
43|
44|关于两种应用的编排方式,详见[编排逻辑](/zh/use-dify/build/orchestrate-node)。
45|

PRTCL // PLAINTEXT
1|# 与团队成员协作
2|
3|> 原文:[与团队成员协作](https://docs.dify.ai/zh/use-dify/build/workflow-collaboration)
4|
5|---
6|
7|## Documentation IndexFetch the complete documentation index at:[https://docs.dify.ai/llms.txt](https://docs.dify.ai/llms.txt)
8|
9|
10|> ⚠️ ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/build/workflow-collaboration)。
11|
12|
13|> 💡 协作功能目前仅在自托管部署中可用。Dify Cloud 的支持将在后续版本中提供。
14|
15|
16|构建一个工作流有时需要多人参与:提示词工程师调整指令,业务专家验证逻辑,审阅者识别边界情况。
17|
18|不必轮流操作,你可以与工作区中的其他成员同时编辑同一个工作流,并直接在画布上留下评论,让讨论与工作内容始终在一起。
19|
20|
21|> 💡 评论和协作者光标可通过画布右下角的缩放菜单隐藏。
22|
23|
24|## 实时编辑拥有编辑权限及以上的工作区成员可同时编辑同一个工作流。当两位成员同时修改同一个元素时,以最后一次编辑为准。
25|
26|
27|## 评论右键点击画布的空白区域并选择 ** 添加评论 ** 留下一条评论。要连续添加多条评论,按`C`键进入评论模式。评论会跨工作流版本保留。
28|
29|在评论中 @ 提及一位工作区成员时,对方将收到邮件通知。
30|
31|任何能访问该应用的成员都可以查看评论;添加、编辑或解决评论需要编辑权限及以上。
32|
33|
34|> ⚠️ 对于自托管部署:
35|
36|
37|- 如果通过`localhost`以外的主机访问 Dify,将`NEXT_PUBLIC_SOCKET_URL`设置为浏览器可访问的 WebSocket URL(例如`wss://dify.example.com`)。
38|- 如需禁用协作功能,将`ENABLE_COLLABORATION_MODE`设置为`false`。使用 Docker Compose 时,还需从`COMPOSE_PROFILES`中移除`collaboration`。详见[环境变量](/zh/self-host/configuration/environments#enable_collaboration_mode)。
39|

Related Posts

Comments

Copied
Copied to clipboard