工作流智能体是一个集成了众多可执行指令的集合体,旨在实现复杂的业务逻辑或完成特定的任务目标。工作流智能体的核心优势在于能够巧妙地将大型模型的强大功能与特定的业务逻辑相结合,通过巧妙地串联各个功能节点,协同完成既定的任务,实现高效、灵活且易于扩展的AI应用开发目标。
#1. 基础节点
#1.1 开始节点
开始节点是工作流中的第一个节点,它标志着整个工作流程的启动。该节点通常负责接收用户输入或触发条件,并将其作为后续节点处理任务的依据。
在工作流的开始节点中,设定了一个唯一的默认输入参数——AGENT_USER_INP,此参数专门用于接收并存储用户在当前对话轮次中输入的原始内容。
#1.2 结束节点
结束节点作为工作流的最终环节,扮演着至关重要的角色,它负责反馈工作流执行完毕后的结果。在结束节点的设计中,我们提供了两种返回结果的方式:返回参数,由工作流生成 返回设定格式配置的回答。
- 返回参数,由工作流生成:此方式允许结束节点返回在工作流执行过程中处理得到的变量值。
- 返回设定格式配置的回答:通常用于允许用户自定义返回结果的格式和内容,以满足不同应用场景下的具体需求。
#1.3 大模型节点
大模型节点是工作流智能体中不可或缺的一环,它具备调用大语言模型(LLM)的能力,专门用于处理文本生成任务。具备强大的自然语言处理能力,能够理解和生成人类语言。
- 配置与参数
- 模型选择:从可用的模型库中选择一个合适的大型语言模型进行调用。
- 输入参数配置:设置输入文本的内容,这可以是用户输入的原始文本,也可以是经过预处理或格式化的文本。
- 提示词:为模型提供额外的提示信息,以帮助模型更好地理解输入文本并生成符合要求的输出。这些提示词可以是关键词、短语或句子。
- 输出参数:设置输出文本的格式和样式。
#1.4 代码节点
代码节点具备通过编写代码生成返回值的能力。在代码节点内部,用户可以运用集成开发环境(IDE)工具,既可以借助AI自动生成的代码,也可以编写自定义的代码逻辑,以处理输入参数并返回相应的结果。此外,它还支持对错误代码进行校正。
| 参数配置 | 说明 |
|---|---|
| 输入 | 设置代码节点需要接收的输入参数,这些参数可能来自其他节点或用户输入。 |
| 代码 | 1. 在代码编辑器中编写自定义代码逻辑,也可以通过 AI 自动生成代码,实现特定的功能或处理流程。 2. 在代码节点编辑页面上,我们提供了一个函数结构的参考代码示例。请遵循以下指导原则来编写您的函数:您可以直接利用输入参数中的变量,来执行代码,并将处理结果存放到输出参数中予以返回。请注意,此功能设计为仅支持编写一个函数。 3. 支持300+python包,仅支持 Python 语言。 |
| 输出 | 设置代码节点的输出格式和类型,输出参数需和代码return输出参数保持一致,以便后续节点能够正确接收和处理。 |
#1.5 知识库节点
知识库节点在多个关键领域展现出了其不可或缺的重要性,特别是在信息的存储与检索、应答效率的提升、工作流程的优化、模型性能的增强以及系统的便捷更新与维护方面。它能够根据用户输入的查询条件(query),在指定的知识库中迅速且精确地定位并提取相关信息片段,随后将这些信息高效地反馈给用户。
- 参数配置
- 输入参数:固定为 Query,表示用户希望在知识库中检索的Query相关关键信息。
- 知识库选择:在知识库区域右上角单击 + 添加知识库,即可将知识库添加到节点中,支持添加多个知识库。
- 知识库参数设置:用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整分段数量。数值越大,返回的条目越多。
- 输出:固定输出result(Array<Object>),其中包含多条召回结果。
#2. 工具类节点
#2.1 工作流节点
在一个工作流体系中,你可以将另一个工作流整合为其中的一个环节或节点,以此实现复杂任务的自动化处理。多个工作流节点能够相互协作,共同完成复杂的业务任务。工作流节点会根据所嵌入的工作流展示其预设的输入与输出接口。
- 参数配置
- 输入:工作流节点的输入通常包括上游节点传递的数据、用户手动输入的数据或配置的信息等。
- 输出:工作流节点的输出是执行特定任务后产生的结果或数据。这些输出可以作为后续节点的输入,从而实现整个工作流的自动化执行。
#2.2 工具节点
相较于大模型节点,工具节点进一步拓宽了智能体的能力范畴,它集成了众多通用及复杂的工具集。用户可以直接调用这些工具,以迅速且高效的方式完成工作流程中的各项任务。工具节点的输入与输出结构严格遵循工具所定义的输入输出结构,并不支持用户进行自定义的设置或调整。
- 参数配置
- 工具选择:从可用的工具列表中选择需要使用的工具。
- 输入参数:设置工具节点需要接收的输入参数,这些参数可能来自其他节点或用户输入。
- 输出参数:工具节点的输出参数不支持自定义,用于接收工具执行后的结果。
#3. 逻辑节点
#3.1 决策节点
意图识别节点在工作流智能体中有着广泛的应用场景,它负责深入理解和分析用户的输入信息,旨在准确捕捉并确定用户的实际需求或真实意图。不仅能够提高系统的自动化水平和智能化程度,还能够提升用户体验和满意度。通过准确识别用户的意图,系统能够为用户提供更加精准、个性化的服务,从而增强用户的黏性和忠诚度。
| 参数配置 | 说明 |
|---|---|
| 模型选择 | 从可用的模型库中选择一个合适的大型语言模型进行调用。 |
| 输入 | 固定为 Query,接收来自用户或其他上游节点的输入信息,该信息为意图识别判断的内容。 |
| 意图 | 用户能够设定多个意图,大型模型会深入分析和解读用户意图,将其与预设的意图分类进行匹配,随后,处理流程会自动导向相应的后续节点。 |
| 高级配置 | 为了引导大型模型更准确地识别并分类用户意图,我们可以追加系统提示词,有助于模型实现更精细化的分类。 |
| 输出 | 识别出意图后,节点会将这一信息作为输出,传递给下游节点或系统,以便根据用户的意图执行相应的操作或流程。 |
#3.2 分支器节点
分支器节点用于设计条件分支流程,根据节点入参是否满足设定的条件,独立运行对应的分支。这为实现复杂的逻辑判断和分支处理提供了便利。相较于决策节点(凭借自然语言处理(NLP)技术专注于解析用户的意图或需求),分支器节点则主要依托于条件判断逻辑与分支处理机制来运作,每个分支条件均支持灵活地添加多个判断条件,这些条件可以通过逻辑运算符“且”与“或”来组合,从而构建出更为复杂和精细的判断逻辑。此外,分支器节点还具备添加多个条件分支的能力,这进一步增强了其处理多样化流程和决策场景的能力。 
#3.3 迭代节点
迭代节点是一个强大且灵活的工具,它允许用户设定重复执行的任务或操作,从而极大地提高了工作效率和自动化程度。类似于编程语言中的for循环,遍历循环用于遍历一个已知的数组,并对数组中的每个元素执行一系列相同的步骤,每次循环迭代,工作流会依次执行画布内的各个节点。
- 参数配置
- 输入变量:仅接受 Array 数组变量类型数据。
- 迭代子节点:你可以在子画布中使用工作流中所有的节点(迭代节点除外),编排需重复执行的任务;子画布中仅有一个开始节点和结束节点,不支持嵌套循环。
- 输出变量:仅支持输出数组变量,支持多数组输出;循环执行完毕后,将所有循环的运行结果打包输出给下游。
#4. 转换节点
#4.1 变量存储器
通过变量存储器节点,你可以将工作流内的变量赋值到会话变量中用于临时存储,并可以在后续对话中持续引用。删除会话或新建会话,变量将会被清空。
- 设置变量值:用于变量赋值。
- 获取变量值:用于变量读取和使用。
#4.2 变量提取器
变量提取器节点的存在使得智能体能够更加方便地处理非结构化或复杂的数据输入,从而提高了其处理复杂任务的能力。同时,变量提取器节点具备高度灵活性,能够根据流程中各异的数据源,结合提取变量的具体描述,精准地从输入参数中抽取出目标内容,为智能体提供实时的数据更新和反馈。
- 输入:固定为input,字符串类型,接收来自用户或其他上游节点的输入信息。
- 输出:支持多种数据类型的输出,并允许用户定义多个输出项。它能够根据参数的具体描述,精确地抽取出输入数据中的目标内容,并将这些内容按照预设的数据类型和输出项进行赋值。
#4.3 文本拼接
文本拼接节点是工作流中的一个特定节点类型,它接收来自上游节点的多个文本输入,并根据预设的规则或逻辑将这些文本片段拼接成一个连续的字符串。这个拼接后的字符串可以作为后续节点的输入,或者直接输出给最终用户。
- 输入:文本拼接节点能够接收来自上游节点的多个文本输入。这些输入可以是字符串、文本变量或文本数组等。
- 拼接规则:节点内部定义了拼接的规则或逻辑,这些规则决定了如何将输入的文本片段组合成一个完整的字符串。例如,可以使用空格、逗号、换行符等作为分隔符,或者根据特定的格式要求来拼接文本。
- 输出:拼接后的文本可以经过进一步的格式化或处理,以满足后续节点的输入要求或用户的输出需求。
#5. 其他节点
#5.1 消息节点
消息节点接收来自上游节点的数据或指令,根据预设的逻辑或规则生成或编辑回复内容,然后将这些信息传递给下游节点或作为最终输出。消息节点的主要功能是确保信息在智能体和工作流中的有效流动和传递。
- 输入:能够接收来自上游节点参数输入,用于回答内容的设置。
- 回答内容:设定明确的回答规则或逻辑框架,据此生成回复内容。这些内容可以是简洁明了的文本回复,也可以是经过精心格式化的消息,亦或是包含特定关键信息的详细答复。

