Spring AI Alibaba框架简介

前言:Spring AI Alibaba 是基于 Spring AI 构建的,专门针对阿里云生态(如通义千问、OSS 等)进行深度适配和功能增强。Spring AI Alibaba 提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。2025年6月13日,Spring AI Alibaba 在前段时间也发布了第一个 GA(General Availability,正式发布版) 版  1.0.0.2,这是第一个 GA 版本。


一、什么是 Spring AI Alibaba?

Spring AI Alibaba 是一款以 Spring AI 为基础,深度集成百炼平台,支持 ChatBot、工作流、多智能体应用开发模式的 AI 框架。

图片

在 1.0 版本中,Spring AI Alibaba 提供以下核心能力,让开发者可以快速构建自己的 Agent、Workflow 或 Multi-agent 应用。

1.1. Graph 多智能体框架。

基于 Spring AI Alibaba Graph,开发者可快速构建工作流、多智能体应用,无需关心流程编排、上下文记忆管理等底层实现。通过 Graph 与低代码、自规划智能体结合,为开发者提供从低代码、高代码到零代码构建智能体的更灵活选择。

1.2. 通过 AI 生态集成,解决企业智能体落地过程中关心的痛点问题。

Spring AI Alibaba 支持与百炼平台深度集成,提供模型接入、RAG 知识库解决方案;支持 ARMS、Langfuse 等可观测产品无缝接入;支持企业级的 MCP 集成,包括 Nacos MCP Registry 分布式注册与发现、自动 Router 路由等。

1.3. 探索具备自主规划能力的通用智能体产品与平台。

社区发布了基于 Spring AI Alibaba 框架实现的 JManus 智能体,除了对标 Manus 的通用智能体能力外,我们的目标是基于 JManus 探索自主规划在智能体开发方向的应用,为开发者提供从低代码、高代码到零代码构建智能体的更灵活选择。


二、Spring AI Alibaba 提供的主要功能如下

  • 开发复杂 AI 应用的高阶抽象 Fluent API — ChatClient。

  • 提供多种大模型服务对接能力,包括主流开源与阿里云通义大模型服务(百炼)等。

  • 支持的模型类型包括聊天、文生图、音频转录、文生语音等。

  • 支持同步和流式 API,在保持应用层 API 不变的情况下支持灵活切换底层模型服务,支持特定模型的定制化能力(参数传递)。

  • 支持 Structured Output,即将 AI 模型输出映射到 POJOs。

  • 支持矢量数据库存储与检索。

  • 支持函数调用 Function Calling。

  • 支持构建 AI Agent 所需要的工具调用和对话内存记忆能力。

  • 支持 RAG 开发模式,包括离线文档处理如 DocumentReader、Splitter、Embedding、VectorStore 等,支持 Retrieve 检索等。

  • 支持 MCP 调用。


三、Spring AI Alibaba V1.0.0.2正式版发布

2025年6月13日,Spring AI Alibaba 发布了第一个 GA(General Availability,正式发布版) 版  1.0.0.2,这是第一个 GA 版本! Spring AI Alibaba 支持 ChatBot、Workflow 和 Multi-agent(多智能体)应用程序的开发。

主要特点

  1. 全面框架集成:无缝连接阿里巴巴服务,包括百炼的 Dashscope,支持 Qwen 和 Deepseek 等各种主流 AI 模型。

  2. 多智能体框架:基于图的多代理框架:受 Langgraph 的启发,Spring AI Alibaba Graph 可以轻松构建工作流和多代理应用程序。

  3. 企业级 AI 代理解决方案

    • Nacos MCP 注册表。

    • 分布式 MCP 发现和负载均衡。

    • 动态 API 到 MCP 代理。

    • NL2SQL 用于将自然语言查询转换为 SQL 语句。

    • 可观察性。


四、开启 Spring AI Alibaba 1.0 之旅

随着 Spring AI 1.0 GA 版本的发布,Java 智能体开发迎来了一款具备完整官方支持、生产可用的编程框架,Java 智能体开发进入新时代。

在底层原子抽象能力上,Spring AI Alibaba 支持 Spring AI 的所有核心能力,并在此基础上提供了大量适配实现与最佳实践。以下是 Spring AI 核心定义列表:

  • 提示(Prompt)

  • 模型增强(The Augmented LLM)

  • 顾问(Advisors)

  • 检索(Retrieval)

  • 记忆(ChatMemory)

  • 工具(Tool)

  • 评估(Evaluation)

  • 可观测性(Observability)

  • 模型上下文协议(MCP)

  • MCP 客户端

  • MCP 服务器

  • MCP 和安全

4.1 Multi-agent 多智能体框架

Graph 是 Spring AI Alibaba 社区核心实现之一,也是整个框架在设计理念上区别于 Spring AI 只做底层原子抽象的地方,Spring AI Alibaba 期望帮助开发者更容易地构建智能体应用。基于 Spring AI Alibaba Graph 开发者可以构建工作流、多智能体应用。Spring AI Alibaba Graph 在设计理念上借鉴 LangGraph,因此在一定程度上可以理解为是 Java 版的 LangGraph 实现,社区在此基础上增加了大量预置 Node、简化了 State 定义过程等,让开发者更容易编写对等低代码平台的工作流、多智能体等。

Spring AI Alibaba Graph 核心能力:

  • 支持 Multi-agent,内置 ReAct Agent、Supervisor 等常规智能体模式

  • 支持工作流,内置工作流节点,与主流低代码平台对齐

  • 原生支持 Streaming

  • Human-in-the-loop,通过人类确认节点,支持修改状态、恢复执行

  • 支持记忆与持久存储

  • 支持流程快照

  • 支持嵌套分支、并行分支

  • PlantUML、Mermaid 可视化导出

关于 Graph 的具体使用方式,请关注官网文档更新。在下文中我们会介绍官方发布的 基于 Spring AI Alibaba 实现的通用智能体平台,您可以把这些官方智能体实现当作 Graph 的最佳应用实践。

4.2 工作流(Workflow)

工作流是以相对固化的模式来人为地拆解任务,将一个大任务拆解为包含多个分支的固化流程。工作流的优势是确定性强,模型作为流程中的一个节点起到的更多是一个分类决策的职责,因此它更适合意图识别等类别属性强的应用场景。工作流也有明显的劣势,它要求开发人员对业务流程有深刻的理解,整个流程是由人绘制的,模型在其中更多的只是内容生成、总结、分类识别的作用,并不能最大化利用模型的推理能力,因此很多人诟病这种模式是不够智能的。

应用 Spring AI Alibaba Graph 可以轻松开发工作流,声明不同的节点,并将节点串联成一个流程图。

图片

值得注意的是,Spring AI Alibaba Graph 中提供大量预置节点,这些节点可以对标到市面上主流的如 Dify、百炼等低代码平台,典型节点包括 LlmNode(大模型节点)、QuestionClassifierNode(问题分类节点)、ToolNode(工具节点)等,为用户免去重复开发、定义的负担,只需要专注流程串联。

以上是一个可视化绘制的“用户评价分类系统”工作流,对应 Spring AI Alibaba Graph 代码如下所示:

StateGraph stateGraph = new StateGraph("Consumer Service Workflow Demo", stateFactory)
      .addNode("feedback_classifier", node_async(feedbackClassifier))
      .addNode("specific_question_classifier", node_async(specificQuestionClassifier))
      .addNode("recorder", node_async(new RecordingNode()))

      .addEdge(START, "feedback_classifier")
      .addConditionalEdges("feedback_classifier",edge_async(new CustomerServiceController.FeedbackQuestionDispatcher()),Map.of("positive", "recorder", "negative", "specific_question_classifier"))
      .addConditionalEdges("specific_question_classifier",edge_async(new CustomerServiceController.SpecificQuestionDispatcher()),Map.of("after-sale", "recorder", "transportation", "recorder", "quality", "recorder", "others","recorder"))
      .addEdge("recorder", END);

这段代码是使用某种工作流(或状态机)框架定义一个消费者服务的工作流程。它创建了一个名为 StateGraph 的对象,描述了处理客户反馈的多个节点之间的流转逻辑。

下面是对代码逐行解释:

(1)初始化 StateGraph
StateGraph stateGraph = new StateGraph("Consumer Service Workflow Demo", stateFactory)
  • 创建了一个 StateGraph 实例,表示一个有向状态图。

  • 构造函数接受两个参数:

    • "Consumer Service Workflow Demo":这个工作流的名称或标识。

    • stateFactory:用于创建状态节点的工厂对象。

(2)添加节点(Nodes)

接下来的 .addNode(...) 方法添加了三个异步执行的节点(node),每个节点封装了一个业务逻辑组件。

.addNode("feedback_classifier", node_async(feedbackClassifier))
  • 添加一个名为 "feedback_classifier" 的节点。

  • node_async(feedbackClassifier) 表示该节点以异步方式运行,并传入 feedbackClassifier 处理器。

  • 这个节点的作用可能是判断用户反馈是正面还是负面。

.addNode("specific_question_classifier", node_async(specificQuestionClassifier))
  • 添加名为 "specific_question_classifier" 的节点。

  • 它会进一步分类用户的负面反馈问题类型(比如售后、运输、质量等)。

.addNode("recorder", node_async(new RecordingNode()))
  • 添加名为 "recorder" 的节点。

  • 这个节点可能负责记录最终的反馈信息或将数据持久化。

(3)添加边(Edges)

接下来的 .addEdge(...).addConditionalEdges(...) 方法定义了这些节点之间的流转路径。

1. 起始点到第一个节点
.addEdge(START, "feedback_classifier")
  • 从流程的起始点(START)跳转到 "feedback_classifier" 节点。

  • 表示整个流程开始时首先进入反馈分类阶段。

2. 条件分支 —— 根据反馈分类结果决定下一步
.addConditionalEdges(
    "feedback_classifier",
    edge_async(new CustomerServiceController.FeedbackQuestionDispatcher()),
    Map.of("positive", "recorder", "negative", "specific_question_classifier")
)
  • 在 "feedback_classifier" 节点之后,根据其输出结果选择下一步要跳转的节点。

  • edge_async(...) 使用了一个异步的条件判断器 FeedbackQuestionDispatcher

  • 如果返回 "positive",则跳转到 "recorder"

  • 如果返回 "negative",则跳转到 "specific_question_classifier"

3. 更细粒度的条件分支 —— 具体问题分类后的处理
.addConditionalEdges(
    "specific_question_classifier",
    edge_async(new CustomerServiceController.SpecificQuestionDispatcher()),
    Map.of(
        "after-sale", "recorder",
        "transportation", "recorder",
        "quality", "recorder",
        "others", "recorder"
    )
)
  • 在 "specific_question_classifier" 节点后,通过 SpecificQuestionDispatcher 判断具体的问题类别。

  • 不论是售后、运输、质量还是其他类型的问题,都会统一跳转到 "recorder" 节点进行记录。

4. 结束节点
.addEdge("recorder", END);
  • 所有流程最后都到达 "recorder" 节点。

  • 然后从 "recorder" 节点流向 END,表示整个流程结束。

5.总结流程图结构
[START]
   │
   ▼
[feedback_classifier] → positive → [recorder] → END
           ↓
         negative
           ↓
[specific_question_classifier] → (after-sale/transportation/quality/others) → [recorder] → END
6.术语说明
  • node_async(...):将一个处理器包装为异步节点。

  • edge_async(...):将一个决策器包装为异步的条件边。

  • START / END:预定义的特殊节点,表示流程的起点和终点。

  • Map.of(...):定义条件与目标节点的映射关系。

7.应用场景

这类代码常见于构建 自动化客服系统智能工单路由系统,可以根据用户输入动态地路由到不同的处理模块,最终完成记录、响应或分配任务。


参考链接:

Spring AI Alibaba 1.0 GA 正式发布,Java智能体开发进入新时代

阿里出手了:SpringAIAlibaba正式版发布!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI何哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值