在人工智能技术日新月异的今天,工作流自动化正迎来新一轮的变革。长期以来,传统自动化流程依赖于预先设定的固定动作,这在处理复杂问题时显得捉襟见肘,就像是让钢琴家只能机械地演奏乐谱,缺乏灵活性和创造性。
然而,随着大型语言模型 (LLM) 推理能力的飞速提升,将工作流中某些环节的决策权逐步交给 LLM 成为了可能。近日,Dify 平台正式推出了 Agent 节点 Strategy 类型插件,这一创新功能旨在为用户提供更智能、更自主的工作流自动化体验。
Agent 节点与 Strategy 的关系:解耦设计,灵活升级
Dify Workflow 中的 Agent 节点,其核心作用在于打破传统工作流的刚性约束,使得某些环节不再局限于固定的流程和工具模式。相反,Agent 节点允许 LLM 在特定环节进行自主决策和判断,从而应对更加复杂和动态的任务需求。
为了实现 Agent 节点的灵活性和可扩展性,Dify 引入了 Agent Strategy (代理策略) 的概念。Agent Strategy 是一个可扩展的模板,它定义了标准化的输入内容和输出格式。通过开发特定的代理策略配置界面,Dify 允许用户应用各种先进的代理策略,例如 CoT (思维链)、ToT (思维树)、GoT (思维图) 以及 BoT (思维支柱) 等,甚至可以实现更为复杂的语义内核策略。
在 Dify 平台中,Agent 节点承载了 Agent Strategy,并与工作流的上下游节点紧密连接。与 LLM 节点类似,Agent 节点专注于解决具体任务,并将最终结果反馈给下游节点。
为了更清晰地理解 Agent 节点与 Agent Strategy 之间的关系,可以将其类比为汽车的引擎与控制系统:
- Agent 节点 (执行单元): 扮演着工作流中的 "决策中心" 角色,负责调度资源、管理运行状态,并记录完整的推理过程。
- Agent Strategy (决策逻辑): 作为一个可插拔的推理算法模块,Agent Strategy 定义了工具的使用规则和问题解决范式。
这种精妙的解耦设计,使得开发者能够独立升级 "动力系统" (Agent Strategy),而无需对整个工作流架构进行大改动,极大地提升了系统的灵活性和可维护性。
目前,Dify 预置了两种经典的 Agent Strategy 策略供用户选择:
- ReAct: 经典的 "思考-行动-观察" 推理链,模拟人类的思考和行动模式。
- Function Calling: 支持函数式精准调用,能够精确调用外部工具或 API。
用户可以直接在 Dify Marketplace 中下载这些预设策略,并快速应用到自己的工作流中。更重要的是,Dify 推出了开放的策略开发标准,鼓励开发者共同构建繁荣的 Agent Strategy 生态。在 Dify 平台上,任何开发者都可以:
- 通过 CLI 工具快速创建自定义策略插件。
- 自定义策略的配置表单和可视化组件。
- 将前沿的学术算法 (如 Tree-of-Thoughts) 集成到 Agent 节点中。
这意味着 Dify 正在成为 AI 推理策略的 "创新平台",每个用户都能够共享社区共建的成果,并从中受益。
Agent 节点功能概览
功能全景图展示了 Agent 节点的主要功能。
接下来,我们将分别面向普通用户和开发者,介绍 Agent 节点的具体使用方法和优势。
面向普通用户:拖拽即用,透明推理
1. 拖拽即用,快速配置
Dify 平台将 Agent 节点的使用门槛降至最低。用户可以从工具面板中直接拖拽 Agent 节点到工作流画布中,只需简单的三个步骤即可完成配置:
- 选择推理策略: 从预置或自定义的策略列表中选择合适的 Agent Strategy。
- 绑定工具/模型: 将 Agent 节点与所需的工具或语言模型进行绑定。
- 设置提示词模板: 根据任务需求,设置清晰的提示词模板,引导 LLM 进行推理和决策。
2. 透明化推理过程,实时日志
Dify 代理策略的一个强大功能是其内置的日志机制。这个机制创建了代理思考过程的树状结构,实现了代理执行路径的可视化,方便调试复杂的多步骤推理。
通过实时日志,用户可以清晰地查看:
- 总耗时 / Token 消耗: 了解 Agent 节点的资源消耗情况。
- 多轮思考过程: 追踪 LLM 的多轮思考和决策步骤。
- 工具调用轨迹: 监控 Agent 节点对外部工具的调用记录。
透明化的推理过程和实时的日志信息,极大地提升了 Agent 节点的可debug性和可解释性,帮助用户更好地理解和优化工作流。
面向开发者:标准化开发,灵活定制
对于开发者而言,Dify 提供了标准化的开发套件, 帮助开发者快速构建和定制 Agent Strategy。 定义一个 Agent Strategy 的核心在于定义以下模块,从而规定语言模型如何:
- 处理用户查询: 接收和解析用户的自然语言查询。
- 选择合适的工具: 根据查询内容和任务需求,选择合适的工具。
- 使用正确的参数执行工具: 以正确的参数调用所选工具。
- 处理工具返回结果: 解析和处理工具执行后的返回结果。
- 判断任务完成时机: 确定任务何时完成并输出最终答案。
标准化的开发套件, 包含了策略配置组件库 (如 Model Selector / Tool Editor 等)、结构化日志接口、以及沙箱测试环境, 极大地简化了策略开发流程。
策略的定义主要包括策略的身份和元数据、必需的参数 (例如模型、工具、查询等)、参数的类型和约束,以及策略实现源代码的位置。
Agent 的执行流程主要分为三个阶段: 初始化、迭代循环和最终回答。
- 初始化阶段: 系统完成必要的参数配置、工具设置和上下文准备。
- 迭代循环阶段: 系统准备包含当前上下文的提示词,并利用工具信息调用大型语言模型 (LLM)。随后,系统解析 LLM 的响应,判断是调用工具还是已获得最终答案。如果需要调用工具,系统将执行相应的工具,并使用工具的输出结果更新上下文。这个循环持续进行,直到任务完成或达到预设的最大迭代次数。
- 最终回答阶段: 系统返回最终答案或结果。
Dify 平台支持通过 YAML 文件以声明式的方式定义策略。 例如,以下代码展示了一个名为 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
这种声明式架构使得策略配置如同填写表格一样简单直观,同时支持:
- 参数动态校验: 对参数类型、范围和依赖关系进行动态验证。
- 多语言标签自动渲染: 自动渲染多语言版本的配置界面。
更多关于策略定义的详细信息,请参考 Dify 官方文档: https://docs.dify.ai/plugins/schema-definition/agent
未来展望:持续迭代,无限可能
Dify 平台计划在未来持续迭代 Agent 节点功能,并增加更多面向开发者的组件库,例如:
- 知识库调用能力
- Chatflow 中的 Memory (记忆) 组件
- 错误处理和重试机制
- 更多官方 Agent 策略
用户可以根据自身需求,从社区下载不同的 Agent Strategy,并将其加载到不同的 Agent 节点中,以解决各种复杂的任务。
在初次尝试 Agent 节点时,用户可以使用三节点的 Chatflow 快速了解其运行原理,并模拟 Agent 的基本能力。 在解决更复杂的任务时,可以尝试使用路由和交接等高级技巧,将 Agent 节点视为 LLM 节点的强大扩展,通过分步骤解决复杂问题。
例如,通过 Agent 节点,用户可以实现类似 OpenAI ChatGPT-4o with Task 的复杂任务处理能力 (下图来自社区贡献者 Pascal)。
更多高级玩法将在 Dify 1.0.0 版本中正式发布, 欢迎更多开发者贡献自己的 Agent Strategy,共同构建繁荣的 Dify 生态!