Release

【Release】Dify 智能体节点介绍——当工作流学会“自主推理”

Dify Agent Node 介绍:当工作流学会“自主推理”

摘要: Dify 正式推出全新的插件类型——Agent Strategy(智能体策略)。通过引入 Agent Node,Dify Workflows 能够赋予 LLM 自主决策与多步工具调用的能力。本文详解了 ReAct 和 Function Calling 两大核心策略、非技术用户的使用流程以及开发者自定义策略的标准接口,旨在构建一个开放的 AI 推理创新测试床。


在传统的自动化流程中,每一次工具调用都是预先编排好的固定动作。然而,面对复杂问题时,这种僵化的结构就像强迫钢琴家机械地照谱演奏一样低效。虽然工作流(Workflow)主要用于约束任务的执行方式,但随着大语言模型(LLM)推理能力的不断增强,部分工作流程可以逐渐交由 LLM 自主处理。

最近,Dify 正式引入了一种全新的插件类型——Agent Strategy。我们将深入探讨这一新功能。

核心概念:Agent Node 与策略的关系

在 Dify Workflow 中,Agent Node(智能体节点)将某些步骤从固定的流程和工具模式中剥离出来,交由 LLM进行自主决策和判断。Agent Strategy(智能体策略)则是一个可扩展的模板,定义了标准化的输入和输出格式。通过为这些策略开发自定义接口,你可以实现各种解决方案,如 CoT(思维链)、ToT(树状思考)、GoT(图状思考)、BoT(支柱式思考),甚至是更先进的语义内核等高级策略。

在 Dify 中,Agent Node嵌入 Agent Strategy,并与上游和下游节点连接。与 LLM 节点类似,它负责处理特定任务并向下一个节点返回最终响应。

  • Agent Node (执行单元):工作流的“决策中心”。它分配资源、管理状态并记录整个推理过程。
  • Agent Strategy (决策逻辑):一个可插拔的推理算法模块,定义了如何使用工具以及如何解决问题。

这种解耦设计就像将汽车的发动机与其控制系统分离——开发者可以升级“动力总成”,而不会影响整体车辆架构。目前我们提供两种经典的 Agent Strategies:

  1. ReAct:经典的“思考-行动-观察”链条
  2. Function Calling:基于函数的精确调用

Agent Node Architecture

你可以直接从 Marketplace(市场)下载这两种策略。更重要的是,我们发布了策略开发的开放标准。在 Dify 中,任何开发者都可以:

  • 使用 CLI 工具快速创建策略插件
  • 自定义配置表单和可视化组件
  • 集成前沿的学术算法(例如 Tree-of-Thoughts)

这有效地将 Dify 变成了一个 AI 推理策略的“创新测试床”,让每位用户都能受益于社区驱动的进步。

Strategy Marketplace

功能概览

在 Workflow 内部,Agent Node 实现了多步工具推理的自主思考。一个最小的 Agent Strategy 至少需要定义如何使用 LLM API以及如何调用工具。

Feature Overview

面向非技术用户

拖拽式设置

只需从工具面板中拖入一个 Agent Node,并通过三个步骤进行配置:

  1. 选择推理策略
  2. 链接工具和模型
  3. 设置提示词模板(Prompt Template)

透明的推理过程

Dify 的强大功能之一是其内置的日志机制,它会生成树状结构的智能体思维过程。该结构使你能够:

  • 可视化执行路径:调试复杂的多步推理逻辑。
    Debugging Visualization

  • 实时查看

    • 总耗时和 Token 使用情况
    • 每一轮推理的细节
    • 工具调用追踪记录

面向开发者

定义 Agent Strategy 涉及指定语言模型如何执行以下操作:

  • 处理用户查询
  • 选择正确的工具
  • 使用正确的参数运行这些工具
  • 处理结果
  • 判断任务何时完成

Developer Interface

我们提供了一个标准化开发套件(Standardized Development Kit),包括:

  • 策略配置组件库(例如模型选择器/工具编辑器)
  • 结构化日志接口
  • 沙箱测试环境

具体来说,策略定义涵盖其身份和元数据、所需参数(模型、工具、查询等)、参数类型及约束条件以及源代码的位置。

智能体的执行主要分为三个阶段:initialization(初始化)、iterative looping(迭代循环)和 final response(最终响应)。

  1. 初始化阶段:系统设置所有必要的参数、工具和上下文。
  2. 迭代循环阶段:系统准备包含当前上下文的提示词,并调用 LLM,同时提供可用工具的信息。它解析 LLM 的响应以判断是否需要调用工具或是否已达成最终答案。如果需要调用工具,系统将执行该工具并使用其输出更新上下文。此循环将持续进行,直到任务完成或达到预设的最大迭代次数限制。
  3. 最终阶段:系统返回最终答案或结果。

例如,一个 function_calling.yaml 文件可能如下所示:

parameters:
- name: model
  type: model-selector
  scope: tool-call & llm
- name: tools
  type: array[tools]
- name: max_iterations
  type: number
  default: 5
extra:
python:
source: function_calling.py

得益于这种声明式架构,配置策略的感觉就像填写一个简单的表单,并支持:

  • 动态参数验证(类型/范围/依赖关系)
  • 自动多语言标签渲染

更多详细信息请参阅我们的文档

未来展望:功能扩展

我们计划进一步迭代,添加更多对开发者友好的组件,例如:

  • 知识库集成
  • Chatflow(对话流)中的记忆支持
  • 错误处理和重试机制
  • 更多的官方 Agent Strategies

Future Roadmap

用户可以自由从社区下载不同的策略,并将其加载到不同的节点中以应对各种任务。为了理解 Agent Node 的能力,你可以从一个简单的三节点 Chatflow开始,观察其工作原理并体验类似智能体应用的效果。对于更复杂的任务,可以考虑采用路由和交接(routing and handoff)方法,将 Agent Node 视为 LLM Node的扩展,从而将问题解决分解为多个步骤。

例如,Agent Node 可以启用具有 Task capabilities(任务能力)的 OpenAI ChatGPT-4o。(图片由社区贡献者 Pascal 提供)。

ChatGPT Integration

我们期待在 Version 1.0.0中融入更多功能,并欢迎大家贡献更多的 Agent Strategies!

文章来源: https://dify.ai/blog/dify-agent-node-introduction-when-workflows-learn-autonomous-reasoning
← 返回文章列表