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 社群所有即將舉行的活動。

檢視所有