[特殊字符] Spring AI 2.0.0 正式发布:大版本升级,MCP 原生集成 + Anthropic SDK 全线重构
2026 年 6 月 12 日 · 基于 Spring Boot 4.1.0 · MCP SDK 2.0 + Anthropic 重构 + ToolCalling 体系重写
🔥 一、发布概况:为期半年的重大升级
2026 年 6 月 12 日,Spring 官方正式发布 Spring AI 2.0.0。这是 Spring AI 项目自 1.0.0 GA 以来最大的一次版本升级,从 1.1.x 到 2.0.0 历经多个 RC 阶段,积累了大量的 Breaking Changes 和功能重构。
|
关键信息 |
数据 |
|---|---|
|
发布时间 |
2026 年 6 月 12 日 |
|
前代版本 |
1.1.8(2026-06-12 同天发布) |
|
1.0.x 最终版 |
1.0.9(2026-06-12 同天发布) |
|
基础框架 |
Spring Boot 4.1.0 |
|
MCP SDK |
2.0.0 |
|
核心定位 |
Java 生态的 AI 集成框架 |

⚡ 二、2.0.0 核心新特性
1️⃣ Anthropic 模块全面迁移至官方 Java SDK
这是 2.0.0 最重大的架构变更。 Spring AI 的 Anthropic 模块从自实现的 API 客户端彻底迁移到 Anthropic 官方 Java SDK:
|
编号 |
变更维度 |
1.x 时代 |
2.0.0 |
|---|---|---|---|
|
1 |
API 客户端 |
自实现 AnthropicApi |
官方 Java SDK |
|
2 |
模型构建 |
|
Builder 模式: |
|
3 |
缓存支持 |
基础 |
AnthropicCacheOptions/Strategy/Ttl 完整缓存体系 |
|
4 |
引用支持 |
无 |
AnthropicCitationDocument 引用文档支持 |
|
5 |
新增选项 |
— |
Web Search Tool、priority capacity tier |
|
6 |
包名变更 |
|
顶级包 |
新增四个 Chat Options:
-
spring.ai.anthropic.chat.web-search-tool.*— Web 搜索工具配置 -
优先级容量层(Priority capacity tier)支持
-
完整缓存断点追踪器(CacheBreakpointTracker)
-
缓存资格解析器(CacheEligibilityResolver)
2️⃣ MCP SDK 2.0 深度集成
MCP(Model Context Protocol)的支持在 2.0.0 中经历了一次重大架构变革:
|
编号 |
变更 |
说明 |
|---|---|---|
|
1 |
MCP SDK 升级 |
从旧版 → 2.0.0 |
|
2 |
传输模块迁移 |
MCP 的 Spring 传输模块从 SDK 迁入 Spring AI 项目 |
|
3 |
包名变更 |
|
|
4 |
输入验证 |
默认开启——工具参数按 JSON Schema 校验 |
|
5 |
必需字段强制 |
SDK 的 builder 强制要求必填构造参数 |
|
6 |
McpClientCustomizer |
改用泛型接口,支持 |
|
7 |
HTTP Header 统一 |
WebMvc 传输的 Header 统一为小写 |
3️⃣ Tool Calling 体系全面重构
这是 2.0.0 影响面最广的变更。
① 内部工具执行循环 → ToolCallingAdvisor
|
1.x |
2.0.0 |
|---|---|
|
每个模型各自实现内部循环 |
统一 ToolCallingAdvisor |
|
|
默认开启,无需配置 |
|
需手动控制 |
自动注册,检测到工具即生效 |
这一变更意味着:不再需要为每个 AI 供应商单独配置工具循环,Spring AI 会自动检测并注册工具执行能力。
② 对话历史管理重构
对话历史从 ToolContext 中彻底移除——工具只接收参数和自定义上下文,不再管理对话状态。ToolCallingAdvisor 负责维护工具调用间的对话历史。
③ 流式工具调用修复
之前 streamToolCallResponses 存在设计缺陷——中间请求块被流式输出但对应的响应未被发送,导致对话历史损坏。2.0.0 中此选项被移除,默认行为已修复。
④ 工具上下文 API 变更
// 1.x
chatClient.prompt()
.tools(t -> t.callbacks(myCallback).context("tenantId", "acme"))
.call().content();
// 2.0.0
chatClient.prompt()
.tools(myCallback)
.toolContext(Map.of("tenantId", "acme"))
.call().content();
4️⃣ ChatClient Options 全栈重构
|
变更 |
说明 |
|---|---|
|
Builder 模式强制 |
所有 Options 必须通过 Builder 创建,编译期检查 |
|
默认温度移除 |
不再提供 0.7 的默认温度,改为各 AI 提供商的原生默认值 |
|
Options 默认值迁移 |
从各 Model 类移除,统一到 Options Builder |
|
|
API 简化 |
5️⃣ 模型配置属性重构
配置属性大幅简化:
yaml
# 1.x
spring.ai.openai.embedding.options.model=text-embedding-3-small
2.0.0
spring.ai.openai.embedding.model=text-embedding-3-small
所有 *.options.* 层级中的 options. 被移除,直接使用 *.model 等属性。
6️⃣ TTS / OpenAI SDK 迁移
-
OpenAI TTS 模块从
SpeechModel→TextToSpeechModel(统一接口) -
OpenAI Chat 模块全面使用 Jackson 2(移除 Jackson 3 的混合使用)
-
OpenAI 底层 SDK 统一迁移到 OpenAI Java SDK
7️⃣ Azure OpenAI Entra ID 支持
新增 Entra ID 身份认证管理,通过干净的自动配置实现 Azure OpenAI 的安全访问。
📊 三、从 1.x 到 2.0:性能与架构提升
架构层面的飞跃
|
维度 |
1.1.x |
2.0.0 |
提升 |
|---|---|---|---|
|
Tool Calling 循环 |
各模型自实现 |
统一 Advisor |
代码量减少 70% |
|
Anthropic API 维护 |
需自跟踪 |
官方 SDK |
零维护成本 |
|
MCP 传输模块 |
外部 SDK |
Spring 项目内 |
版本锁定 |
|
对话历史 |
散落在 Tools |
Advisor 统一管理 |
修复数据损坏 |
|
JSON Schema 校验 |
无 |
MCP 服务端默认开启 |
安全性提升 |
|
配置属性 |
嵌套多层级 |
扁平化 |
易用性提升 |
性能改进点
|
改进方向 |
说明 |
|---|---|
|
工具调用开销 |
统一 ToolCallingAdvisor 减少序列化和调度开销 |
|
对话历史一致性 |
MongoDB 存储的消息顺序修复(曾经逆序返回) |
|
内存管理 |
Options 不再依赖 Jackson 3,减少类加载冲突 |
|
序列化 |
统一 Jackon 2,移除 Jackson 3 混合使用 |

⚠️ 四、差距与不足
已知问题
|
问题 |
说明 |
严重程度 |
|---|---|---|
|
Breaking Changes 极多 |
从 API 到配置到模块结构几乎全面变更 |
🔴 迁移成本高 |
|
Moonshot/Qianfan 移除 |
国内模型厂商被移出主项目,移至社区仓库 |
🔴 中国用户受影响 |
|
MiniMax 专用支持移除 |
改为通过 Anthropic 通用接口访问 |
🟡 功能退化 |
|
Watson AI 移除 |
IBM Watson 集成因模型过时被移除 |
🟢 影响有限 |
|
Cosmos DB 移出 |
Azure Cosmos DB 支持移至外部团队维护 |
🟡 需额外配置 |
|
HanaDB 向量库移除 |
SAP Hana 向量存储自动配置取消 |
🟢 小众场景 |
|
温度默认值移除 |
之前依赖 0.7 默认值的应用可能行为变化 |
🟡 需显式配置 |
|
OpenSearch 兼容性 |
HTTP Client5 升级可能需要调整 |
🟡 特定场景 |
与竞品的差距
|
维度 |
Spring AI 2.0.0 |
LangChain4j |
Semantic Kernel |
|---|---|---|---|
|
语言 |
Java (Spring 生态) |
Java |
C#/Python/Java |
|
MCP 集成 |
⭐ 原生深度集成 |
有限 |
有限 |
|
模型提供商覆盖面 |
⭐ 极广(20+) |
广 |
中 |
|
Spring 生态绑定 |
强依赖 |
弱 |
无 |
|
文档完善度 |
好(持续改进中) |
⭐ 优秀 |
⭐ 优秀 |
|
学习曲线 |
陡(大量 Breaking Changes) |
平缓 |
中等 |
|
国内模型支持 |
❌ Moonshot/Qianfan 移除 |
⭐ 好 |
中 |
🔮 五、未来演进方向
短期(2.x 系列)
|
方向 |
预期 |
|---|---|
|
🚀 MCP Hub 集成 |
可视化 MCP 工具管理 |
|
🔧 社区复原 |
Moonshot/Qianfan 等国内模型以社区模块形式回归 |
|
📚 文档完善 |
2.0 升级指南和更多代码示例 |
|
🧪 Agent 编排增强 |
多 Agent 协作工作流支持 |
中长期
|
方向 |
推测 |
|---|---|
|
🎯 AI Agent 原生框架 |
从"AI 集成"走向"Agent 开发框架" |
|
☁️ 云原生 AI |
深度集成 Kubernetes + AI 推理 |
|
🔗 多模态扩展 |
视频理解、3D 生成等能力 |
|
🌐 国际化模型市场 |
模型发现和接入的标准化 |
📌 六、升级建议
从 1.1.x 升级
|
步骤 |
关注点 |
|---|---|
|
1️⃣ |
更新依赖到 |
|
2️⃣ |
Anthropic 代码重构 — 改用 Builder 模式 |
|
3️⃣ |
Tool Callback → ToolCallingAdvisor |
|
4️⃣ |
MCP 包名更新 — 迁移到 |
|
5️⃣ |
Options 属性扁平化 — 移除 |
|
6️⃣ |
温度显式配置 — 设置 |
|
7️⃣ |
Moonshot/Qianfan → 社区版 |
从 1.0.x 升级
强烈建议做一次大的 API 映射审计,因为从 1.0.x 到 2.0.0 跨越了 1.1.x 和 2.0.0-RC,积累了数百项 API 变更。
📌 七、总结
Spring AI 2.0.0 是 Spring 生态在 AI 集成领域的一次里程碑式升级。它以 Anthropic 官方 SDK 迁移、MCP 深度集成、ToolCalling 统一架构 三大核心变革,从根本上提升了框架的可维护性和扩展性。
三个核心信号
-
🏆 MCP 成为一等公民 — 传输模块迁入 Spring AI 项目,验证机制默认开启,Spring 在 MCP 生态中的话语权显著增强
-
🏆 Tool Calling 的统一是架构正确方向 — 从"每个模型自实现"到"统一 Advisor",是 Spring AI 走向成熟的关键一步
-
🏆 告别"保姆级"默认值 — 默认温度移除、Options 重构、配置扁平化——Spring AI 正在从"新手友好"走向"专业级框架"
一句话总结
Spring AI 2.0.0 是一次"刮骨疗毒"式的升级——大量 Breaking Changes 短期会痛,但从 Anthropic SDK 迁移到 MCP 深度集成到 ToolCalling 统一架构,长期来看是 Spring AI 走向企业级 AI 开发框架的必经之路。
欢迎访问 小易撩挨踢
更多推荐



所有评论(0)