Spring AI 2.0 GA终于发布了?

Spring AI 2.0 GA终于发布了?

薛定谔的汪 Lv5

Spring AI 2.0 正式 GA 发布:全栈重构,补齐 Java 企业级 AI Agent 生产短板

前言

Spring AI 1.x 上线后,大量 Java 开发者快速实现 LLM 对话、知识库检索、简易工具调用等原型功能,但投入企业生产环境后,各类痛点集中暴露:工具调用逻辑内置、无法自定义拦截扩展;配置文件多层嵌套,维护繁琐;多工具场景 Token 损耗严重;对话上下文管理混乱,长对话极易截断错乱;监控、鉴权、限流等生产能力缺失。

2026 年 Spring 官方重磅推出 Spring AI 2.0.0 GA,本次并非小幅功能迭代,而是一次底层架构、API 设计、生态集成、工程化能力的全面重构。版本基线升级至 JDK21、Spring Framework 7、Spring Boot 4.0,围绕 Advisor 链式架构、MCP 2.0 标准化互通、增强 RAG 流水线、全新对话内存、原生响应式流式、全量空安全、统一向量存储、语义缓存八大核心模块完成改造,彻底打通 Java 体系搭建企业智能体、私有化知识库、本地离线 AI 应用全链路。

相较于 1.x 主打快速验证原型,Spring AI 2.0 完全面向金融、政务、智能制造、企业客服等复杂生产场景设计,配套完整重试、限流、审计、上下文压缩、批量文档处理能力。传统 Spring 业务系统无需切换 Python 技术栈,仅依靠现有 Java 开发团队,就能低成本完成业务智能化改造。

一、底层基座全面升级,从根源解决历史遗留缺陷

1.1 运行环境全面现代化

  1. 强制基线升级

    彻底放弃对 Java 17、Spring Boot 3.x 的兼容,最低运行环境锁定 JDK21。全面支持虚拟线程、结构化并发、Record 不可变对象、模式匹配等新特性,高并发 AI 接口吞吐量显著提升;配套新版 Spring 生态,原生拥有云原生容器轻量化、链路观测等能力。

  2. 全局空安全防护

    全框架 API、配置类、返回实体统一添加 JSpecify 空安全注解,在编译阶段拦截空指针风险,线上 NPE 故障大幅减少,同时完美适配 Kotlin 项目,省去大量手动判空冗余代码。

1.2 配置与序列化体系重构

  1. 扁平化极简配置

    1.x 所有模型参数统一嵌套在

    1
    .options

    层级,YAML 层级冗余、可读性差。2.0 彻底扁平化配置结构,区分全局默认参数、单次请求局部参数,层级清晰易懂。

    同时

    1
    ChatOptions

    1
    EmbeddingOptions

    全部改为不可变对象,仅支持 Builder 构建,禁止运行时直接修改参数,避免多线程场景参数错乱。

yaml

1
2
3
4
5
6
7
8
9
10
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY}
chat:
model: gpt-5-mini
temperature: 0.6
max-tokens: 2000
embedding:
model: text-embedding-3-small
  1. Jackson 3 序列化升级

    替换旧版序列化框架,针对大模型结构化输出、工具参数序列化专项优化,序列化耗时降低 30%;提供统一 JsonHelper 工具类,自定义序列化规则更简单。

1.3 多厂商集成精简统一

  • 抛弃自研 HTTP 请求封装,统一对接各大模型厂商官方 SDK,限流、超时、异常错误码由厂商维护,稳定性大幅提升;
  • Azure OpenAI 合并至通用 OpenAI Starter,一套配置兼容公有云、私有化部署;
  • 小众冷门大模型移出核心仓库,改为社区独立维护,官方核心库轻量化,迭代速度更快。

1.4 API 分层解耦,职责清晰

旧版本AiClient大一统接口耦合对话、向量、工具逻辑,不利于微服务拆分。2.0 拆分四类独立接口:

  • ChatClient:对话交互、工具调用、结构化输出、流式生成;

  • EmbeddingClient:文本向量化、批量嵌入处理;

  • VectorStoreRetriever:向量只读检索,最小权限设计;

  • VectorStore:继承检索能力,补充文档增删改写入功能。

    纯知识库查询服务仅依赖 VectorStoreRetriever,大幅减少项目冗余依赖。

二、Advisor 链式架构:本次核心架构革新,AI 链路可编程 AOP

2.1 1.x 核心痛点:流程黑盒无法扩展

1.x 将工具调用循环逻辑硬编码在每个 ChatModel 内部,开发者无法在工具执行前后插入自定义逻辑。如果需要审计日志、权限校验、限流、上下文压缩,只能手动编写重复循环代码,维护成本极高。

2.0 借鉴 Spring AOP 拦截器设计,将完整 AI 请求链路拆分为可编排、有序的 Advisor 拦截链。一次对话全流程:参数校验→上下文拼接→RAG 检索→工具调用循环→输出格式校验→日志监控,全部由可插拔组件串联,支持中断、重试、自定义执行优先级。

2.2 官方内置开箱即用核心 Advisor

框架自动注册基础组件,无需手动注入配置:

  1. ToolCallingAdvisor 工具调用核心

    全自动完成工具调用全流程:模型发起工具调用→执行本地业务方法→结果回填对话上下文→循环交互至无需调用工具。修复 1.x 流式场景上下文错乱问题;注解统一由

    1
    @Function

    改为

    1
    @Tool

    ,自动生成标准 JSON 参数描述。

  2. MessageChatMemoryAdvisor 全新对话内存

    淘汰旧版 PromptChatMemoryAdvisor,以标准消息对象管理历史对话;新增回合边界截断策略,仅在完整一问一答结束后清理历史消息,避免截断半句话导致模型答非所问。

  3. RetrievalAugmentationAdvisor 标准化 RAG 流水线

    内置完整知识库检索链路:Query 向量化→向量库检索→结果重排→文档注入上下文,支持自定义过滤、重排规则。

  4. StructuredOutputValidationAdvisor 结构化输出自动校验

    根据 Java 实体类自动生成 JSON 校验规则,模型返回格式错乱、字段缺失时自动补发提示并重试,搭配

    1
    .entity()

    方法可一键将返回文本映射为 Java 对象,省去大量手动解析容错代码。

  5. 辅助组件:LoggingAdvisor 统一记录 Token 消耗、接口耗时;SafetyAdvisor 内置内容安全过滤规则。

2.3 ToolSearch 渐进式工具检索,解决多工具 Token 成本问题

企业综合智能助手往往集成数十个业务工具(订单、财务、物流、工单查询等),1.x 每次对话会把全部工具描述传给大模型,Token 开销暴涨,还容易出现工具混淆调用错误。

新增ToolSearchToolCallingAdvisor实现语义按需匹配工具:

  1. 项目启动时为全部工具构建语义索引;
  2. 根据用户提问语义相似度筛选少量相关工具;
  3. 仅将匹配到的工具下发模型,最高可降低 70% Token 消耗,适合客服中台、一体化政务 Agent 场景。

2.4 自定义 Advisor 实现业务横切逻辑

开发者实现 Advisor 接口,配置 order 执行顺序,即可无侵入扩展全局通用能力:

  • 全量对话、工具调用审计日志持久化;
  • AI 接口 QPS 限流、多租户数据权限校验;
  • 超长对话上下文自动摘要压缩;
  • 手机号、身份证、合同金额等敏感数据自动脱敏;
  • Token 用量统计、调用成本上报。

执行顺序灵活可控:安全校验 Advisor 优先执行,日志记录后置执行,不改动原有对话业务代码。

三、MCP 2.0 原生集成,实现跨服务 AI 能力互通

MCP(Model Context Protocol)是当前 AI 工具、提示词、数据源跨应用互通的行业标准,解决多微服务、多智能体之间能力孤岛问题。Spring AI 2.0 内置完整 MCP Java SDK 2.0,同时支持 MCP 服务端、客户端双向开发。

  1. 注解快速对外暴露 AI 能力

    普通 Spring 业务服务通过三类注解快速标准化输出能力:

  • @McpTool:对外提供业务工具,支持执行进度上报、调用审计;
  • @McpResource:封装订单、持仓、知识库等可读取业务数据源;
  • @McpPrompt:预设行业标准化提示词模板,外部 Agent 可直接复用。
  1. 传输层全面升级,弃用不稳定 SSE

    彻底移除老旧 SSE 传输方案,默认采用 Streamable HTTP 双向流,支持集群水平扩容;本地开发保留 STDIO 进程通信,兼顾线上云原生部署与本地调试。

  2. 企业级安全与监控配套

    MCP 完整接入 Micrometer、OpenTelemetry 链路追踪,自动采集调用量、错误率、耗时指标;原生支持 API Key、OAuth2 鉴权,适配企业内网、多租户权限管控场景。

四、向量存储与 RAG 全面升级,企业知识库落地门槛大幅降低

4.1 统一向量存储抽象,兼容 15 + 主流数据库

重构 VectorStore 顶层接口,统一检索、写入、元数据过滤 API,一套业务代码无缝切换 Milvus、PGVector、Redis、MongoDB、Chroma 等向量引擎。支持类 SQL 简洁过滤语法,无需手写原生检索语句。

4.2 Redis 一体化能力增强,中小团队无需额外组件

Redis 模块是本次更新重点优化模块,单组件同时承载三类核心能力:

  1. RedisVectorStore:开放 HNSW 索引全量调参,平衡检索速度与召回精度,支持数值、文本混合过滤;
  2. RedisChatMemory:按用户、租户隔离持久化对话记录,支撑海量并发会话;
  3. 语义缓存 Advisor:缓存相似提问返回结果,重复查询直接读取缓存,大幅减少大模型接口调用成本,自定义缓存有效期、相似度阈值。

4.3 开箱即用完整文档处理流水线

内置 PDF、Word、Markdown、HTML 等文件解析能力,自动完成文档分段、批量向量化、向量入库、检索重排全流程;支持自定义分块大小、重叠窗口,可快速接入第三方重排模型。

五、全新对话内存体系,解决长会话上下文溢出问题

  1. 回合边界保护策略

    MessageWindowChatMemory 搭配 STRICT 严格截断模式,仅在完整问答结束后清理历史消息,避免半截对话被截断,保证对话逻辑连贯。

  2. 事件溯源式会话管理

    社区配套 spring-ai-session 组件,以事件溯源存储完整对话、工具调用记录,支持长上下文自动摘要、会话隔离、历史交互回溯,满足金融、政务完整审计需求。

  3. 多存储介质适配

    对话内存支持内存、Redis、MySQL、MongoDB 多种存储,生产环境禁止内存模式,防止服务重启丢失会话数据。

六、原生响应式流式交互,完美适配 WebFlux 实时对话

1.x 流式基于 Future 封装,响应式支持残缺;2.0 全面基于 Project Reactor 重构,stream 接口统一返回 Flux 流式数据流,原生适配 WebFlux 异步服务。

同步 / 流式双套极简 API

java

运行

1
2
3
4
5
6
7
8
// 同步阻塞调用,一次性获取完整回答
String result = chatClient.prompt().user("分析A股行情").call().content();

// 流式逐块输出,前端实现打字机实时效果
Flux<String> streamResult = chatClient.prompt()
.user("分析A股行情")
.stream()
.content();

生产级流式配套能力

自带背压控制,防止高并发内存溢出;支持异常捕获、生成完成回调;区分模型思考推理文本与正式输出;WebFlux 控制器一行代码输出 SSE 事件流,支持手动终止生成。

七、多模态与模型厂商适配能力拓展

  1. 统一多模态交互接口

    UserMessage 原生支持图片链接、二进制图片数据,一套接口实现图文混合提问,无缝对接 GPT-4o、Claude、Gemini 视觉大模型,图文分析、文生图场景无需单独封装 API。

  2. 主流大模型全面更新适配

    OpenAI 支持 GPT-5 系列、结构化输出;Claude 对接官方 SDK,支持长思考模式;Gemini 开放推理深度配置;Ollama 完善本地离线工具调用、向量嵌入能力;DeepSeek、通义千问等国产模型统一接入规范,切换模型仅修改配置,无需改动业务代码。

八、实战示例:企业股票智能分析 Agent

1. Maven 核心依赖

xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-annotations</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-redis-store</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>

2. 业务工具定义

java

运行

1
2
3
4
5
6
7
8
9
@Service
public class StockQueryTool {
@Tool(description = "根据股票代码查询A股实时价格、涨跌幅、成交量")
public StockQuote getStockInfo(@ToolParam("股票代码,如600519.SH") String stockCode) {
// 对接第三方行情接口
return new StockQuote(stockCode, 1862.5, 1.86, 12560000L);
}
}
public record StockQuote(String code, double price, double changeRate, long volume) {}

3. ChatClient 全局配置

java

运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Configuration
public class AgentConfig {
@Bean
public ChatClient chatClient(ChatClient.Builder builder, StockQueryTool stockTool) {
return builder
.defaultSystem("专业A股分析助手,查询股票自动调用行情工具,输出结构化分析")
.defaultTools(stockTool)
.defaultAdvisors(MessageChatMemoryAdvisor.builder(
MessageWindowChatMemory.builder()
.maxMessages(20)
.turnBoundaryPolicy(TurnBoundaryPolicy.STRICT)
.build()
).build())
.build();
}
}

4. 同步 + 流式双接口控制器

java

运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@RestController
@RequestMapping("/stock/agent")
public class StockAgentController {
private final ChatClient chatClient;
public StockAgentController(ChatClient chatClient) { this.chatClient = chatClient; }

// 同步接口,直接返回结构化实体
@PostMapping("/sync")
public StockAnalysisResp syncChat(@RequestBody String query) {
return chatClient.prompt().user(query).call().entity(StockAnalysisResp.class);
}

// WebFlux流式SSE接口
@PostMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> streamChat(@RequestBody String query) {
return chatClient.prompt().user(query).stream().content();
}
}
public record StockAnalysisResp(String stockCode, String analysis, String riskTip) {}

九、1.x 升级完整迁移指南

9.1 强制性破坏性变更(升级必改)

  1. 运行环境:JDK 升级至 21,Spring Boot 升级 4.0,不再兼容旧版本;
  2. 配置改造:删除所有 options 嵌套层级,Options 统一使用 Builder 构建;
  3. 工具注解:@Function 全部替换为 @Tool,废弃 FunctionCallback;
  4. 对话内存:移除 PromptChatMemoryAdvisor,更换为 MessageChatMemoryAdvisor;
  5. MCP 传输:废弃 SSE,切换 Streamable HTTP,MCP 接口全面重构;
  6. 模块调整:Azure OpenAI 并入 OpenAI Starter,小众模型移出核心库;
  7. 流式逻辑:删除手动编写的工具调用循环,统一交由 ToolCallingAdvisor 管理。

9.2 推荐优化项,大幅提升生产稳定性

  1. 工具数量超过 20 个,接入 ToolSearchAdvisor 降低 Token 开销;
  2. 知识库业务统一使用 RetrievalAugmentationAdvisor 标准化 RAG;
  3. 线上环境采用 RedisChatMemory 持久化会话,开启回合截断;
  4. 结构化输出全部使用.entity (),依托自动校验减少异常;
  5. WebFlux 项目使用 stream 流式接口,提升并发承载能力;
  6. 接入 actuator+Micrometer,监控 Token 消耗、接口成功率、耗时;
  7. 多租户、复杂 Agent 自定义安全、审计 Advisor 管控横切逻辑。

9.3 升级踩坑清单

  1. 直接 set 修改 Options 对象代码会编译报错,必须通过 Builder 新建实例;
  2. Jackson 升级 3 后,自定义序列化器需要适配新版 API;
  3. Ollama 本地模型部分配置参数名称调整,需核对官方文档;
  4. 批量向量嵌入返回值类型变更,批量处理逻辑小幅调整。

十、社区生态配套组件

依托统一 Advisor 扩展标准,社区已产出大量开箱即用生产组件,无需重复开发:

  1. spring-ai-session:事件溯源会话,长对话摘要、完整交互审计;
  2. spring-ai-agent-utils:网页抓取、文件解析等通用 Agent 工具集;
  3. spring-ai-rate-limit-advisor:基于 Redis 的 AI 接口、Token 用量限流组件;
  4. spring-ai-safety-filter:企业级敏感词、隐私数据脱敏拦截器;
  5. spring-ai-mcp-gateway:MCP 网关,统一多服务工具路由、权限分发。

标准化扩展机制让第三方组件无缝接入对话链路,框架底层无需改动,生态迭代速度大幅提升。

十一、总结:Java AI 开发迈入工业化落地新阶段

Spring AI 1.x 解决了 Java 开发者快速调用大模型、验证 AI 想法的原型需求,而 Spring AI 2.0 彻底解决企业落地的各类生产难题,核心价值总结:

  1. 架构高度解耦:Advisor 链式架构让工具调用、RAG、上下文、输出校验全流程可编程,告别底层黑盒硬编码;
  2. 支撑大规模智能体:渐进式工具检索大幅降低多工具场景 Token 成本,适配企业中台综合助手;
  3. AI 能力标准化互通:MCP 2.0 打通多服务工具、提示词、数据源共享,消除业务孤岛;
  4. 完善工程化能力:JDK21 现代化并发、全空安全、链路监控、Redis 一体化存储、语义缓存降本;
  5. RAG 与多模态成熟落地:统一向量存储、一站式文档处理、原生图文交互;
  6. 平滑升级方案:官方完整迁移规范,存量 Spring 业务改造成本可控。

对于国内绝大多数以 Spring 作为核心技术栈的企业,Spring AI 2.0 提供一套完全贴合现有技术体系的智能化落地方案,无需重构服务、不用额外学习 Python 生态,现有 Java 团队即可独立搭建智能客服、知识库系统、数据分析 Agent、本地离线私有化 AI 应用,是传统业务数字化、智能化转型的最优技术选择。

后续官方会持续迭代国产大模型适配、多 Agent 编排、离线批量推理等功能,持续补齐 Java 生成式 AI 全场景能力短板。

  • Title: Spring AI 2.0 GA终于发布了?
  • Author: 薛定谔的汪
  • Created at : 2026-06-21 18:01:54
  • Updated at : 2026-06-22 16:54:56
  • Link: https://www.zhengyk.cn/2026/06/21/ai/springai_2.0/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
Spring AI 2.0 GA终于发布了?