易君召
易君召
发布于 2026-06-15 / 9 阅读
0
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.transportorg.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 模块从 SpeechModelTextToSpeechModel(统一接口)

  • 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/archives/spring-ai-2.0.0-release-mcp-native-integration-anthropic-sdk-rebuild

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/


评论