文章目录
- 工作流定义
- 工作流构建
- 新建工作流
- 任务分解
- 任务分类
- 任务执行
- 日常聊天任务执行
- 计算字符串长度的三次幂任务执行
- 获取ip地址任务执行
- 其他任务不执行
- 变量汇集
- 结果返回
- 效果展示
工作流定义
下面是工作流官方文档中给出的工作流定义,其实工作流与Agent调用的对象是一样的,都是预先定义好的智能体。不过工作流是在一个确定的任务空间里面,根据预定义的长且复杂的智能体链条去完成任务;Agent则要利用大模型的语义理解能力,首先从无穷的语义空间中进入一个有限的任务空间,再将潜在的智能体空间与这个任务空间做对齐,通过重复的思考-尝试-反馈
思维链条去迭代出一个相对来说较为简单的智能体调用链。
工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。
工作流构建
新建工作流
新建工作流时注意不要选工作流,而要在聊天助手下面选择,不然无法引入聊天相关的变量
新建一个工作流,开始时会看到下面这堆东西
除了知识检索这里暂时不尝试,接下来把里面的东西基本都试一遍,注意工作流不支持多轮对话功能,用户只能在最开始的时候输入一个query。因此这里的计划是让用户在一开始的时候输入一个或多个任务,后续通过迭代操作对任务进行解析和执行。
任务分解
首先将用户输入的一个或多个任务进行拆解,开始节点中包含以下变量,我们这里就用到query,也就是用户在对话框中的输入
假设用户输入可以按照,
分解成多个任务,引入代码执行模块将其转化成列表
任务分类
引入迭代模块,以分别执行不同的子任务
对每个任务的意图进行识别
对非对话任务分类
任务执行
在条件分类器中确定不同子任务的类别之后,就进入各自任务的执行工具链中
日常聊天任务执行
确定任务为日常聊天之后,调用LLM来回答提问
计算字符串长度的三次幂任务执行
首先使用参数提取工具提取出对应字符串
接下来依次调用两个自定义工具
获取ip地址任务执行
通过HTTP请求获取IP地址
提取返回值中的IP地址
其他任务不执行
如果是其他任务,使用代码执行模块返回一个报错变量
变量汇集
子任务执行完后,将上述不同分支的返回值汇总到同一个变量中
迭代体内的整体流程如下
结果返回
迭代体外加一个直接回复,注意迭代体的输出要设置成变量聚合器
工作流的整体流程如下
效果展示
点击预览,在对话框中输入如下内容
你好,查一下ip地址是什么,计算"哈哈哈哈哈"这个字符串的长度的三次幂,查一下明天的天气,再见