这是一篇关于LLM与Agent工作流的深度解读,堪称独家分析。核心内容:1. Agent为何备受追捧2. 提示词与工作流的关联3. LLM应用流程的设计理念
Agent为何备受追捧?简单来说,是因为它直接嵌入业务场景,而大模型仅仅在信息节点上完成一次转换。实际上,大模型本身也能做到,但对普通用户仍存在一定门槛。揭开行业专家的共识面纱,深入探索提示词你会察觉,提示词本身也能定义工作流——无论是工信部AI内容生成师的RMAP框架,还是常见的LangGPT、CRISPE、BROKE框架,里面都隐藏着一个核心模块:工作流。
## workflow
1, ****
2, ****
3, ****
换言之,即便没有Agent,仅靠提示词也能解决许多问题。人们追捧Agent的最主要原因,是期望获得稳定的输出结果,而大模型未必总能保证。不妨顺着这条思路思考:大模型LLM自身能否分析流程?
从理论层面看,工作流并非AI的认知能力,而是一种逻辑思维能力。从事运营多年,最深切的体会是:任何任务都可以抽象化为一个工作流来执行。我们一直强调利用提示词工程精准获取大模型的信息,却忽视了两件重要的事——行业knowhow与工作流分析。而后者正是许多咨询公司协助企业进行BPM(业务流程管理)的机遇所在。
所有流程抽象过程大致经历以下四个阶段:
- 任务识别:明确自己的Agent需要完成的具体任务。
- 流程抽象:将管理流程显性化,绘制出流程图。
- 思维能力:具备理解并分析工作流程的能力。
- 稳定性期望:期望通过流程化实现一致且稳定的输出结果。
大型语言模型 (LLM) 应用流程
LLM应用流程的设计理念可与数据管道(data pipeline)相类比,与传统的ETL(提取、转换、加载)流程高度相似。
ETL是Extract, Transform, Load的缩写,中文译为抽取、转换、加载,是一种用于数据仓库的数据集成过程。ETL将多个数据源的数据整合至统一的目标数据仓库中,便于后续分析与报告。ETL通常包含以下三个步骤:
- 抽取(Extract)
- 从各种数据源(数据库、文件、API等)中提取数据。
- 数据源可能为结构化(如关系型数据库)、半结构化(如XML文件)或非结构化(如文本文件)。
- 此阶段需确保数据的完整性与一致性。
- 转换(Transform)
- 对提取的数据进行清洗、转换与格式化,使其符合目标数据仓库的要求。
- 转换操作包括数据清洗、类型转换、去重、聚合等。
- 目标是保障数据的质量与可用性。
- 加载(Load)
- 将转换后的数据加载至目标数据仓库中。
- 数据仓库可以是关系型数据库、NoSQL数据库或其他数据存储系统。
- 此阶段需确保数据的正确性与完整性。
为何在此详细解释ETL?因为这与未来构建知识库密切相关——它本质上就是构建知识库的核心。这种流程的关键在于将复杂任务拆解为一系列顺序步骤,确保系统的可靠性与可理解性。
以下是一个典型的LLM应用流程,有人将其统称为IPO:
- 输入(Input)
- 数据:来自电子邮件、社交媒体或数据库等多种来源。
- 提示:用户指令或预定义的指令,引导LLM生成特定输出。
- 处理(Process)
- 调用LLM生成文本、翻译语言、回答问题或执行其他任务。
- 中间函数:对数据进行预处理、后处理或执行特定计算。
- 外部API调用:与其他服务交互以获取额外信息或执行特定操作。
- 这通常是LLM发挥作用的环节,可以是一个简单步骤,也可以是包含多个步骤的复杂链。
- 处理步骤可包括:……
- 处理流程的设计应遵循顺序方法,例如有向无环图(DAG),确保数据单向流动,提高系统可靠性。
- 输出(Output)
- LLM生成的输出,例如文本、代码、翻译或其他数据。
- 输出可存储在数据库中,显示在前端应用程序中,或用于触发其他操作。
- ETL侧重于知识数据的集成与预处理,目标是为分析和报告构建知识库。
- LLM应用流程侧重于利用LLM能力处理特定任务,例如文本生成、翻译、问答等。
关键设计模式:
- 责任链模式(Chain of Responsibility Pattern):将处理步骤拆解为独立模块,每个模块负责特定任务,并按顺序执行。
- 注册表模式(Registry Pattern):根据输入数据的类型或其他条件,动态选择并执行相应的处理管道。
示例:以电子邮件回复为例
如何将LLM应用流程构建成一个Agent?可包含以下步骤:
- 接收电子邮件:将多个文档放入大模型的对话框,使大模型接收到这些电子邮件。
- 分类邮件:使用LLM对电子邮件进行分类,例如确定其主题或意图。
- 生成回复:利用LLM根据邮件分类和预定义模板生成各自独立的回复。
- 发送回复:将生成的回复单独粘贴发送给发件人。
如此即使不用智能体,辅以人工操作也能完成。因此,带着LLM去思考,编写流程让LLM遵照执行,最终结果也不会偏差太大。
LLM提示词添加流程思维的优势显而易见:
- 简单性:将复杂任务拆解为简单步骤,更易于理解、实现与维护。
- 可靠性:顺序处理流程确保每个步骤按预期执行,减少错误和意外结果的可能性。
- 可扩展性:可轻松添加、删除或修改处理步骤,以适应不断变化的需求。
- 可控性:能对每个步骤进行监控和调试,更容易识别和解决问题。
将LLM应用流程设计为智能体流程,能大幅提升系统的可靠性、可扩展性与可控性,从而更高效地利用LLM解决实际问题。因此,面对AI时代,最核心的两件事就是:提示词的构建方法 + 工作流的设计思维。
初学者建议 - DAG (Directed Acyclic Graph)
若要学好工作流思维,可靠性是关键。顺序工作流程,即有向无环图(DAG),能确保数据仅沿一个方向流动。该方法消除了循环依赖,简化了调试与维护,同时提升了应用的整体稳定性。
什么是有向无环图 (DAG)?
有向无环图(DAG)是一种数据结构,由节点和边组成,其中边表示节点之间的方向性关系(这与Coze的教学理念很有关系?)。DAG的关键特征是不包含循环——从任何节点出发,沿着边的方向行进,都无法回到起点。
在构建可靠的LLM应用时,DAG常被用于设计数据处理流程,即数据管道。由于DAG的无环特性,可以确保数据流为单向,从而提高系统的可靠性。
对DAG特性的进一步解释:
- 有向:DAG中的每条边都有明确的方向,指示数据流动的路径。
- 无环:DAG中不存在任何循环路径,数据不能沿边循环流动。
- 节点:节点代表数据处理步骤或阶段。
- 边:边表示节点之间的依赖关系,指明数据从一个节点流向另一个节点的顺序。
使用DAG设计数据管道的好处:
- 可靠性:DAG的无环特性确保每个处理步骤依赖于其前序步骤的完成,避免循环依赖和潜在的死锁问题。
- 可理解性:DAG提供了数据处理流程的清晰可视化表示,易于理解与维护。
- 可扩展性:可轻松向DAG添加或删除节点和边,以适应不断变化的需求。
DAG是一种强大的数据结构,可用于构建可靠、可扩展且易于理解的数据处理流程。在LLM应用中,DAG可作为设计提示词工作流的基础,从而提升LLM的整体回复质量与性能。在Agent应用中,DAG可以增加循环、批处理等节点,但DAG本身仍是新手学习工作流思维以及Agent的基础。
