作者:杨雨虹 历史版本:1 最后编辑:杨雨虹 更新时间:2025-06-04 13:50
概述
该节点可以利用大模型自主调用工具,它通过集成不同的 Agent 推理策略,使大语言模型能够在运行时动态选择并执行工具,从而实现多步推理。
节点配置
Agent节点是工作流的决策中心,负责分配资源、管理状态,并记录整个推理过程。
Agent策略
Agent策略是一个可插拔的推理算法模块,定义了如何使用工具以及如何解决问题,它是嵌入Agent节点来产生作用的。
dify内置了两种Agent策略,其他可在【插件探索】菜单中搜索安装:
FunctionCalling
通过将用户指令映射到预定义函数或工具,LLM 先识别用户意图,再决定调用哪个函数并提取所需参数。它的核心是调用外部函数或工具,属于一种明确的工具调用机制。
优点:
- 精确: 对于明确的任务,可以直接调用相应的工具,无需复杂的推理过程。
- 易于集成外部功能: 可以将各种外部 API 或工具封装成函数供模型调用。
- 结构化输出: 模型输出的是结构化的函数调用信息,方便下游节点处理。
ReAct
ReAct 策略使 Agent 交替进行思考和行动:LLM 首先思考当前状态和目标,然后选择并调用合适的工具,工具的输出结果又将引导 LLM 进行下一步的思考和行动,如此循环,直到问题解决。
优点:
- 有效利用外部信息: 能够有效地利用外部工具获取信息,解决仅靠模型自身无法完成的任务。
- 可解释性较好: 思考和行动的过程是交织的,可以一定程度上追踪 Agent 的推理路径。
- 适用范围广: 适用于需要外部知识或需要执行特定操作的场景,例如问答、信息检索、任务执行等。
节点参数
- 模型:选择Agent策略后,就需要选择驱动 Agent 的大语言模型,同样可以设置模型参数,详见[模型]
- 工具:工具的使用方式由 Agent 策略定义,点击 ”+” 添加并配置 Agent 可调用的工具。
- 指令:定义 Agent 的任务目标和上下文。支持使用 Jinja 语法引用上游节点变量。
- 查询:接收用户输入。
- 最大迭代次数:设定 Agent 的最大执行步数。
- 记忆:为 Agent 提供对话上下文记忆能力。
- 输出变量:节点输出的数据结构。