Spring AI 1.0 GA 正式發布!!支持 MCP 很炸裂!! 原創
北京時間 2025 年 5 月 20 日,Spring AI 官方團隊宣布 1.0 GA 版本正式發布,并采用了全新的 Logo。

Spring AI 1.0 GA 功能集剖析
第一、Prompt 提示詞
創建正確的 Prompt(即傳遞給大模型的內容)是一項重要技能。掌握幾種模式可以充分利用 AI 大模型的推理能力,從而獲得最佳結果。

第二、模型增強(The Augmented LLM)
不過,在現實世界的 AI 應用中,對于大模型的需求已經不僅限于與無狀態的 AI 大模型 API 進行簡單的請求和響應交互。
為了開發出高效的 AI 應用程序,一系列輔助功能是必不可少的。模型增強的概念(如下圖所示)正是為了滿足這一需求,它為基本大模型增加了數據檢索(Retrieval Augmented Generation,簡稱 RAG)、對話記憶(Memory)和工具調用(Tool)等功能。這些功能使得用戶能夠將自身的數據和外部 API 直接集成到大模型的推理過程中。

第三、顧問(Advisors)
Spring AI ChatClient 的核心功能之一是 Advisor API。該 API 采用了攔截器鏈的設計模式,這使得用戶能夠通過添加檢索上下文(Retrieval Context)和對話記憶(Chat Memory)來調整輸入的提示(Prompt)。
第四、檢索(Retrieval)
在 AI 應用中,檢索數據的基礎通常是一個數據庫,而向量數據庫因其特性而成為首選。Spring AI 提供了一個通用的向量存儲接口,能夠兼容包括 Azure Cosmos DB 和 Weaviate 在內的多達20種不同類型的向量數據庫。
使用這些數據庫時常見的一個問題是,每種數據庫都有其獨特的元數據過濾查詢語言。為了解決這個問題,Spring AI 引入了一種通用的過濾器表達式語言,該語言采用了類似 SQL 的語法,使得用戶能夠更加方便地進行查詢。如果用戶需要更復雜的查詢,也可以選擇使用數據庫的原生查詢語言。
Spring AI 還包含了一個輕量級且可配置的 ETL(提取、轉換、加載)框架,它簡化了將數據導入向量存儲的過程。這個框架通過支持多種輸入源的 DocumentReader 插件,包括本地文件系統、網頁、GitHub 倉庫、AWS S3、Azure Blob 存儲、Google Cloud Storage、Kafka、MongoDB 以及兼容 JDBC 的數據庫,使得用戶能夠輕松地將內容從幾乎任何地方導入到 RAG (檢索增強生成)流程中。此外,它還內置了對數據分塊、元數據豐富化和嵌入生成的支持。

Spring AI 支持 RAG 模式,這使得 AI 大模型能夠基于傳入的數據生成響應。用戶可以通過簡單的 QuestionAnswerAdvisor 方法將相關上下文注入到提示詞中,或者使用更復雜、更模塊化的 RetrievalAugmentationAdvisor 來擴展 RAG 管道,以滿足 AI 應用的具體需求。
第五、記憶(ChatMemory)
對話歷史是構建 AI 聊天應用的一個關鍵要素。Spring AI 利用 ChatMemory 接口來實現這一點,該接口負責管理消息的保存和提取。MessageWindowChatMemory 的實現方式是在滑動窗口中保存最近 N 條消息,并能夠隨著對話的進行自動更新。它依賴于一個 ChatMemoryRepository,目前我們提供了針對 JDBC、Cassandra 和 Neo4j 的存儲庫實現,并且還在開發更多的版本。
另一種方案是采用
VectorStoreChatMemoryAdvisor這種方法不僅記住了最新的對話內容,還能通過向量搜索技術從歷史對話中找出語義上最接近的消息。
第六、工具(Tool)
Spring AI 可以輕松通過工具擴展模型的功能--自定義函數,讓 AI 檢索外部信息或執行實際操作。工具調用(也稱為函數調用)由 OpenAI 于 2023 年 6 月首次廣泛引入,并在和模型中發布了函數調用功能??。??
?
??

??工具可以獲取當前天氣、查詢數據庫或返回最新新聞,幫助大模型解答訓練數據以外的問題。它們還可以觸發工作流、發送電子郵件或更新系統,從而將模型轉變為應用程序中的活躍參與者。定義工具很簡單:使用 ??@Tool???注解來聲明方法,使用動態注冊 Bean ??@Bean??,或以編程方式創建它們以實現完全控制。
第七、評估(Evaluation)
開發 AI 應用是一件令人興奮的事情,但是如何評估其效能呢?不幸的是,這并不像編寫常規的單元測試或集成測試然后查看測試結果那樣直接。我們需要依據一系列準則來評價 AI 模型的輸出。比如:答案是否與問題相關?它是否產生了不真實的信息?回答是否基于提供的事實?
為了應對這一挑戰,我們應該首先進行所謂的“直覺檢查”。顧名思義,這涉及到手動檢查答案,并運用個人的判斷力來確定答案的正確性。當然,這個過程相當耗時,因此有一系列不斷發展的技術來幫助自動化這一過程。
Spring AI 能夠輕松地檢驗 AI 生成內容的準確性和相關性。它提供了一個靈活的評估器(Evaluator)接口和兩個實用的內置評估器:
- 相關性評估器(RelevancyEvaluator)- 幫助您判斷 AI 的響應是否真正與用戶的問題和檢索到的上下文相匹配。它非常適合測試 RAG 流程,并使用可定制的提示詞來詢問另一個模型:“根據檢索到的內容,這個響應是否合理?”
- 事實核查評估器(FactCheckingEvaluator)- 根據提供的上下文驗證 AI 的響應是否符合事實。它的工作方式是要求模型判斷某個陳述是否在邏輯上得到了文檔的支持。您可以使用如 Bespoke 的 Minicheck(通過 Ollama)等小型模型來運行此評估器,這比每次都使用 GPT-4 這樣的工具成本要低得多。
然而,這并不是萬能的解決方案。Hugging Face “LLM as judges”排行榜的主要維護者 Clémentine Fourrier 警告說,“LLM 作為評委”并非萬能藥。在 Latent Space Podcast 的采訪中,她概述了幾個關鍵問題:
- 模式崩潰和位置偏差:法學碩士評委通常更傾向于來自同一系列模型的答案或顯示的第一個答案。
- 冗長偏見:無論準確性如何,模型對較長的答案評價更高。
- 評分不穩定:排名比評分更可靠;即便如此,可重復性也很弱。
- 過度自信偏見:人們和模型通常更喜歡自信的答案,即使這些答案可能是錯誤的。
第八、可觀測性(Observability)
在 AI 應用系統的生產環境中,為了確保其性能和效果,可觀測性是必不可少的。Spring AI 提供了一種簡便的方式來監控模型的運行狀況、性能指標以及成本消耗。
Spring AI 通過與 Micrometer 的集成,能夠提供關鍵性能指標的詳盡遙測數據,包括:
- 模型響應時間:即模型處理請求并給出響應所需的時間。
- Token 消耗:每個請求的輸入和輸出 Token 數量,這有助于您追蹤并優化成本支出。
- 工具調用和數據檢索:這可以幫助您了解模型在何時發揮了實際作用,而不是僅僅在向量數據庫中進行無效查詢。
此外,您還可以利用 Micrometer Tracing 獲得全面的追蹤支持,它包含了模型交互過程中每個關鍵步驟的詳細信息。您還可以獲取有助于診斷問題的日志信息,這些日志可以展示用戶輸入的提示或向量數據庫的響應內容。
第九、模型上下文協議 MCP
模型上下文協議(MCP) 于 2024 年 11 月問世。它迅速走紅,因為它為 AI 模型與外部工具、提示詞和資源交互提供了一種標準化的方式。MCP 是一種面向客戶端-服務器的協議,一旦構建了 MCP 服務器,就可以輕松地將其應用于您的應用程序,無論 MCP 服務器是用什么編程語言編寫的,MCP 客戶端是用什么編程語言編寫的。
這在工具領域確實取得了長足的進步,盡管 MCP 并不局限于工具。現在,您可以使用“開箱即用”的 MCP 服務器來實現特定功能,比如:與 GitHub 交互,而無需自己編寫代碼。從 AI 工具的角度來看,它就像一個工具類庫,您可以輕松將其添加到您的應用程序中。

Spring AI 團隊在 MCP 規范發布后不久就開始支持該規范,并將這些代碼捐贈給 Anthropic作為 MCP Java SDK的基礎。Spring AI 圍繞此基礎提供了豐富的功能。
第十、智能體(Agent)
2025年被譽為智能體的元年,而一個價值連城的問題是“智能體究竟是什么”。讓我來解答這個問題:智能體的本質在于“利用 AI 模型與外界環境互動,以完成用戶指定的任務”。高效的智能體結合了規劃、記憶和執行能力來達成用戶設定的目標。
智能體主要分為兩大類型:
- 工作流型智能體:這種方法更加有序,其中大型語言模型(LLM)和工具按照預設的流程進行組合。這些工作流是規范性的,引導AI按照既定的步驟操作,以實現可預測的結果。
- 自主決策型智能體:這類智能體允許 LLM 自主規劃和執行任務,無需明確的指令即可自行確定執行路徑,選擇使用哪些工具以及它們的使用順序。
盡管完全自主的智能體因其靈活性而極具吸引力,但對于有明確定義的任務,工作流提供了更好的可預測性和一致性。選擇哪種方法取決于您的具體需求和風險偏好。
工作流(Workflow)Spring AI 支持多種構建代理行為的工作流模式,如下所示:
- 評估器-優化器:該模型分析自身的反應,并通過結構化的自我評估過程進行改進。
- 路由:此模式能夠根據用戶請求和上下文的分類將輸入智能地路由到專門的處理器。
- 協調者-執行者:這種模式是一種靈活的方法,用于處理需要動態任務分解和專門處理的復雜任務。
- 鏈式:該模式將復雜任務分解為一系列步驟,每個 LLM 調用都會處理前一個調用的輸出。
- 并行化:該模式對于需要并行執行LLM調用并自動進行輸出聚合的情況非常有用。
這些模式可以通過 Spring AI 的聊天模型和工具執行功能來實現,框架可以處理大部分底層復雜性。
自主決策型智能體(Autonomous Agent)Spring AI 還支持通過模型上下文協議(MCP)開發自主代理。正在孵化的 Spring MCP Agent 項目展示了如何創建以下智能體:
- 接受用戶指令并自主確定最佳執行方法。
- 通過 MCP 動態發現并利用可用工具。
- 維護執行記憶以跟蹤進度和決策。
- 根據結果遞歸地完善策略。
Spring AI 是一款非常優秀的 AI 應用開發框架,它專為 Java 開發者而設計,幫助 Java 開發者快速構建具備智能化的應用,很高興看到 Spring AI 在今天達成正式 GA 版本!!
本文轉載自??玄姐聊AGI?? 作者:玄姐

















