支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Dify工作流节点篇(下)

发布日期:2025-03-26 07:39:57 浏览次数: 1700 来源:PM墨者
推荐语

深入探索Dify工作流节点的高级应用,掌握高效任务处理技巧。

核心内容:
1. 迭代节点的工作原理及其在长文翻译中的应用
2. HTTP请求节点的使用方法和场景
3. Agent节点的策略和多步推理实现

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家
今天我们主要介绍迭代】【HTTP请求】【Agent】【工具】【循环】【结束】【直接回复】这七种节点。
迭代(Iteration)

对数组中的元素依次执行相同的操作步骤,直至输出所有结果,可以理解为任务批处理器。迭代节点通常配合数组变量使用。

例如在长文翻译迭代节点内,如果将所有内容输入至 LLM 节点,有可能会达到单次对话限制。上游节点可以先将长文拆分为了多个片段,配合迭代节点对各个片段执行批量翻译,以避免达到LLM 单次对话的消息限制。

使用迭代的条件是确保输入值已格式化为列表对象;迭代节点将依次处理迭代开始节点数组变量内的所有元素,每个元素遵循相同的处理步骤,每轮处理被称为一个迭代,最终输出处理结果。

迭代节点的结构通常包含:输入变量迭代工作流输出变量三个功能单元。

输入变量
仅接受 Array 数组变量类型数据。
迭代工作流
你可以在迭代节点中使用多个工作流节点,编排不同的任务步骤。
输出变量
仅支持输出数组变量 Array[List]。


后续我也会写一个迭代的应用,有兴趣的可以关注后续文章。

HTTP请求(HTTP Request)

允许通过 HTTP 协议发送服务器请求,适用于获取外部数据、webhook、生成图片、下载文件等情景。它让你能够向指定的网络地址发送定制化的HTTP 请求,实现与各种外部服务的互联互通。

该节点支持常见的 HTTP 请求方法:

GET
用于请求服务器发送某个资源。
POST
用于向服务器提交数据,通常用于提交表单或上传文件。
HEAD
类似于 GET 请求,但服务器不返回请求的资源主体,只返回响应头。
PATCH
用于在请求-响应链上的每个节点获取传输路径。
PUT
用于向服务器上传资源,通常用于更新已存在的资源或创建新的资源。
DELETE
用于请求服务器删除指定的资源。

你可以通过配置 HTTP 请求的包括 URL、请求头、查询参数、请求体内容以及认证信息等。

失败重试

考虑到调用可能会存在网络波动等无法调用的情况,我们可以设置失败时重试的逻辑,默认是最大重试次数3次,间隔100毫秒,我们可以根据实际情况进行一个调整。

异常处理

默认无异常处理,可以设置默认值也可以设置异常分支,具体可以根据实际业务流程进行设置。

下面是我之前做的自然语言转SQL语句后查询数据库返回数据的一个demo,看我过之前的文章的就知道我们是调用了HTTP请求节点:

Agent(List Operation)

Agent 节点是 Dify Chatflow/Workflow 中用于实现自主工具调用的组件。它通过集成不同的 Agent 推理策略,使大语言模型能够在运行时动态选择并执行工具,从而实现多步推理。

Agent策略

Dify 内置了Function CallingReAct两种策略,可在Marketplace → Agent策略分类中安装使用。

1、Function Call

通过将用户指令映射到预定义函数或工具,LLM先识别用户意图,再决定调用哪个函数并提取所需参数。它的核心是调用外部函数或工具,属于一种明确的工具调用机制。

优点:

精确
对于明确的任务,可以直接调用相应的工具,无需复杂的推理过程。
易于集成外部功能
可以将各种外部 API 或工具封装成函数供模型调用。
结构化输出
模型输出的是结构化的函数调用信息,方便下游节点处理。


2、ReAct (Reason + Act)

ReAct 策略使 Agent 交替进行思考和行动:LLM 首先思考当前状态和目标,然后选择并调用合适的工具,工具的输出结果又将引导 LLM 进行下一步的思考和行动,如此循环,直到问题解决。

优点:

有效利用外部信息
能够有效地利用外部工具获取信息,解决仅靠模型自身无法完成的任务。
可解释性较好
思考和行动的过程是交织的,可以一定程度上追踪 Agent 的推理路径。
适用范围广
适用于需要外部知识或需要执行特定操作的场景,例如问答、信息检索、任务执行等。


ps:工具列表是需要自行添加的,点击+按钮,弹出选择工具的列表框,列表内是内置和自己安装的工具,如果没有可以去插件市场自行下载。

工具(Tools

“工具”节点可以为工作流提供强大的第三方能力支持,分为以下三种类型:

内置工具
Dify内置提供的工具,使用该工具前可能需要先给工具进行授权。
自定义工具
通过OpenAPI/Swagger标准格式导入或配置的工具。如果内置工具无法满足使用需求,你可以在 Dify 菜单导航 -- 工具内创建自定义工具。
工作流
你可以编排一个更复杂的工作流,并将其发布为工具。

添加节点时,选择右侧的 “工具” tab 页。配置工具节点一般分为两个步骤:

1、对工具授权/创建自定义工具/将工作流发布为工具

2、配置工具输入和参数

工具节点可以连接其它节点,通过变量处理和传递数据。

循环(Loop)

循环(Loop)节点用于执行依赖前一轮结果的重复任务,直到满足退出条件或达到最大循环次数。

循环节点和迭代节点在任务处理上的定位不同:

循环节点包含以下两个关键配置项:

你可以在循环退出条件中使用循环体内的变量或会话中的全局变量,让循环按照你的需求停止。

未来扩展

后续版本将提供:

循环变量
支持在循环过程中存储和引用变量,增强逻辑控制能力。
break 节点
允许在循环体内部直接终止循环,适用于更复杂的流程控制。


结束(End)

定义一个工作流程结束的最终输出内容。每一个工作流在完整执行后都需要至少一个结束节点,用于输出完整执行的最终结果。

结束节点为流程终止节点,后面无法再添加其他节点,工作流应用中只有运行到结束节点才会输出执行结果。若流程中出现条件分叉,则需要定义多个结束节点。

结束节点需要声明一个或多个输出变量,声明时可以引用任意上游节点的输出变量。

PS:Chatflow内不支持结束节点。

直接回复(Answer)

定义一个 Chatflow 流程中的回复内容。

你可以在文本编辑器中自由定义回复格式,包括自定义一段固定的文本内容、使用前置步骤中的输出变量作为回复内容、或者将自定义文本与变量组合后回复。

可随时加入节点将内容流式输出至对话回复,支持所见即所得配置模式并支持图文混排,如:

1、输出 LLM 节点回复内容

2、输出生成图片

3、输出纯文本

PS:直接回复节点可以不作为最终的输出节点,作为流程过程节点时,可以在中间步骤流式输出结果。

至此,工作流的所有节点都讲完了,后续新增的节点也会及时更新,作为新增节点补充,可以关注我及时获取新增节点。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询