LLM应用编排框架概览和功能分析

2022年底OpenAI的ChatGPT火爆出圈后,大模型领域相关的大工具、平台和应用纷纷涌现,大量开发者围绕LLM产生了很多新的创意和生态,短短不到2年,出现了大量优秀的大模型编排工具和框架,其中绕不开的一定是LangChain(一个简化LLM应用开发的Python开源工具库,这篇概念性介绍基本涵盖了目前LLM应用开发涉及的技术概念和知识点,非常值得阅读了解)。这里基于对LLM应用开发和相关技术点有一定了解后,分析和对比目前市面上开源和闭源的LLM应用可视化编排的方案,从中可以查看一些异同点,有助于使用这些应用平台甚至是开发一个类似的编排应用平台。
(以下内容是基于2024-10-21号之前各个产品的已有功能,个人体验后总结的,AI工具和平台生态还在快速迭代中,不代表后续观点)

LLM应用编排的定义

利用LLM相关基础设施(向量数据库,大模型运行时),结合具体场景和业务(客服、运维、数据分析等)领域知识,编排出大模型为核心的Agent智能体。这种智能体可以有效发挥大模型的技术优势(多模态理解、问题分析和推理、自然语言处理等),根据任务的输入,可以自主/半自主方式使用合适的工具来完成目标任务,实现更具智能化的信息处理和决策。

LLM编排框架概览

特性/产品 字节Coze 阿里百炼 百度千帆AppBuilder Dify Flowise Langflow
开源协议 不适用 不适用 不适用 MIT许可证(有限商用) MIT许可证 MIT许可证
技术栈 未知 未知 未知 Python、FastAPI、PostgreSQL等 Node.js、React Python、LangChain、FastAPI等
功能优势 强大的数据处理能力
集成多种AI模型
支持大规模应用部署
丰富的API接口
强大的数据分析能力
易于集成企业级应用
友好的用户界面
多种模板支持
快速构建和迭代
模块化设计
支持多种数据源集成
易于扩展和定制化
灵活的节点编辑器
实时预览和调试
强大的自动化功能
可视化工作流设计
模块化组件组合
支持多种模型框架集
易用度排名 1 2 2 1 3 3
完善度排名 1 2 2 1 3 3

此处的排名仅仅是我个人初步体验下来的感受,仅个人视角,多个产品都处于快速开发迭代中,后续还需要持续关注。
易用度从UI的交互,概念的解释和可操作性考虑
完善度从产品功能设计、编排示例、调试监控等维度考虑

平台功能完善,产品逻辑清晰,易用度高,对新手门槛低,应用市场中也有大量用户编排和分享的助手,是目前我体验到的同类产品中综合来看最好的。
LLM应用编排框架分析对比.png
LLM应用编排框架分析对比-1.png

LLM应用编排框架分析对比-2.png
LLM应用编排框架分析对比-3.png

LLM应用编排框架分析对比-4.png
LLM应用编排框架分析对比-5.png

开源社区LLM编排应用中最热门和完善的框架,实际体验下来确实比Flowise和LangFlow要直观和易用,功能更完善,目前商业化方向为Cloud版本和企业级应用编排。但受限于开源协议,商用情况需要体现Dify商标,并且多租户情况需要额外获取商业授权,这个在商用场景下需要额外注意。

LLM应用编排框架分析对比-6.png

Flowise试用下来的优点是将LangChain库装配Agent的过程做了用户友好的可视化,我使用Flowise快速搭建了一个RAG助手。
这个优点同时也是缺点,这种可视化装配的方式具有消息流传递的迷惑性,实际上各个节点之间不存在消息的流动,只是将表单中组合关系形式做了个图谱方式展示,这种交互方式延续到AgentFlow(Multi-Agents和Sequential Agents编排)这个新特性时,我已经无法分清哪些节点之间是在装配Agent,哪些节点之间是消息流了
LLM应用编排框架分析对比-7.png
LLM应用编排框架分析对比-8.png

Langflow的可视化编排对比Flowise有相同点都是画布上节点连线实现Agent灵活装配,但通过连接点的颜色来区分了装配点还是消息点,有效解决了消息流与装配关系在同一工作流画布的迷惑性。
编排了个案例,体验下来可以做到类似Coze和Dify这类基于消息流的编排功能,但操作易用性不足,消息和数据的概念需要提前理解和消化,门槛较高;RAG应用的知识库加载和配置也同样在画布,使用上没那么直观。
Langflow最大的优点是可以快捷编辑节点的Python代码逻辑,这样可以快速定制和扩展逻辑节点。查看Langflow工作流导出的元数据中,其中包含了每个节点的Python源码,这样可以快速共享和分发配置好的工作流,但同时,这个也增加了黑客攻击的风险,特别是涉及于关键系统数据交互时。
LLM应用编排框架分析对比-9.png
LLM应用编排框架分析对比-10.png

LLM应用编排框架分析对比-11.png

编排功能分析

体验并对比上述编排产品后,可以总结出以下的共性功能:

  1. 拖拽式的低代码编排
  2. LLM配套的基础功能:记忆、知识库、工具等
  3. 会话调试和监控统计

智能体

对比多个编排平台,智能体的编排都分为以下3种类型(此处使用Coze的定义),只是在不同平台称呼不同,创建的方式有一些差异。

单Agent(LLM模式)

适用于简单对话类场景,主要由以下几个模块组成:

  1. 系统提示词:定义Agent的角色,能力(工具)

  2. 配套设施:工具、知识库、记忆等

配图为Coze的LLM模式交互页面

LLM应用编排框架分析对比.png

单Agent(工作流模式)

适用于技能非常明确的场景,通过在流程中拆解任务,编排LLM使得对话过程和输出更可控,或者是在流程中与LLM进行多轮交互,实现长文本生成(第一个LLM生成大纲,后续多个LLM逐步完善文章)等LLM模式无法满足的场景。
前端UI都是基于拖拽式的低代码交互方式,降低用户使用门槛,方便业务快速定制和灵活修改。
配图为Coze的工作流模式编排页面

LLM应用编排框架分析对比-1.png

多Agent模式

多Agent模式的目的是组织多个智能体实现任务协作,满足并解决用户复杂任务的场景。
Flowise Multi-Agent中介绍了一个典型的AI员工的场景:一个主管Agent领导多个员工Agent,规划和分配任务,完成行业数据调查和分析,最终组织成报告发送邮件的示例。
多Agent模式更具自主性,但效果也不可控,更多依赖于LLM的自身能力和提示词的约束,所以实际应用可能还待大模型技术的后续发展。
2024-10-21-llm-agent-workflow-frameworks.png

工具

工具用于扩展LLM的能力,利用了LLM的Function Call特性,让LLM自主判断并选择适合的工具,实现AI驱动的一种方式。对应在Coze的插件,阿里百炼应用中的插件,和百度千帆的组件,Dify中的工具

工具通常是单个API请求(如Web搜索,空气查询等开放API)封装的;涉及复杂业务场景下需要多个步骤时,单个API请求无法满足,工作流编排可以实现复杂且稳定的业务流程。

工具的相关功能需求:

  1. 我的工具:方便用户自定义工具,有两种工具类型,单API方式和工作流方式

  2. 工具市场:共享复用的工具,也可以快速基于已有工具快捷创建

知识库

知识库通过将文档分片、向量化等预处理操作后,用于后续LLM聊天时进行召回,这块预处理操作大多是与聊天异步完成的,因此常见的是设计成单独的管理模块,在编排LLM助手时配置使用即可,这个也是多数编排框架应用的设计思路(Langflow例外,是直接在编排画布中同时配置的)。

应用管理

编排的应用通过调试测试后可以发布成一个应用,发布后的应用可以方便的集成到其他系统中,支持多种方式,如API、Webhook、SDK或者页面集成聊天组件等方式。
通过编排平台发布应用后,可以方便的查看应用的运行情况,包括运行日志、错误信息、数据监控等。

以往业务工作流编排框架的异同

以往成熟的业务工作流编排框架也有很多,如广泛应用在IoT领域的Node-Red, 在自动化和集成领域的N8n, 以及在数据科学和机器学习领域的Apache Airflow等。
与Node-Red相比,LLM智能体编排框架更注重对话管理和自然语言处理能力的集成,而Node-Red主要侧重于物联网设备的数据流处理和事件驱动编程。Apache Airflow主要用于数据处理工作流的管理,虽然可以集成LLM智能体,但其主要设计目标是数据处理和机器学习工作流的管理。应用在更通用场景的N8n则在其原有特性上,增加了更多AI相关的能力,也同样实现了Chatbot的编排,可见LLM智能体编排与以往的业务编排框架大致方向是一致的,利用低代码的方式和方便扩展的机制,快速实现任务自动化、数据流转、系统集成等功能,如今叠加上LLM的AI能力,可以实现更多智能化操作。

总结

对比体验下来,个人觉得Coze是ToC市场上目前综合来看最好的LLM编排产品,Dify是开源社区里体验和完善度最高的产品,大模型技术的出现拯救了一波这类拖拽式的低代码工具,极大缓解了程序员看不上,小白用户不会用的尴尬处境。