## LLM基础应用框架评测对象 - Spring AI Alibaba(SAA) - Spring AI - LangChain4J - LangChain ## 多智能体框架评测对象 - LangGraph - Spring AI Alibaba Graph - AutoGen - CrewAI ## 第一部分:LLM基础应用框架 | - | SAA| Spring AI | LangChain4J | LangChain | |:-----|:-----|:-----|:-----|:-----| | 语言 | Java | Java | Java | Python | | 聊天模型 | ✅ | ✅ | ✅ | ✅ | | 嵌入模型 | ✅ | ✅ | ✅ | ✅ | | 图片、音视频模型 | ✅ | ✅ | ✅ | ✅ | | RAG | ✅ | ✅ | ✅ | ✅ | | 向量数据库 | ✅ | ✅ | ✅ | ✅ | | MCP | ✅ | ✅ | ✅ | ✅ | | 函数调用 | ✅ | ✅ | ✅ | ✅ | | 提示词模板 | ✅ | ✅ | ✅ | ✅ | | 聊天记忆 | ✅ | ✅ | ✅ | ✅ | | 模型评估 | ✅ | ✅ | ✅ | ✅ | > 💡SAA 在向量数据库的支持上扩展了 AnalyticDB (ADB)、OpenSearch,支持 Nacos MCP Registry,支持 Nacos 配置提示词模板,同时支持热更新。 ## 第二部分:与模型提供商之间的适配程度 > 打❌号的只能通过OpenAI API 兼容 | 对比项 | Open AI | Anthropic | 阿里百炼 | 百度千帆 | Xinference | |:-----|:-----|:-----|:-----|:-----|:-----| | SAA | ✅ | ✅ | ✅ | ✅ | ✅ | | Spring AI | ✅ | ✅ | ✅ | ✅ | ✅ | | LangChain4J | ✅ | ✅ | ✅ | ✅ | ✅ | | LangChain | ✅ | ✅ | ❌ | ✅ | ✅ | | AutoGen | ✅ | ✅ | ❌ | ❌ | ❌ | | CrewAI | ✅ | ✅ | ❌ | ❌ | ✅ | > 💡阿里百炼和百度千帆都是通过 langchain-openai 组件适配了 LangChain 框架,但是阿里百炼是残血版,**不支持多模态模型**,百度千帆则是**支持多模态模型的**。**AutoGen**和**CrewAI**对于模型提供商的支持在下文有详细说明。 ## 第三部分:可观测性(OpenTelemetry) **OpenTelemetry** 通常缩写为**OTel**,是一个开源的、厂商中立的可观测性框架,旨在实现遥测数据的标准化生成、收集和管理。遥测数据包括日志、指标和追踪,对于监控和理解软件系统的行为至关重要。 | Spring AI | SAA | LangChain4J | LangChain | AutoGen | CrewAI | |:-----|:-----|:-----|:-----|:-----|:-----| | ✅ | ✅ | ❌ | ✅ | ✅| ✅ | - **Spring AI**为其核心组件提供了指标和追踪能力,例如 ChatClient(包括 Advisor)、ChatModel、EmbeddingModel、ImageModel 和 VectorStore 等。 - **SAA**除了拥有**Spring AI**的能力,还提供了配套工具,无需额外编写代码,即可扇出至阿里云ARMS。 - **LangChain4J**提供了一系列**Listener**,通过 OTel 扇出数据,需要自行实现或借助三方工具。 - **LangChain**自带**LangSmith**,并且支持了OTel,仅需少量代码即可扇出数据。 - **AutoGen和CrewAI**官方均提供了对 OTel 的支持。 ## 第四部分:多智能体框架对比 #### 一、LangGraph - 开源协议:MIT - 语言:Python - 核心:使用图结构编排智能体,相比链式调用,能够应对更多场景、更复杂的任务。 - 亮点:内置 Checkpoint 和中断、持久化机制,在执行期间发生中断,恢复时可以从 Checkpoint 继续执行。适合通过**人工干预**保障执行过程的正确性,以及**长时间运行的任务**发生异常中断从 Checkpoint 恢复执行,而不必重新开始。 - 补充:官方的 LangGraph Platform 还提供了配套的 LangGraph Studio 用于开发智能体的 IDE,它支持可视化、交互和调试,还与 LangSmith 集成,以实现追踪、评估和提示工程。 - 模型:参见上文对于 LangChain 支持的模型提供商说明 > 💡LangGraph Platform 是**收费**的,适合企业部署的自托管版本仅支持 AWS。 #### 二、Spring AI Alibaba Graph - 开源协议:Apache 2.0 - 语言:Java - 亮点:LangGraph 的核心能力基本上都抄了 - 模型:参见上文对于 SAA 支持的模型提供商说明 官方原话:Spring AI Alibaba Graph 是社区核心实现之一,也是整个框架在设计理念上区别于 Spring AI 只做底层原子抽象的地方,Spring AI Alibaba 期望帮助开发者更容易的构建智能体应用。基于 Graph 开发者可以构建工作流、多智能体应用。**Spring AI Alibaba Graph 在设计理念上借鉴 LangGraph,因此在一定程度上可以理解为是 Java 版的 LangGraph 实现**,社区在此基础上增加了大量预置 Node、简化了 State 定义过程等,让开发者更容易编写对等低代码平台的工作流、多智能体等。 #### 三、AutoGen - 开源协议:MIT - 语言:Python、.NET - 核心:用多个智能体扮演不同的角色,让其更专注于细粒度的任务。使用团队去关联多个智能体,用消息作为团队成员之间的通信方式,让团队之间"沟通"并共同完成任务。 - 亮点:命令行代码执行器能够将Python代码块打包成1个文件,丢到 Docker 容器执行,或者在本机开启1个新的进程执行。这种方式更安全,也是 LangGraph 不具备的特性。除此之外,官方提供了一系列多智能体的设计模式,来辅助开发者设计与开发多智能体。AutoGen 还提供了一个免费的、本地化部署的 AutoGen Studio 可视化工具,旨在帮助开发团队快速原型化多智能体。 - 模型:OpenAI API 兼容的模型提供商、托管在 Azure 上的模型、Ollama、Anthropic,通过 SKChatCompletionAdapter 已适配的其它 LLM 提供商有:Google、MistralAI、AWS、Hugging Face。暂未支持阿里百炼和百度千帆平台,只能通过 OpenAI API 兼容。 官方提供了多种多智能体设计模式:Concurrent Agents(并发智能体)、Sequential Workflow(顺序工作流)、Group Chat(群聊)、Handoffs(交接,源自OpenAI Swarm)、Mixture of Agents(混合代理)、Multi-Agent Debate(多智能体辩论)、Reflection(反思)、Code Execution(代码执行) #### 四、Crew AI - 开源协议:MIT - 语言:Python - 核心:与 AutoGen 类似,也是用角色扮演和团队去组织多个智能体,也支持使用流程编排。 - 亮点:相比 AutoGen 来说 CrewAI 提供的 API 更精简、逻辑更清晰、代码语义更强,相比 LangGraph 更轻量。 - 模型:CrewAI 通过 LiteLLM 连接到 LLM 提供商,暂未适配阿里百炼和百度千帆平台,只能通过 OpenAI API 兼容。 [点击查看 LiteLLM 支持的模型提供商](https://docs.litellm.com.cn/docs/providers),[点击查看对于 Xinference 的支持说明](https://docs.litellm.com.cn/docs/providers/xinference) ## 总结 如果语言倾向于Java,则 SAA(Graph)更适合作为多智能体开发框架。从图结构的编排和团队及其角色扮演的2种架构设计来看,AutoGen 和 CrewAI对于开发人员和使用者来说,心智负担更低,基于团队、成员(角色扮演)会比图的方式,更明确地规划智能体工作内容和任务目标。CrewAI 相比 AutoGen 来说,使用更为简单,上手更容易一些。 ## 参考资料 - SAA 官网:https://java2ai.com - Spring AI 官方文档:https://docs.springframework.org.cn/spring-ai/reference/index.html - LangChain4J 官方文档:https://docs.langchain4j.info/get-started - LangChain 官方文档:https://python.langchain.ac.cn/docs/introduction - 使用 OpenTelemetry 跟踪 LangChain:https://langsmith.langchain.ac.cn/observability/how_to_guides/trace_langchain_with_otel - 使用 OpenTelemetry 客户端将记录到 LangSmith:https://langsmith.langchain.ac.cn/observability/how_to_guides/trace_with_opentelemetry - Spring AI 可观测性:https://docs.springframework.org.cn/spring-ai/reference/observability/index.html - Spring AI 对于聊天模型可观测性的支持说明:https://docs.springframework.org.cn/spring-ai/reference/observability/index.html#_chat_model - 阿里百炼对于 LangChain 的适配:https://help.aliyun.com/zh/model-studio/use-bailian-in-langchain - 百度千帆对于 LangChain 的适配:https://cloud.baidu.com/doc/qianfan-docs/s/Mm9cr5bs6 - LangGraph 官方文档:https://github.langchain.ac.cn/langgraph/ - LangGraph Platform 官方文档:https://github.langchain.ac.cn/langgraphjs/concepts/langgraph_platform/ - LangGraph Platform 定价说明:https://langchain.ac.cn/pricing-langgraph-platform - LangGraph Studio 使用说明:https://github.langchain.ac.cn/langgraphjs/concepts/langgraph_studio/ - AutoGen 官方文档:https://msdocs.cn/autogen/stable/user-guide/core-user-guide/quickstart.html - AutoGen 运行时环境:https://msdocs.cn/autogen/stable/user-guide/core-user-guide/core-concepts/architecture.html - AutoGen 主题和订阅(消息传递):https://msdocs.cn/autogen/stable/user-guide/core-user-guide/core-concepts/topic-and-subscription.html - AutoGen 多智能体设计模式:https://msdocs.cn/autogen/stable/user-guide/core-user-guide/design-patterns/intro.html - AutoGen Studio 使用教程:https://www.aidoczh.com/autogen/stable/user-guide/autogenstudio-user-guide/index.html - CrewAI 官方文档:https://docs.crewai.org.cn/introduction - CrewAI Github地址:https://github.com/crewAIInc/crewAI ## 视频教程 - AutoGen:https://www.bilibili.com/video/BV1WJ4m137dk - CrewAI:https://www.bilibili.com/video/BV1GZ42147am