作者:杨雨虹  历史版本: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 提供对话上下文记忆能力。

  • 输出变量:节点输出的数据结构。