Spring AI 2.0.0 正式版本现已发布,一些更新亮点如下:
Spring Boot 4 baseline
Spring AI 2.0 的设计初衷是与 Spring Boot 4.0 / 4.1 和 Spring Framework 7.0 一起使用,但它带来的好处远不止升级依赖项版本和修复兼容性问题那么简单。
Jackson 3
从 Jackson 2 升级到 Jackson 3,JSON 序列化得到了极大的改进。、文档现已详细说明了如何自定义默认的JsonMapper,并引入了新的 JsonHelper类,用于提供完全自定义的JsonMapper。
Null-safety
Spring AI 代码库现已全面采用 JSpecify 注解。除了防止运行时出现空指针异常并提供符合 Kotlin 惯用法的 API 之外,它还允许明确代码库中哪些值是可选的,哪些值是必需的。
Options
解决空安全问题也引发了对选项和配置属性处理方式的重大重构:
- 明确哪些选项是必填项,哪些是选填项
- 默认值现在已在 Options 层(而非模型或配置属性)统一定义。
- Options 全部采用 Builder 模式创建,并且一旦实例化就不可更改。
- 这些 Builder 现在提供一致且无反射的合并功能
- 配置项与配置属性彻底解耦,移除了配置文件中多余的
.options 层级,并修复了许多错误。
Spring AI 2.0 倾向于将 ChatClient 作为最常用的面向用户 API,而 ChatModel 则更多地作为底层构建模块。
More focus
Spring AI 2.0 重点聚焦以下大模型:
- OpenAI
- 从 3 套实现(Azure、HTTP、SDK)简化为 1 种(SDK)
- 可用于访问其他提供 OpenAI 兼容 API 的模型
- Anthropic
- 从 2 套实现(HTTP、SDK)减少到 1 种(SDK)
- 可用于访问其他模型,例如提供 Anthropic 兼容 API 的 Minimax 模型。
- Amazon Bedrock
- Google GenAI
-
- 从 2 套实现(GenAI SDK、Vertex)减少到 1 个(GenAI SDK)
- Mistral AI
- DeepSeek
- Ollama
官方预计,利用 OpenAI、Anthropic 和 Google 的供应商 SDK 将有助于 Spring AI 适应最新的模型 API 扩展和新功能。部分支持工作现在由相关供应商与 Spring AI 团队合作直接维护:
与社区更好地合作
Spring AI 现在新增了一份 CONTRIBUTING.md 文档,该文档面向人类和智能体,阐明了贡献的规则和规范。
Agentic 支持改进
Agentic AI 系统需要一个可以拦截和围绕工具执行循环进行组合的地方。Spring AI 2.0 将工具循环提升到 advisor chain 中,作为 first-class 的可组合组件。ChatClient会将每个请求通过有序的顾问链进行处理,并支持循环机制,允许顾问重新进入下游链。相同的机制同样驱动着工具调用循环、结构化输出重试循环以及评估循环。
统一工具调用
在 Spring AI 2.0 中,ToolCallingAdvisor工具会被ChatClient自动注册并实现完整的工具调用往返流程。之前在每个聊天模型中实现的临时工具循环已被移除。如果你需要对每次工具迭代进行显式控制,可以选择退出并手动驱动循环。
扩展到数百种工具
ToolSearchToolCallingAdvisor为工具调用带来了渐进式工具披露机制。它不再要求每次请求都注册所有工具,而是按需逐步披露:它会在每个会话期间对整个工具集进行一次索引,并允许模型根据需要检索相关工具。
结构化自纠错输出
Spring AI 一直以来都提供可移植的、一流的结构化输出支持,但即使启用了原生结构化输出,模型仍然可能返回不符合规范的 JSON。可自动注册的StructuredOutputValidationAdvisor功能会在验证失败时自动纠正。
Spring AI 社区扩展
- New Event-Sourced Conversation Memory:
spring-ai-session 社区项目提供了一套基于事件溯源的会话记忆实现,用于替代内置 ChatMemory。它支持所有消息类型,包括工具调用(在工具调用循环内使用任何后端都是安全的),并在上下文窗口填满时应用可插拔的、轮次感知的压缩策略(包括 LLM 支持的摘要)。
- Agentic Patterns on Top of the Foundation:
spring-ai-agent-utils 社区项目基于 Spring AI 2.0 的 Agent 基础架构,提供了一系列可直接用于生产环境的 Agent 组件。包含 Agent Skills,以及 file、shell、web-fetch、task、auto-memory 和其他实用工具。
MCP 集成
Spring AI 2.0 随附 MCP Java SDK 2.0.0,符合最新的 2025-11-25 MCP 规范,并将整个 MCP 生态系统整合到 Spring AI 旗下。
注解驱动编程模型
mcp-annotations 模块(之前由社区孵化)现已成为 Spring AI 的一部分。现在只需要一个注解(@McpTool, @McpResource和@McpPrompt),就能将 Spring Bean 暴露为 MCP 服务能力。
统一的McpSyncRequestContext/McpAsyncRequestContext参数会自动注入到服务器处理程序方法中,为工具和资源提供了一个用于日志记录、进度报告、采样和获取的单一入口点。
客户端也同样受到重视。声明式处理程序涵盖了完整的协议回调模型,并带有用于 LLM sampling、elicitation 和 capability-change notifications ——从而实现了真正响应式的 Agent 客户端。
MCP Transports
WebMVC 和 WebFlux 传输实现已从 MCP Java SDK 迁移到 Spring AI,使其发布节奏与框架的其他部分保持一致。Streamable HTTP 现在是默认协议,取代了已弃用的 SSE 传输。其无状态变体可用于实现远程部署的可扩展性,但代价是牺牲了 MCP 的双向通信能力。STDIO 仍然可用于本地基于进程的集成。
MCP Enterprise Features
Spring AI 的 MCP 集成继承了完整的 Spring 生产堆栈:Micrometer spans 和 OpenTelemetry 兼容的指标用于服务器交互,并通过 spring-ai-community/mcp-security 项目实现 OAuth 2.0 和 API-key 安全。
更多详情可查看官方公告。