一、背景
在 MaxKB v2.2.0 版本中,新增了一个强大的组件——循环节点。该组件支持在满足特定条件前,重复执行一段任务序列。通过设置循环类型和循环体,用户可以灵活地实现批量处理、固定次数执行或持续运行等多种自动化场景。
添加循环节点后,系统会自动生成一个循环节点与对应的循环体画布,便于用户在工作流中直观配置和管理循环逻辑。
二、循环节点的类型
循环类型是循环节点的运行模式。目前支持以下三种类型:
数组循环
基于数组数据驱动循环,遍历数组中的每个元素并依次执行任务,适用于“按数据量批量处理”的场景。
循环数组:选择待进行循环的数组内容。
指定次数循环
按照用户预设的固定次数执行任务,如循环 5 次、10 次,适用于“明确次数的重复操作”。
循环次数:设置循环次数,若小于 1,则系统默认设置为 1。
无限循环
无固定终止条件的循环,任务会持续执行,直到触发停止条件。默认最大循环次数为 1000 次,适用于“需持续运行并等待事件触发”的场景。
详细介绍可见:循环组件
三、案例展示
1. 数组循环——多问题提问知识库
应用场景:在知识库问答中,多个问题同时提问可能导致检索精度降低或超过模型最大 Tokens。通过数组循环,可以将多个问题分次提问,提高准确度与效率。
注意:传入“数组循环”类型的循环数组的内容得是带 JSON 标识的数组格式。
工作流设计
运行流程如下:
开始节点接收用户输入,确定多个问题。
自定义函数将输入的问题转为数组格式。
循环节点遍历数组,对每个问题依次提问。
转为数组格式
添加自定义工具,添加输入参数,函数内容为转换用户输入的多个问题为数组格式。
输入参数:text
def create_array_from_text(text):
return [line.strip() for line in text.split('\n') if line.strip()]
循环节点:
循环类型选择数组循环,循环数组选择自定义工具转换的结果,对多个问题进行循环提问。
循环体:
循环开始节点作为循环体的开始。
知识库检索提供知识库检索问题。
AI对话将知识库检索的结果和单个问题作为提示词进行回答。
已知信息:
{{知识库检索.data}}
问题:
{{循环开始.item}}
指定回复将结果以“问题+结果”的形式回答。
效果展示
回答的结果能将每个问题单独通过循环体进行检索和回答,极大减少了因问题输入过多产生的向量检索准确度降低的问题。同时,AI 对话也不会超过模型的最大 Tokens。
2.指定次数循环——广告创意文案生成器
应用场景:用户希望快速生成多条广告创意文案,适合通过指定次数循环完成重复生成任务。
工作流设计
运行流程如下:
开始节点接收用户输入,获取用户需要的广告文案信息。
指定次数循环进行重复工作。
设置循环节点的循环类型为“指定次数循环”,设置循环次数为 10 次,通过循环实现指定次数广告创意生成。
循环体
循环开始节点作为循环体的开始。
AI对话将生成广告创意文案。
系统提示词
# 角色:
广告创意文案生成小助手,专注于为用户提供高质量、创新性的广告文案支持。
## 目标:
- 根据用户需求快速生成一份符合品牌调性和目标受众的广告文案。
## 核心技能:
### 技能: 广告文案生成
1. 分析用户提供的产品信息、目标受众和品牌调性,明确文案需求。
2. 结合行业趋势、热点话题和用户输入的关键信息,生成一份广告文案。
3. 输出最终一份广告文案并附带创意说明,帮助用户理解文案设计思路。
## 输出格式:
- 文案以清晰段落呈现,包含标题、正文和创意说明。
- 示例格式:
**标题**: [文案标题]
**正文**: [具体文案内容]
**创意说明**: [文案的核心亮点及适用场景]
## 限制:
1. **严格限制回答范围**:仅回答与广告文案生成相关的问题。
2. 不得生成与法律法规、社会道德相违背的文案内容。
3. 文案需基于用户输入信息,不得虚构与产品无关的内容。
4. 以 Markdown 格式输出
用户提示词
主题:
{{开始.question}}
指定回复将结果以“循环下标+结果”的形式回答
效果展示
循环下标从 0 开始,输出结果从 0–9 共 10 条广告创意。
3.无限循环——职业规划小助手
应用场景:通过持续与用户对话,动态补充职业信息,直到用户确认信息完整后生成职业规划总结。
工作流设计
运行流程如下:
开始节点接收用户输入,获取用户当前职业状态信息。
无限循环进行职业相关信息补充。
AI 对话实现职业规划建议。
循环节点:
在我们的职业规划小助手需求中,我们应该使用“无限循环”,最后通过意图判别终止循环操作。所以在这里我们设置“无限循环”。
循环体:
循环体是实现这个职业规划信息补充的重要部分,需要由 AI 对话引导用户补充信息在表单中,再经过意图识别进行判断是否跳出循环体。
循环开始
添加循环变量:knowledge,方便后期将用户的补充信息整理到一起,给外部工作流生成职业规划总结。
引导收集用户信息
在循环开始后接入 AI 对话,设置相应的提示词:
系统提示词
## 角色
你是一位职业规划师,善于根据用户提供的情况进行职业规划。收集客户个人想法,确保输入的信息符合职业规划所需信息的要求,并在不符合要求时提供明确的补充指导。
## 功能
分析客户输入的信息内容
检查客户输入的信息,判断其是否符合“职业规划所需信息”的要求。
如果不满足要求,明确指出客户需要补充的具体信息,并进行示例。
需补充信息:<具体说明客户缺失的关键信息内容>
## 限制
只专注于分析“职业规划”相关的内容,不涉及其他无关领域。
所输出的内容必须使用合适的格式进行组织,不能偏离需求要求。
能够准确指出客户需要补充的信息,避免模棱两可的表述。
输出内容在50字左右,文字风格有亲和力
用户提示词
已知信息:
{{loop.knowledge}}
问题:
{{开始.question}}
表单收集
设置表单输出的内容为 AI 对话输出的结果,加上相应的提示语,并给出表单参数给用户填写补充信息。
意图识别
根据表单收集到的内容,对补充信息进行意图识别,判断用户是继续补充信息,还是终止循环希望给出规划总结。其中,当判断为“其他”时,将把已知信息进行赋值,并继续循环;其他条件则走入 Break 结点。
Break 组件
当判断到用户没有补充信息后,跳出循环,进行规划总结。注意需要把判断条件和执行条件都设置为“任一”。
指定回复
将用户的问题与表单收集到的补充的信息用指定回复整合到一起。
变量赋值
将循环变量 knowledge 赋值为指定回复的结果,方便外部工作流引用变量。
职业规划总结:
设置 AI 对话,节点根据用户的问题和补充的信息进行职业规划总结。
用户提示词
根据用户输入的信息{{开始.question}}和补充信息{{循环节点.knowledge}}
1. 列出用户所有输入的信息。
2. 基于列出的信息,撰写一个详细的条目化总结,包括对用户信息的深入分析和解读。
3. 根据总结,提出职业规划建议。
修改开场白:
在开场白中添加初始引导语言,方便用户输入更准确的信息。
欢迎开启职业规划之旅,我是您的专属助手,无论您处于职业迷茫期还是转型期,都将为您剖析自我、探寻最佳职业路径。您可以输入个人兴趣爱好、职业经历、教育背景等信息,例如“热爱绘画,有 3 年广告设计工作经验,本科毕业于美术专业”,我会据此为您精准规划。
效果展示
提交完补充信息后,输入“请执行”,“暂无信息”,“没有其他信息了”等提示后,直接执行职业规划总结。
四、总结
循环节点为 MaxKB 工作流提供了更高的灵活性与自动化能力:
数组循环:高效处理批量数据;
指定次数循环:实现固定重复任务;
无限循环:构建动态、智能的交互流程。
循环节点广泛适用于多问题问答、内容生成、交互式智能场景等,帮助用户以更简洁的方式构建高效、可复用的自动化流程。
工作流参考: