工作流是预定的代码路径,智能体能自主定义流程。构建它们需使用支持结构化输出和工具调用的聊天模型,并借助LLM的工具调用、结构化输出和短期记忆等增强能力。
提示链将任务分解为可验证步骤,每个LLM调用处理前一个输出。并行化同时处理多个子任务或多次运行同一任务以提升速度或可信度。路由根据输入内容将任务引导至特定语境处理。
1、工作流和智能体
工作流是具有预定性质的代码路径,并按照给定的顺序运行
而智能体是动态的,其能够自主定义其流程和工具的使用
2、环境的准备
要构建工作流和智能体,可以使用任何支持结构化输出和工具调用的聊天模型
参考LangGraph快速开始,主要是依赖项的安装和LLM的初始化
3、LLMs与增强
工作流和智能体系统都基于LLMs和为其添加的增强技能,比如工具调用、结构化输出、短期记忆
主要是对Harness具备的能力的选择和模型的选择
4、提示链
提示链是指每一个LLM调用处理前一个调用的输出,它通常是指用于执行定义明确、可分解为更小可验证步骤的任务。
如,输入给我查询xxx一周的天气情况,根据这一周的每日最高温度和最低温度画出折线图
LLM分析查询xxx一周天气,然后将结果和下一步的操作作为下一个节点的输入传输给下一个节点
- 节点1(数据获取专家):
- 固定指令:“你是一个天气查询助手,只返回纯JSON格式的天气数据,不要任何解释。”
- 输出(传给节点2):
{"city":"北京","dates":["周一"...], "highs":[25,26...], "lows":[15,16...]}(只传数据,不传操作)
- 节点2(图表绘制助手):
- 固定指令(预设好的):“你是一个图表生成器,接收到天气JSON数据后,直接根据里面的最高温和最低温生成画图用的SVG代码或Mermaid代码。”
- 输入:接收到的只有节点1给的那一串JSON数据。
5、并行化
通过并行化,LLMs可以同时处理一项任务,具体表现为同时运行多个独立的子任务,或是多次运行同一任务以检查不同的输出结果来实现,因此并行化通常用于
(1)将子任务拆分并并行执行,从而提升执行速度
(2)多次运行任务来检查是否存在不同的输出,从而提高可信度
6、路由
路由工作流会对输入进行处理,并将其引导至特定语境下的任务