前言

Spring AI在2024年2月发布了第一个公开可用版本。从此Java有了官方支持的AI框架,相对于LangChain4J,Spring AI天生建立在Spring的基础上,与Spring和SpringBoot的结合更加的紧密。

2024年9月,阿里云开源了Spring AI Alibaba,这个项目已经发布了1.0 GA正式版,并在阿里双11核心系统中验证,支持每秒百万级智能体交互,平均决策延迟控制在8ms以内。

一、Spring AI Alibaba是什么?

Spring AI,它是Spring官方推出的AI应用开发框架。而Spring AI Alibaba,则是阿里云在Spring AI基础上做的增强版。

根据官方博客介绍,Spring AI Alibaba的开源团队正是当年开源Apache Dubbo和Spring Cloud Alibaba的同一批人。

他们深刻理解应用开发框架对加速开发所起到的不可替代的作用。

2023-2024年期间,LangChain和Dify为开发者们提供了极大便利,但彼时仍缺少一个专门面向Java开发者的AI应用开发框架。

阿里团队确信,Java开发者是AI应用生态不可或缺的群体,能加速AI在各行业的落地。

幸运的是,Spring AI在2024年2月发布了第一个公开可用版本。

阿里团队基于Spring AI向上做了抽象和功能增强,在2024年9月开源了Spring AI Alibaba,希望借助本地化服务和阿里实践经验,更好地服务Java开发者。

一句话定位:连接企业的数据和API与AI模型,帮助Java开发者快速构建AI智能体应用的企业级框架。

二、Spring AI Alibaba vs Spring AI区别

这是大家最关心的问题。

根据官方文档,两者的定位和核心能力有显著差异:

定位不同

对比维度

Spring AI

Spring AI Alibaba

定位

AI应用开发的底层框架

AI智能体开发框架

核心目标

提供AI开发的原子能力抽象

帮助开发者更容易构建智能体应用

类比

LangChain

LangChain + LangGraph

关注点

模型接入、工具定义、向量数据库访问

工作流编排、多智能体协作、生产落地

功能对比

功能维度

Spring AI

Spring AI Alibaba

Spring Boot集成

原生支持

原生支持,更深度

多智能体支持

❌ 不支持

✅ Graph框架支持

工作流编排

❌ 不支持

✅ 内置工作流节点

提示词管理

硬编码

✅ Nacos配置中心动态管理

MCP分布式部署

基础支持

✅ Nacos MCP Registry

可观测性

基础埋点

✅ ARMS深度集成

开发效率组件

较少

✅ 调试工具、代码生成

示例丰富度

较少

✅ 官方Playground完整示例

架构对比

简单来说,Spring AI是LangChain,Spring AI Alibaba是LangChain + LangGraph

三、框架解析

3.1 架构解析

理解Spring AI Alibaba的架构,是掌握它的关键。

根据官方文档,它采用了四层模块化架构:

3.2 GraphCore:工作流运行时引擎

GraphCore是Spring AI Alibaba的核心底层,基于有向无环图(DAG)的工作流执行引擎。它包含几个关键组件:

StateGraph:声明式构建工作流

StateGraph<MyState> graph = new StateGraph<>(MyState.class)

    .addNode("step1", node1)

    .addNode("step2", node2)

    .addEdge("step1", "step2")

    .addConditionalEdge("step2", condition)

    .build();

    CheckpointSaver:状态持久化,支持内存、PostgreSQL、Redis、文件系统等多种后端

    3.3 AgentFramework:智能体抽象层

    这一层提供了开箱即用的智能体模式:

    组件

    描述

    适用场景

    ReactAgent

    基础ReAct模式智能体

    通用对话任务

    SequentialAgent

    顺序执行多个Agent

    流水线处理

    ParallelAgent

    并行执行多个Agent

    并发任务处理

    SupervisorAgent

    监督者模式,协调多个子Agent

    复杂任务调度

    LoopAgent

    循环执行直到满足条件

    迭代优化任务

    3.4 Graph多智能体框架:最大的差异化

    Spring AI Alibaba最核心的差异化能力是Graph多智能体框架

    这是Spring AI本身不具备的。

    基于Graph,开发者可以轻松构建:

    • 工作流(Workflow):以相对固化的模式拆解任务,确定性强

    • 多智能体(Multi-agent):多个子智能体间通过通信协作完成复杂任务

    Graph内置了大量预置节点,与主流低代码平台对齐:

    节点类型

    功能

    使用场景

    LlmNode

    大模型节点

    内容生成、总结

    QuestionClassifierNode

    问题分类节点

    意图识别

    ToolNode

    工具节点

    函数调用

    HumanNode

    人工确认节点

    人机协同

    BranchNode

    分支节点

    条件路由

    ParallelNode

    并行节点

    并发执行

    官方数据显示:使用Spring AI Alibaba Graph,开发者可以把MultiAgent实现时间从5天压缩到5小时。

    3.5 企业级MCP集成

    Spring AI Alibaba MCP Gateway基于Nacos提供的MCP server registry实现,为普通应用建立一个中间代理层。

    核心能力

    • 将Nacos中注册的服务信息转换成MCP协议的服务器信息

    • 实现协议转化,将MCP协议转换为对后端HTTP、Dubbo等服务的调用

    • 无需对原有业务代码进行改造,新增或删除MCP服务无需重启代理应用

    3.6 分布式多智能体支持

    Spring AI Alibaba与Nacos协同发布了分布式Multi-Agent构建方案。

    从2025年10月开始,Nacos 3.1.0引入了A2A(Agent-to-Agent)注册中心功能,提供轻量化的Agent服务注册与发现能力。

    为什么需要分布式多智能体?

    1. 组织协同困难:交易智能体和搜索智能体更适合由不同团队独立维护

    2. 可用性难保证:所有智能体共享同一进程资源,一个出问题可能导致全部不可用

    3. 存在安全风险:内存与上下文共享导致权限边界模糊

    基于Spring AI Alibaba + Nacos,开发者可以像构建微服务一样构建分布式Multi Agent系统,实现智能体弹性伸缩与跨团队解耦。

    3.7 生态集成

    Spring AI Alibaba深度集成了阿里云的企业级基础设施:

    1. 百炼平台集成:提供RAG知识库管理、模型服务调用

    2. Nacos MCP Registry:支持MCP Server分布式部署与负载均衡

    3. ARMS可观测性:自动埋点,兼容OpenTelemetry

    4. Higress AI网关:提供模型代理、流量管控

    5. 析言ChatBI:自然语言到SQL自动生成

    四、快速上手实战

    4.1 环境搭建

    在pom.xml中添加依赖:

    <properties>
    
        <java.version>21</java.version>
    
        <spring-ai-alibaba.version>1.0.0.2</spring-ai-alibaba.version>
    
    </properties>
    
    
    <dependencies>
    
        <dependency>
    
            <groupId>com.alibaba.cloud.ai</groupId>
    
            <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
    
            <version>${spring-ai-alibaba.version}</version>
    
        </dependency>
    
        <dependency>
    
            <groupId>org.springframework.boot</groupId>
    
            <artifactId>spring-boot-starter-web</artifactId>
    
        </dependency>
    
    </dependencies>
    
    
    <repositories>
    
        <repository>
    
            <id>spring-milestones</id>
    
            <url>https://repo.spring.io/milestone</url>
    
        </repository>
    
    </repositories>

      在application.yml中配置API Key:

      spring:
      
        ai:
      
          dashscope:
      
            api-key: ${AI_DASHSCOPE_API_KEY}
      
      server:
      
        port: 8080
        4.2 基础对话接口
        @RestController
        
        @RequestMapping("/api/ai")
        
        publicclass AIController {
        
            
        
            privatefinal ChatClient chatClient;
        
            
        
            public AIController(ChatClient.Builder builder) {
        
                this.chatClient = builder.build();
        
            }
        
            
        
            @GetMapping("/chat")
        
            public String chat(@RequestParam String message) {
        
                return chatClient.prompt()
        
                        .user(message)
        
                        .call()
        
                        .content();
        
            }
        
        }

          只需这几行代码,一个AI对话接口就完成了!

          4.3 流式响应
          @GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
          
          public Flux<String> stream(@RequestParam String message) {
          
              return chatClient.prompt()
          
                      .user(message)
          
                      .stream()
          
                      .content();
          
          }

            4.4 函数调用(Tool Calling)

            通过@Tool注解,让AI可以调用你的Java方法:

            @Component
            
            publicclass WeatherService {
            
                
            
                @Tool(description = "根据城市名称查询天气")
            
                public String getWeather(@ToolParam(description = "城市名称") String city) {
            
                    // 调用天气API
            
                    return weatherApi.get(city);
            
                }
            
            }
            
            
            @RestController
            
            @RequestMapping("/api/ai")
            
            publicclass ToolController {
            
                
            
                privatefinal ChatClient chatClient;
            
                privatefinal WeatherService weatherService;
            
                
            
                public ToolController(ChatClient.Builder builder, WeatherService weatherService) {
            
                    this.chatClient = builder.build();
            
                    this.weatherService = weatherService;
            
                }
            
                
            
                @GetMapping("/weather")
            
                public String weather(@RequestParam String city) {
            
                    return chatClient.prompt()
            
                            .user("查询" + city + "的天气")
            
                            .tools(weatherService)
            
                            .call()
            
                            .content();
            
                }
            
            }
              4.5 RAG智能问答

              基于向量检索的增强生成示例:

              
              

              AI写代码go运行

              4.6 智能体(Agent)开发

              使用AgentFramework构建智能体:

              
              
              @Bean
              
              public VectorStore vectorStore() {
              
                  MilvusVectorStore store = new MilvusVectorStore();
              
                  store.setCollectionName("qa_knowledge");
              
                  store.setDimension(768);
              
                  return store;
              
              }
              
              
              @PostMapping("/search")
              
              public String search(@RequestParam String query) {
              
                  // 向量检索
              
                  List<Document> docs = vectorStore.similaritySearch(
              
                      SearchRequest.query(query).withTopK(3)
              
                  );
              
                  
              
                  String context = docs.stream()
              
                      .map(Document::getContent)
              
                      .collect(Collectors.joining("\n\n"));
              
                  
              
                  return chatClient.prompt()
              
                      .system("基于以下资料回答问题:" + context)
              
                      .user(query)
              
                      .call()
              
                      .content();
              
              }

              @Agent
              
              publicclass OrderProcessingAgent {
              
                  
              
                  @Autowired
              
                  private InventoryAgent inventoryAgent;
              
                  
              
                  @Autowired
              
                  private PaymentAgent paymentAgent;
              
                  
              
                  @Action
              
                  public OrderResult handle(OrderRequest request) {
              
                      // 1. 检查库存
              
                      if (!inventoryAgent.checkStock(request.getProductId(), request.getQuantity())) {
              
                          return OrderResult.failed("库存不足");
              
                      }
              
                      
              
                      // 2. 处理支付
              
                      PaymentResult payment = paymentAgent.process(request.getAmount());
              
                      if (!payment.isSuccess()) {
              
                          return OrderResult.failed("支付失败");
              
                      }
              
                      
              
                      // 3. 扣减库存
              
                      inventoryAgent.deduct(request.getProductId(), request.getQuantity());
              
                      
              
                      return OrderResult.success("订单创建成功");
              
                  }
              
              }

              五、架构全景图

              六、优缺点与使用场景

              优点
              1. Java生态深度融合:与Spring Boot、Spring Cloud无缝集成,复用现有开发经验

              2. 多智能体编排能力:Graph框架支持工作流和多智能体,这是Spring AI不具备的

              3. 企业级特性完备:分布式MCP、可观测性、动态配置管理、权限控制

              4. 国产化支持:深度适配通义千问、DashScope等国内模型和服务

              5. 性能卓越:阿里双11核心系统验证,百万级智能体交互,8ms延迟

              6. 开发效率高:预置节点、代码生成工具、官方Playground示例

              缺点
              1. 学习曲线:需要理解Graph、工作流、多智能体等概念

              2. Java版本要求:需要JDK 17+

              3. 与阿里云耦合:部分功能依赖阿里云服务(但核心Graph框架可独立使用)

              4. 框架相对较重:相比轻量级方案有更多依赖

              适用场景

              强烈推荐使用

              • 已有Spring Boot/Spring Cloud技术栈的企业

              • 需要构建工作流或多智能体应用的项目

              • 对可观测性、配置管理有要求的企业级应用

              • 数据安全要求高、需要私有化部署的场景

              • 需要RAG知识库、NL2SQL等企业级能力的项目

              不适合的场景

              • 简单的单次对话调用(用Spring AI就够了)

              • 非Java技术栈的项目

              • 对JDK 8有强依赖的遗留系统

              七、与主流框架对比

              根据最新的框架对比报告,Spring AI Alibaba在Java生态中具有明显优势:

              对比维度

              Spring AI Alibaba

              LangChain4j

              AgentScope

              编程语言

              Java

              Java

              Python

              Spring Boot集成

              原生支持

              社区适配

              不支持

              多智能体

              ✅ Graph框架

              需自行实现

              ⭐⭐⭐⭐⭐

              工作流

              ✅ 内置支持

              MCP分布式

              ✅ Nacos Registry

              基础支持

              基础支持

              可观测性

              ✅ ARMS集成

              部分支持

              部分支持

              企业级特性

              ⭐⭐⭐⭐⭐

              ⭐⭐⭐

              ⭐⭐⭐⭐

              开发效率

              ⭐⭐⭐⭐⭐

              ⭐⭐⭐

              ⭐⭐⭐⭐

              综合评分 8.8

              7.6

              8.2

              数据来源:Agent开发框架对比分析报告,2025年

              八、未来规划

              Spring AI Alibaba团队将持续投入,主要体现在三个方向:

              1. 跟进Spring AI演进:持续发版解决企业应用过程中遇到的问题

              2. 底层升级支持AgentScope:做好阿里云、AgentScope与Spring生态的连接

              3. 全面升级Admin平台:打造企业级Agent构建与交付平台

              总结

              Spring AI Alibaba是阿里云为Java开发者量身打造的AI应用开发框架。

              它继承了Spring生态的优雅设计,整合了阿里云的AI能力和云原生基础设施,让Java开发者可以用熟悉的开发模式构建企业级AI应用。

              核心亮点总结

              1. 四层模块化架构:从原子能力到智能体框架,层层递进

              2. 智能体模式丰富:ReactAgent、SupervisorAgent、SequentialAgent等开箱即用

              3. 生态集成完善:DashScope、Nacos、Higress、MCP、A2A全支持

              4. 生产级性能:百万级智能体交互,8ms延迟

              5. 开发效率提升:官方数据显示可将MultiAgent开发从5天压缩到5小时

              如果你正在用Java做企业级应用开发,又想拥抱AI,Spring AI Alibaba值得你认真研究。

              项目地址:

              Logo

              AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

              更多推荐