易君召
易君召
发布于 2026-06-15 / 45 阅读
0

🌱 Spring AI 2.0.0 正式发布:大版本升级,MCP 原生集成 + Anthropic SDK 全线重构

#AI

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

API 客户端

自实现 AnthropicApi

官方 Java SDK

模型构建

new AnthropicApi(apiKey)

Builder 模式:AnthropicChatModel.builder().apiKey(...)

缓存支持

基础

AnthropicCacheOptions/Strategy/Ttl 完整缓存体系

引用支持

无

AnthropicCitationDocument 引用文档支持

新增选项

—

Web Search Tool、priority capacity tier

包名变更

api.utils

顶级包 anthropic 下


新增四个 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 中经历了一次重大架构变革:

变更

说明

MCP SDK 升级

从旧版 → 2.0.0

传输模块迁移

MCP 的 Spring 传输模块从 SDK 迁入 Spring AI 项目

包名变更

io.modelcontextprotocol.server.transport → org.springframework.ai.mcp.server.*.transport

输入验证

默认开启——工具参数按 JSON Schema 校验

必需字段强制

SDK 的 builder 强制要求必填构造参数

McpClientCustomizer

改用泛型接口,支持 AsyncSpec / SyncSpec

HTTP Header 统一

WebMvc 传输的 Header 统一为小写

3️⃣ Tool Calling 体系全面重构

这是 2.0.0 影响面最广的变更。

① 内部工具执行循环 → ToolCallingAdvisor

1.x

2.0.0

每个模型各自实现内部循环

统一 ToolCallingAdvisor

internalToolExecutionEnabled

默认开启,无需配置

需手动控制

自动注册,检测到工具即生效

这一变更意味着:不再需要为每个 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

getDefaultOptions() → getOptions()

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️⃣

更新依赖到 spring-ai-bom:2.0.0

2️⃣

Anthropic 代码重构 — 改用 Builder 模式

3️⃣

Tool Callback → ToolCallingAdvisor

4️⃣

MCP 包名更新 — 迁移到 org.springframework.ai.mcp

5️⃣

Options 属性扁平化 — 移除 .options. 层级

6️⃣

温度显式配置 — 设置 spring.ai.*.chat.temperature

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 统一架构 三大核心变革,从根本上提升了框架的可维护性和扩展性。

三个核心信号

  1. 🏆 MCP 成为一等公民 — 传输模块迁入 Spring AI 项目,验证机制默认开启,Spring 在 MCP 生态中的话语权显著增强

  2. 🏆 Tool Calling 的统一是架构正确方向 — 从"每个模型自实现"到"统一 Advisor",是 Spring AI 走向成熟的关键一步

  3. 🏆 告别"保姆级"默认值 — 默认温度移除、Options 重构、配置扁平化——Spring AI 正在从"新手友好"走向"专业级框架"

一句话总结

Spring AI 2.0.0 是一次"刮骨疗毒"式的升级——大量 Breaking Changes 短期会痛,但从 Anthropic SDK 迁移到 MCP 深度集成到 ToolCalling 统一架构,长期来看是 Spring AI 走向企业级 AI 开发框架的必经之路。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/spring-ai-2.0.0-release-mcp-native-integration-anthropic-sdk-rebuild

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/