Spring AI 1.1.0-M1 现已发布

发布 | Mark Pollack | 2025 年 9 月 9 日 | ...

我很高兴代表 Spring AI 工程团队和所有贡献者宣布 Spring AI 1.1.0-M1 已发布,现可从 Maven Central 获取。

此里程碑版本带来了重要的稳定性改进和错误修复。

发布摘要

此版本包括 391 项改进、错误修复和文档更新。此里程碑版本的重点是:

  • 改进:271 项增强功能,以扩展功能和特性
  • 稳定性:76 项错误修复,解决社区报告的问题
  • 文档:32 项改进,以帮助开发者
  • 安全性:12 项依赖项升级,以增强安全性

感谢所有通过问题报告和拉取请求做出贡献的人。

主要亮点

  • 模型上下文协议集成 - 为AI代理开发提供全面的MCP支持

    • MCP Java SDK v0.12.1 基础 (SDK 文档) - 从 v0.10.0 升级,支持 MCP 规范版本 2025-3-26 (Streamable HTTP) 和 2024-11-05 (SSE),并包含最新 2025-06-18 版本的部分功能,带来了 Streamable HTTP 传输、HttpClient/WebClient、WebMVC/WebFlux/Servlet 支持、传输上下文 API、增强的资源模板过滤以及符合 MCP 协议的版本头。
    • Spring AI 自动配置与注解 (客户端文档, 服务器文档, 注解) - 完整的 Spring Boot 集成,包含多个 MCP 客户端MCP 服务器 Boot Starters,自动客户端/服务器生命周期管理,以及新的基于注解的编程模型,包括 @McpTool, @McpResource, @McpPrompt 等,用于声明式 MCP 开发。
  • 扩展的模型支持 - 全面集成下一代AI模型

    • Google GenAI SDK 集成 (文档) - 感谢 Dan Dobrin 的杰出贡献,Spring AI 现在包含了 Google 的统一 GenAI SDK,支持双重认证(原型开发使用 API 密钥,生产环境使用 Google Cloud 凭证),涵盖 Gemini Pro、1.5 Pro 和 2.0 Flash 模型,具备完整的工具调用和多模态能力。
    • Anthropic Claude 提示缓存 (文档) - 提示缓存支持四种缓存策略 (NONE, SYSTEM_ONLY, SYSTEM_AND_TOOLS, CONVERSATION_HISTORY),提供 5 分钟和 1 小时 TTL 选项,为自主代理工作流程带来高达 90% 的成本降低和改进的延迟。
    • OpenAI GPT-5 模型支持 - 增加了对新的 GPT-5 模型家族(gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-chat-latest)的支持,包括详细程度参数配置和适当的温度约束处理。
    • ElevenLabs 文本转语音 (文档) - 感谢 Alexandros Pappas 提供的完整文本转语音集成,包括支持流式传输的 ElevenLabsTextToSpeechModel、可配置的语音选择、多种音频格式,以及用于无缝 Spring Boot 集成的 spring-ai-starter-model-elevenlabs
  • 高级向量存储和 RAG 功能 - MariaDB 中改进的相似性评分 (891ef2a),增强的 Weaviate 配置 (#3585),以及新的 VectorStoreRetriever 接口 (#3827, 文档) - 一个遵循最小权限原则的只读函数式接口,用于文档检索操作。

  • 增强的多模态处理 - OpenAI 聊天模型支持 PDF 文档,跨提供商的标准化音频转录接口,以及向量存储操作的强大文档验证,从而实现丰富的多媒体 AI 体验。

  • 生产就绪的稳定性 - 解决了社区报告的 76 个关键错误,以及 32 项文档改进和 12 项面向安全的依赖升级。

这些改进确保 Spring AI 继续为构建生产就绪的 AI 应用程序提供强大而可靠的基础,特别注重增强的 MCP 集成,从而实现高级 AI 代理功能。

🚀 模型上下文协议深入探究

Spring AI 1.1.0-M1 通过增强的模型上下文协议 (MCP) 集成,显著改进了 AI 代理功能。此版本从 MCP Java SDK v0.10.0 升级到 v0.12.1,提供了急需的功能和重要的架构改进。

Streamable HTTP 传输支持

引入了 Streamable HTTP 客户端和服务器传输,这是自 MCP 2025-03-26 规范发布以来备受请求的功能。

Streamable HTTP 支持实现了

  • 有状态会话管理 - 支持服务器建立有状态会话
  • 可恢复性和重新投递 - 有状态会话管理可以恢复中断的连接,并重新投递可能丢失的消息
  • 无状态 Streamable HTTP - Streamable-HTTP 规范的一个子集,返回 application/json 响应。专为请求之间不维护会话状态的简化部署而设计。无状态传输是扩展微服务的理想选择。
  • 多种传输实现 - 基于 JDK 的 Servlet 和基于 Spring 的 WebMVC 和 WebFlux Streamable-HTTP 传输实现
  • 通过 MCP-Protocol-Version 头(Streamable HTTP 为 2025-06-18,SSE 为 2024-11-05)实现协议兼容性

Spring Boot 自动配置和注解编程模型

Spring AI 通过多个专用 starter 为 MCP 提供全面的 Spring Boot 集成

  • 客户端 Starter
    • spring-ai-starter-mcp-client-webflux 基于 Spring 的 WebClient、STDIO、Streamable HTTP 和 SSE 客户端传输
    • spring-ai-starter-mcp-client 基于 JDK 的 HttpClient、STDIO、Streamable HTTP 和 SSE 客户端传输
  • 服务器 Starter - 多种传输选项,包括 spring-ai-starter-mcp-server (STDIO)、spring-ai-starter-mcp-server-webflux (响应式)、spring-ai-starter-mcp-server-webmvc (基于 Servlet)
  • 注解编程模型 - 新的声明式方法,带有用于服务器的 @McpTool@McpResource@McpPrompt@McpComplete,以及用于客户端的 @McpLogging@McpSampling@McpElicitation@McpProgress,消除了样板代码。
  • 自动生命周期管理 - 通过 Spring 属性进行客户端/服务器初始化、资源清理和配置。

增强的连接管理和自定义

  • 符合 MCP 的 Keep-Alive - 可配置的周期性会话 ping,带有 KeepAliveScheduler 实用程序,用于可靠的长时间连接。
  • HTTP 请求自定义 API - 通过 HttpRequestCustomizer 内置支持 OAuth2 令牌、API 密钥和自定义请求修改。
  • 传输上下文支持 - 统一 API,用于在客户端和服务器之间传播请求上下文,实现身份验证令牌流和关联 ID 跟踪。

生产就绪功能

  • 改进的错误处理 - 更好地兼容不合规服务器和详细的错误报告。
  • 连接可靠性 - 增强的会话管理、可恢复性、重新投递、自动重试和优雅降级。

这种 MCP 集成增强了 Spring AI 在 AI 代理开发方面的能力,使开发人员能够使用 Spring 开发人员熟悉的可靠模式构建复杂的、支持工具的 AI 应用程序。

Spring AI 1.1.0-M1 中的 MCP 安全功能

当前安全状态

Spring AI 1.1.0-M1 为模型上下文协议实现引入了基础安全功能。对于基于 WebMVC 的 MCP 服务器,Spring AI 提供完整的线程局部支持,使 Spring Security 的方法级注解(如 @PreAuthorize)能够无缝集成到 MCP 工具、资源和提示中。该框架包括 OAuth2 集成模式和 HTTP 请求自定义抽象(McpSyncHttpRequestCustomizer 和 McpAsyncHttpRequestCustomizer),用于安全的客户端通信,并提供一个 OAuth2 服务器示例,演示基于 JWT 的身份验证。

未来安全开发

尽管基础安全基础设施已就绪,但全面的安全文档和示例仍在积极开发中。Spring AI 社区 MCP 安全项目将提供额外的安全工具和简化的配置模式。详细的安全指南、最佳实践文档和扩展示例将在未来的博客文章和文档更新中发布。响应式 MCP 服务器的 WebFlux 安全集成计划在未来版本中实现。

特别感谢 MCP Java SDK 社区为使此集成成为可能而在底层 SDK 上所做的出色工作。

Christian Tzolov (@tzolov), Dariusz Jędrzejczyk (@chemicL), Daniel Garnier-Moiroux (@Kehrlann), Mark Pollack (@markpollack), Richie Caputo (@arcaputo3), Ilayaperumal Gopinathan (@ilayaperumalg), James Ward (@jamesward), Zachary German (@ZachGerman), @zekozhang, @denniskawurek, @CrazyHZM, @marianogonzalez, @konczdev, @He-Pin, @codeboyzhou, @codezjx, @DamonBao, @jitokim, @xiaowangzhixiao, @FH-30, @LucaButBoring, @epaga

📚 新示例和增强型存储库

Spring AI 示例存储库自 1.0.1 版本发布以来得到了显著增强,包含了全面的新示例和改进的测试基础设施。该存储库现在包含 37 个模块,其中 24 个模块具有集成测试和 AI 驱动的验证。

1.0.1 以来的主要更新

  • 全面的 MCP 示例 - 广泛的模型上下文协议示例,展示了 v0.12.1 的功能。
  • AI 驱动的验证 - 带有智能输出验证的新集成测试框架。
  • 增强的文档 - 改进的设置说明和示例解释。
  • 生产模式 - Docker 部署示例和 OAuth2 认证模式。

新 MCP 示例亮点

MCP 注解框架

mcp-annotations - 完整的注解驱动 MCP 开发示例,包括:

  • 服务器实现 - 天气工具、用户资料资源、问候提示和使用 @McpTool@McpResource@McpPrompt@McpComplete 的自动补全。
  • 客户端实现 - 使用 @McpProgress@McpLogging@McpSampling 的进度跟踪、日志记录和采样处理程序。
  • 混合注解模式 - MCP 注解和 Spring AI @Tool 注解协同工作。

sampling/annotations - 演示 Spring AI 中使用基于注解的方法实现模型上下文协议 (MCP) 采样功能。

动态工具管理

dynamic-tool-update - 演示运行时工具注册和客户端检测。

  • 运行时工具添加 - 服务器动态暴露新的数学操作以及现有的天气工具。
  • 客户端工具发现 - 自动检测和利用新可用的工具。
  • 通知系统 - 工具能力变化时的实时更新。

Docker MCP 网关集成

brave-docker-agents-gateway - 使用 Docker 的 MCP 网关进行生产部署。

  • Docker Agents Gateway - 使用 Docker 的 docker/agents_gateway:v2 镜像进行 MCP 服务器编排。
  • Brave 搜索集成 - 通过使用 MCP 协议的会话界面进行自然语言互联网搜索。
  • 容器化架构 - 完整的 Docker Compose 设置,包括 secrets 管理和 SSE 传输。
  • Spring Boot MCP 客户端 - 简化连接到 Docker 化 MCP 服务的客户端配置。

多种传输示例

这些示例展示了所有支持的 MCP 传输:

  • STDIO - 用于本地工具执行的基于进程的通信。
  • HTTP SSE - 用于基于网络的实时更新的服务器发送事件。
  • Streamable HTTP - 用于可伸缩部署的现代 HTTP 流。
  • 无状态 Streamable HTTP - 用于可伸缩部署的现代 HTTP 流。
  • WebMVC & WebFlux - 传统的 Servlet 和响应式实现。

这些示例为在生产应用程序中实施 MCP 提供了实用指导,从简单的基于注解的工具到复杂的动态代理系统。每个示例都包含全面的文档、设置说明和集成测试。

社区

Spring AI 社区持续发展并以有意义的方式做出贡献。此版本包含了报告问题、提交修复和提供宝贵反馈的社区成员的贡献。

🙏 贡献者

感谢所有为本次发布做出贡献的开发者

你如何提供帮助?

如果您有兴趣贡献,请查看我们问题存储库中的 “理想贡献”标签。对于一般问题,请在 Stack Overflow 上使用 spring-ai 标签提问。

下一步计划

Spring AI 团队将继续专注于使用 Spring Boot 改进 AI 应用程序开发。基于 1.1.0-M1 的势头,即将发布的版本将在此基础上构建,提供增强的功能和改进的开发人员体验。

有关最新更新并为项目做出贡献,请访问我们的 GitHub 仓库或加入我们社区频道的讨论。

资源

项目页面 | GitHub | 问题 | 文档 | Stack Overflow

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有