[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-spring-projects--spring-ai":3,"tool-spring-projects--spring-ai":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":109,"forks":110,"last_commit_at":111,"license":112,"difficulty_score":32,"env_os":113,"env_gpu":114,"env_ram":113,"env_deps":115,"category_tags":124,"github_topics":126,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":130,"updated_at":131,"faqs":132,"releases":161},6506,"spring-projects\u002Fspring-ai","spring-ai","An Application Framework for AI Engineering","Spring AI 是一个专为 Java 开发者打造的 AI 应用开发框架，旨在将成熟的 Spring 生态系统设计原则引入人工智能领域。它核心解决了企业现有数据、API 与各类大语言模型之间难以高效连接和集成的痛点，让开发者无需在不同厂商的专有 SDK 间反复切换。\n\n无论是希望构建智能应用的 Java 工程师，还是需要在企业级架构中落地生成式 AI 的团队，Spring AI 都提供了标准化的解决方案。其独特亮点在于“一次编写，多处运行”的可移植 API，统一支持 OpenAI、Anthropic、Google、Ollama 等主流模型提供商，涵盖聊天、嵌入、图像生成及语音处理等多种能力。此外，它创新性地提供了类似 SQL 的元数据过滤接口以兼容多种向量数据库，并支持将 AI 输出直接映射为 Java 对象（POJO），极大简化了结构化数据处理。\n\n受到 LangChain 等 Python 项目的启发，Spring AI 并非简单复制，而是致力于证明生成式 AI 开发不应局限于单一语言。通过提供同步与流式调用选项以及完善的工具函数调用支持，Spring AI 帮助开发者利用熟悉的","Spring AI 是一个专为 Java 开发者打造的 AI 应用开发框架，旨在将成熟的 Spring 生态系统设计原则引入人工智能领域。它核心解决了企业现有数据、API 与各类大语言模型之间难以高效连接和集成的痛点，让开发者无需在不同厂商的专有 SDK 间反复切换。\n\n无论是希望构建智能应用的 Java 工程师，还是需要在企业级架构中落地生成式 AI 的团队，Spring AI 都提供了标准化的解决方案。其独特亮点在于“一次编写，多处运行”的可移植 API，统一支持 OpenAI、Anthropic、Google、Ollama 等主流模型提供商，涵盖聊天、嵌入、图像生成及语音处理等多种能力。此外，它创新性地提供了类似 SQL 的元数据过滤接口以兼容多种向量数据库，并支持将 AI 输出直接映射为 Java 对象（POJO），极大简化了结构化数据处理。\n\n受到 LangChain 等 Python 项目的启发，Spring AI 并非简单复制，而是致力于证明生成式 AI 开发不应局限于单一语言。通过提供同步与流式调用选项以及完善的工具函数调用支持，Spring AI 帮助开发者利用熟悉的 Spring Boot 技术栈，轻松构建模块化、可维护的下一代智能应用。","# Spring AI [![build status](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Factions\u002Fworkflows\u002Fcontinuous-integration.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Factions\u002Fworkflows\u002Fcontinuous-integration.yml) [![build status](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-integration-tests\u002Factions\u002Fworkflows\u002Fspring-ai-integration-tests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-integration-tests\u002Factions\u002Fworkflows\u002Fspring-ai-integration-tests.yml) [![Maven Central](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Forg.springframework.ai\u002Fspring-ai-model?label=Maven%20Central&versionPrefix=2.0)](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Forg.springframework.ai\u002Fspring-ai-model)\n\n### Spring Boot Version Compatibility\n\n> **Spring AI 2.x.x** ([main](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Ftree\u002Fmain) branch) - Spring Boot `4.x`\n>\n> **Spring AI 1.1.x** ([1.1.x](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Ftree\u002F1.1.x) branch) - Spring Boot `3.5.x`\n\n\nThe Spring AI project provides a Spring-friendly API and abstractions for developing AI applications.\n\nIts goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain.\n\n![spring-ai-integration-diagram-3](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F_images\u002Fspring-ai-integration-diagram-3.svg)\n\n> At its core, Spring AI addresses the fundamental challenge of AI integration: Connecting your enterprise __Data__ and __APIs__ with the __AI Models__.\n\nThe project draws inspiration from notable Python projects, such as [LangChain](https:\u002F\u002Fdocs.langchain.com\u002Fdocs\u002F) and [LlamaIndex](https:\u002F\u002Fgpt-index.readthedocs.io\u002Fen\u002Flatest\u002Fgetting_started\u002Fconcepts.html), but Spring AI is not a direct port of those projects. The project was founded with the belief that the next wave of Generative AI applications will not be only for Python developers but will be ubiquitous across many programming languages.\n\nYou can check out the blog post [Why Spring AI](https:\u002F\u002Fspring.io\u002Fblog\u002F2024\u002F11\u002F19\u002Fwhy-spring-ai) for additional motivations.\n\nThis is a high level feature overview.\nYou can find more details in the [Reference Documentation](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F)\n\n* Support for all major [AI Model providers](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Findex.html) such as Anthropic, OpenAI, Microsoft, Amazon, Google, and Ollama. Supported model types include:\n  - [Chat Completion](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatmodel.html)\n  - [Embedding](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fembeddings.html)\n  - [Text to Image](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fimageclient.html)\n  - [Audio Transcription](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Faudio\u002Ftranscriptions.html)\n  - [Text to Speech](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Faudio\u002Fspeech.html)\n  - [Moderation](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Findex.html#api\u002Fmoderation)\n  - **Latest Models**: GPT-5, and other cutting-edge models for advanced AI applications.\n* Portable API support across AI providers for both synchronous and streaming options. Access to [model-specific features](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatmodel.html#_chat_options) is also available.\n* [Structured Outputs](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fstructured-output-converter.html) - Mapping of AI Model output to POJOs.\n* Support for all major [Vector Database providers](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fvectordbs.html) such as *Apache Cassandra, Azure Vector Search, Chroma, Elasticsearch, Milvus, MongoDB Atlas, MariaDB, Neo4j, Oracle, PostgreSQL\u002FPGVector, Pinecone, Qdrant, Redis, and Weaviate*.\n* Portable API across Vector Store providers, including a novel SQL-like [metadata filter API](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fvectordbs.html#metadata-filters).\n* [Tools\u002FFunction Calling](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Ftools.html) - permits the model to request the execution of client-side tools and functions, thereby accessing necessary real-time information as required.\n* [Observability](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fobservability\u002Findex.html) - Provides insights into AI-related operations.\n* Document injection [ETL framework](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fetl-pipeline.html) for Data Engineering.\n* [AI Model Evaluation](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Ftesting.html) - Utilities to help evaluate generated content and protect against hallucinated response.\n* [ChatClient API](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatclient.html) - Fluent API for communicating with AI Chat Models, idiomatically similar to the WebClient and RestClient APIs.\n* [Advisors API](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fadvisors.html) - Encapsulates recurring Generative AI patterns, transforms data sent to and from Language Models (LLMs), and provides portability across various models and use cases.\n* Support for [Chat Conversation Memory](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatclient.html#_chat_memory) and [Retrieval Augmented Generation (RAG)](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatclient.html#_retrieval_augmented_generation).\n* Spring Boot Auto Configuration and Starters for all AI Models and Vector Stores - use the [start.spring.io](https:\u002F\u002Fstart.spring.io\u002F) to select the Model or Vector-store of choice. \n\n## Getting Started\n\nPlease refer to the [Getting Started Guide](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fgetting-started.html) for instruction on adding your dependencies.\n\n## Project Resources\n\n* [Documentation](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F)\n* [Issues](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues)\n\u003C!-- * [Discussions](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fdiscussions) - Go here if you have a question, suggestion, or feedback! -->\n* [Awesome Spring AI](https:\u002F\u002Fgithub.com\u002Fspring-ai-community\u002Fawesome-spring-ai) - A curated list of awesome resources, tools, tutorials, and projects for building generative AI applications using Spring AI\n* [Spring AI Examples](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-examples) contains example projects that explain specific features in more detail.\n* [Spring AI Community](https:\u002F\u002Fgithub.com\u002Fspring-ai-community) - A community-driven organization for building Spring-based integrations with AI models, agents, vector databases, and more.\n\n## Breaking changes\n\n* Refer to the [upgrade notes](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fupgrade-notes.html) to see how to upgrade to 1.0.0.M1 or higher.\n\n## Cloning the repo\n\nThis repository contains [large model files](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Ftree\u002Fmain\u002Fmodels\u002Fspring-ai-transformers\u002Fsrc\u002Fmain\u002Fresources\u002Fonnx\u002Fall-MiniLM-L6-v2).\nTo clone it you have to either:\n\n- Ignore the large files (won't affect the spring-ai behaviour) :  `GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:spring-projects\u002Fspring-ai.git`.\n- Or install the [Git Large File Storage](https:\u002F\u002Fgit-lfs.com\u002F) before cloning the repo.\n\n\n## Building\n\nThe project targets and build artifacts compatible with Java 17+, but requires JDK 21\nto build. This is enforced by the maven enforcer plugin.\n\nTo build with running unit tests\n\n```shell\n.\u002Fmvnw clean package\n```\n\nTo build including integration tests.\n\n```shell\n.\u002Fmvnw clean verify -Pintegration-tests\n```\n\nNote that you should set API key environment variables for OpenAI or other model providers before running.  If the API key isn't set for a specific model provider, the integration test is skipped.\n\nTo run a specific integration test allowing for up to two attempts to succeed.  This is useful when a hosted service is not reliable or times out.\n```shell\n.\u002Fmvnw -pl vector-stores\u002Fspring-ai-pgvector-store -am -Pintegration-tests -Dfailsafe.failIfNoSpecifiedTests=false -Dfailsafe.rerunFailingTestsCount=2 -Dit.test=PgVectorStoreIT verify\n```\n\n### Integration Tests\nThere are many integration tests, so it often isn't realistic to run them all at once.\n\nA quick pass through the most important pathways that runs integration tests for\n\n* OpenAI models \n* OpenAI autoconfiguration\n* PGVector\n* Chroma\n\ncan be done with the profile `-Pci-fast-integration-tests` and is used in the main CI build of this project.\n\nA full integration test is done twice a day in the [Spring AI Integration Test Repository](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-integration-tests)\n\nOne way to run integration tests on part of the code is to first do a quick compile and install of the project\n\n```shell\n.\u002Fmvnw clean install -DskipTests -Dmaven.javadoc.skip=true\n```\nThen run the integration test for a specific module using the `-pl` option\n\n```shell\n.\u002Fmvnw verify -Pintegration-tests -pl spring-ai-spring-boot-testcontainers\n```\n\n### Documentation\n\nTo build the docs\n```shell\n.\u002Fmvnw -pl spring-ai-docs antora\n```\n\nThe docs are then in the directory `spring-ai-docs\u002Ftarget\u002Fantora\u002Fsite\u002Findex.html`\n\n### Formatting the Source Code\n\nThe code is formatted using the [java-format plugin](https:\u002F\u002Fgithub.com\u002Fspring-io\u002Fspring-javaformat) as part of the build. Correct\nformatting is enforced by CI.\n\n### Updating License Headers\n\nTo update the year on license headers using the [license-maven-plugin](https:\u002F\u002Foss.carbou.me\u002Flicense-maven-plugin\u002F#goals)\n```shell\n.\u002Fmvnw license:update-file-header -Plicense\n```\n### Javadocs\n\nTo check javadocs using the [javadoc:javadoc](https:\u002F\u002Fmaven.apache.org\u002Fplugins\u002Fmaven-javadoc-plugin\u002F)\n```shell\n.\u002Fmvnw javadoc:javadoc\n```\n\n#### Source Code Style\n\nSpring AI source code checkstyle tries to follow the checkstyle guidelines used by the core Spring Framework project with some exceptions.\nThe wiki pages\n[Code Style](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-framework\u002Fwiki\u002FCode-Style) and\n[IntelliJ IDEA Editor Settings](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-framework\u002Fwiki\u002FIntelliJ-IDEA-Editor-Settings)\ndefine the source file coding standards we use along with some IDEA editor settings we customize.\n\nRun checkstyle manually:\n```shell\n.\u002Fmvnw process-sources -P checkstyle-check\n```\n\n## Contributing\n\nYour contributions are always welcome! Please read the [contribution guidelines](CONTRIBUTING.adoc) first.\n","# Spring AI [![构建状态](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Factions\u002Fworkflows\u002Fcontinuous-integration.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Factions\u002Fworkflows\u002Fcontinuous-integration.yml) [![构建状态](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-integration-tests\u002Factions\u002Fworkflows\u002Fspring-ai-integration-tests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-integration-tests\u002Factions\u002Fworkflows\u002Fspring-ai-integration-tests.yml) [![Maven Central](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Forg.springframework.ai\u002Fspring-ai-model?label=Maven%20Central&versionPrefix=2.0)](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Forg.springframework.ai\u002Fspring-ai-model)\n\n### Spring Boot 版本兼容性\n\n> **Spring AI 2.x.x**（[main](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Ftree\u002Fmain) 分支）- Spring Boot `4.x`\n>\n> **Spring AI 1.1.x**（[1.1.x](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Ftree\u002F1.1.x) 分支）- Spring Boot `3.5.x`\n\n\nSpring AI 项目提供了一个对 Spring 友好的 API 和抽象层，用于开发 AI 应用程序。\n\n其目标是将 Spring 生态系统的设计原则，如可移植性和模块化设计，应用于 AI 领域，并在 AI 领域推广使用 POJO 作为应用程序的构建块。\n\n![spring-ai-integration-diagram-3](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F_images\u002Fspring-ai-integration-diagram-3.svg)\n\n> 在核心层面，Spring AI 解决了 AI 集成的根本挑战：将企业的 __数据__ 和 __API__ 与 __AI 模型__ 连接起来。\n\n该项目受到一些著名的 Python 项目启发，例如 [LangChain](https:\u002F\u002Fdocs.langchain.com\u002Fdocs\u002F) 和 [LlamaIndex](https:\u002F\u002Fgpt-index.readthedocs.io\u002Fen\u002Flatest\u002Fgetting_started\u002Fconcepts.html)，但 Spring AI 并不是这些项目的直接移植。该项目的创立基于这样一种信念：下一代生成式 AI 应用程序不仅会面向 Python 开发人员，还将在多种编程语言中普及。\n\n您可以在博客文章 [Why Spring AI](https:\u002F\u002Fspring.io\u002Fblog\u002F2024\u002F11\u002F19\u002Fwhy-spring-ai) 中找到更多相关的动机。\n\n以下是高层次的功能概述。\n更多详细信息请参阅 [参考文档](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F)\n\n* 支持所有主要的 [AI 模型提供商](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Findex.html)，如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama。支持的模型类型包括：\n  - [聊天完成](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatmodel.html)\n  - [嵌入](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fembeddings.html)\n  - [文本转图像](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fimageclient.html)\n  - [音频转录](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Faudio\u002Ftranscriptions.html)\n  - [文本转语音](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Faudio\u002Fspeech.html)\n  - [内容审核](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Findex.html#api\u002Fmoderation)\n  - **最新模型**：GPT-5 等前沿模型，适用于高级 AI 应用程序。\n* 跨 AI 提供商的可移植 API，支持同步和流式传输两种方式。还可以访问 [模型特定功能](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatmodel.html#_chat_options)。\n* [结构化输出](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fstructured-output-converter.html) - 将 AI 模型的输出映射到 POJO。\n* 支持所有主要的 [向量数据库提供商](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fvectordbs.html)，如 *Apache Cassandra、Azure Vector Search、Chroma、Elasticsearch、Milvus、MongoDB Atlas、MariaDB、Neo4j、Oracle、PostgreSQL\u002FPGVector、Pinecone、Qdrant、Redis 和 Weaviate*。\n* 跨向量存储提供商的可移植 API，包括一种新颖的类似 SQL 的 [元数据过滤 API](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fvectordbs.html#metadata-filters)。\n* [工具\u002F函数调用](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Ftools.html) - 允许模型请求执行客户端工具和函数，从而根据需要访问必要的实时信息。\n* [可观测性](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fobservability\u002Findex.html) - 提供对 AI 相关操作的洞察。\n* 数据工程中的文档注入 [ETL 框架](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fetl-pipeline.html)。\n* [AI 模型评估](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Ftesting.html) - 提供实用工具来评估生成的内容，并防止出现幻觉式响应。\n* [ChatClient API](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatclient.html) - 用于与 AI 聊天模型通信的流畅 API，其语法风格类似于 WebClient 和 RestClient API。\n* [顾问 API](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fadvisors.html) - 封装了常见的生成式 AI 模式，转换发送给语言模型 (LLM) 和从语言模型返回的数据，并实现跨不同模型和用例的可移植性。\n* 支持 [聊天对话记忆](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatclient.html#_chat_memory) 和 [检索增强生成 (RAG)](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fapi\u002Fchatclient.html#_retrieval_augmented_generation)。\n* Spring Boot 自动配置和启动器，适用于所有 AI 模型和向量存储 - 使用 [start.spring.io](https:\u002F\u002Fstart.spring.io\u002F) 选择您所需的模型或向量存储。\n\n## 入门指南\n\n请参阅 [入门指南](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fgetting-started.html) 以了解如何添加依赖项。\n\n## 项目资源\n\n* [文档](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F)\n* [问题](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues)\n\u003C!-- * [讨论](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fdiscussions) - 如果您有任何疑问、建议或反馈，请在此处提问！ -->\n* [Awesome Spring AI](https:\u002F\u002Fgithub.com\u002Fspring-ai-community\u002Fawesome-spring-ai) - 一个精选的资源、工具、教程和项目列表，用于使用 Spring AI 构建生成式 AI 应用程序\n* [Spring AI 示例](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-examples) 包含详细解释特定功能的示例项目。\n* [Spring AI 社区](https:\u002F\u002Fgithub.com\u002Fspring-ai-community) - 一个由社区驱动的组织，致力于构建基于 Spring 的 AI 模型、智能体、向量数据库等集成。\n\n## 重大变更\n\n* 请参阅 [升级说明](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002Fupgrade-notes.html) 以了解如何升级到 1.0.0.M1 或更高版本。\n\n## 克隆仓库\n\n该仓库包含[大型模型文件](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Ftree\u002Fmain\u002Fmodels\u002Fspring-ai-transformers\u002Fsrc\u002Fmain\u002Fresources\u002Fonnx\u002Fall-MiniLM-L6-v2)。\n要克隆它，您需要：\n\n- 忽略大文件（不会影响 spring-ai 的行为）：`GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:spring-projects\u002Fspring-ai.git`。\n- 或者在克隆仓库之前安装 [Git Large File Storage](https:\u002F\u002Fgit-lfs.com\u002F)。\n\n\n## 构建\n\n该项目的目标和构建产物兼容 Java 17 及以上版本，但需要使用 JDK 21 才能进行构建。这一点由 Maven Enforcer 插件强制执行。\n\n要构建并运行单元测试：\n\n```shell\n.\u002Fmvnw clean package\n```\n\n要构建并包含集成测试：\n\n```shell\n.\u002Fmvnw clean verify -Pintegration-tests\n```\n\n请注意，在运行测试之前，您应设置 OpenAI 或其他模型提供商的 API 密钥环境变量。如果未为特定的模型提供商设置 API 密钥，则会跳过相应的集成测试。\n\n要运行特定的集成测试，并允许最多两次重试以成功。这在托管服务不可靠或超时时非常有用：\n\n```shell\n.\u002Fmvnw -pl vector-stores\u002Fspring-ai-pgvector-store -am -Pintegration-tests -Dfailsafe.failIfNoSpecifiedTests=false -Dfailsafe.rerunFailingTestsCount=2 -Dit.test=PgVectorStoreIT verify\n```\n\n### 集成测试\n集成测试数量众多，因此通常不可能一次性全部运行。\n\n可以通过 `-Pci-fast-integration-tests` 配置文件快速遍历最重要的路径，运行以下集成测试：\n\n* OpenAI 模型\n* OpenAI 自动配置\n* PGVector\n* Chroma\n\n此配置文件用于本项目的主 CI 构建中。\n\n完整的集成测试每天会在 [Spring AI 集成测试仓库](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai-integration-tests) 中执行两次。\n\n一种仅对部分代码运行集成测试的方法是先快速编译并安装项目：\n\n```shell\n.\u002Fmvnw clean install -DskipTests -Dmaven.javadoc.skip=true\n```\n\n然后使用 `-pl` 选项为特定模块运行集成测试：\n\n```shell\n.\u002Fmvnw verify -Pintegration-tests -pl spring-ai-spring-boot-testcontainers\n```\n\n### 文档\n要构建文档：\n\n```shell\n.\u002Fmvnw -pl spring-ai-docs antora\n```\n\n生成的文档位于 `spring-ai-docs\u002Ftarget\u002Fantora\u002Fsite\u002Findex.html` 目录下。\n\n### 源代码格式化\n代码在构建过程中会使用 [java-format 插件](https:\u002F\u002Fgithub.com\u002Fspring-io\u002Fspring-javaformat) 进行格式化。正确的格式由 CI 强制执行。\n\n### 更新许可证头\n要使用 [license-maven-plugin](https:\u002F\u002Foss.carbou.me\u002Flicense-maven-plugin\u002F#goals) 更新许可证头中的年份：\n\n```shell\n.\u002Fmvnw license:update-file-header -Plicense\n```\n\n### Javadoc\n要使用 [javadoc:javadoc](https:\u002F\u002Fmaven.apache.org\u002Fplugins\u002Fmaven-javadoc-plugin\u002F) 检查 Javadoc：\n\n```shell\n.\u002Fmvnw javadoc:javadoc\n```\n\n#### 源代码风格\nSpring AI 的源代码 Checkstyle 检查试图遵循 Spring 核心框架项目所使用的 Checkstyle 指南，但也有一些例外。维基页面\n[代码风格](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-framework\u002Fwiki\u002FCode-Style) 和\n[IntelliJ IDEA 编辑器设置](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-framework\u002Fwiki\u002FIntelliJ-IDEA-Editor-Settings)\n定义了我们使用的源文件编码标准以及我们自定义的一些 IDEA 编辑器设置。\n\n手动运行 Checkstyle：\n\n```shell\n.\u002Fmvnw process-sources -P checkstyle-check\n```\n\n## 贡献\n您的贡献始终受到欢迎！请先阅读[贡献指南](CONTRIBUTING.adoc)。","# Spring AI 快速上手指南\n\nSpring AI 旨在为 Java 开发者提供一套符合 Spring 生态设计原则（如可移植性、模块化）的 API，用于轻松构建生成式 AI 应用。它支持连接企业数据与主流 AI 模型（如 OpenAI、Anthropic、Ollama 等），并兼容多种向量数据库。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **JDK 版本**：\n    *   **构建要求**：必须安装 **JDK 21**（项目构建强制要求）。\n    *   **运行要求**：生成的制品兼容 **Java 17+**。\n*   **构建工具**：Maven 或 Gradle（推荐使用项目自带的 Maven Wrapper）。\n*   **Spring Boot 版本兼容性**：\n    *   **Spring AI 2.x** (main 分支)：需配合 **Spring Boot 4.x**。\n    *   **Spring AI 1.1.x** (1.1.x 分支)：需配合 **Spring Boot 3.5.x**。\n*   **API Key**：若使用云端模型（如 OpenAI），需提前准备好对应的 API Key 并配置为环境变量。\n\n## 2. 安装步骤\n\n推荐使用 `start.spring.io` 初始化项目，或通过 Maven\u002FGradle 手动添加依赖。\n\n### 方式一：使用 Spring Initializr (推荐)\n\n访问 [start.spring.io](https:\u002F\u002Fstart.spring.io\u002F)，在 \"Dependencies\" 中搜索并添加 **Spring AI** 相关的 Starter（例如 `Spring AI OpenAI` 或 `Spring AI Ollama`），然后生成项目。\n\n### 方式二：手动添加依赖\n\n在您的 `pom.xml` 中添加以下依赖（以 OpenAI 为例，请根据实际使用的模型提供商选择对应的 starter）：\n\n```xml\n\u003Cdependencies>\n    \u003C!-- Spring Boot Starter Web (基础依赖) -->\n    \u003Cdependency>\n        \u003CgroupId>org.springframework.boot\u003C\u002FgroupId>\n        \u003CartifactId>spring-boot-starter-web\u003C\u002FartifactId>\n    \u003C\u002Fdependency>\n\n    \u003C!-- Spring AI OpenAI Starter -->\n    \u003Cdependency>\n        \u003CgroupId>org.springframework.ai\u003C\u002FgroupId>\n        \u003CartifactId>spring-ai-openai-spring-boot-starter\u003C\u002FartifactId>\n        \u003C!-- 版本号通常由 Spring Boot BOM 管理，若需指定请参考 Maven Central 最新版本 -->\n    \u003C\u002Fdependency>\n\u003C\u002Fdependencies>\n```\n\n> **注意**：如果您使用的是快照版本或非正式发布版，可能需要在 `pom.xml` 中配置 Spring Milestones 或 Snapshots 仓库。\n\n### 配置 API Key\n\n在 `application.properties` 或 `application.yml` 中配置您的模型凭证：\n\n```properties\n# OpenAI 示例\nspring.ai.openai.api-key=${OPENAI_API_KEY}\n```\n\n或者在终端导出环境变量：\n```bash\nexport OPENAI_API_KEY=\"your-api-key-here\"\n```\n\n## 3. 基本使用\n\nSpring AI 提供了流畅的 `ChatClient` API，风格类似于 `WebClient` 和 `RestClient`。以下是一个最简单的聊天交互示例。\n\n### 创建 ChatClient Bean\n\n首先，在配置类中注入默认的 `ChatModel` 并构建 `ChatClient`：\n\n```java\nimport org.springframework.ai.chat.client.ChatClient;\nimport org.springframework.ai.chat.model.ChatModel;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n@Configuration\npublic class AiConfig {\n\n    @Bean\n    public ChatClient chatClient(ChatModel chatModel) {\n        return ChatClient.builder(chatModel).build();\n    }\n}\n```\n\n### 调用 AI 模型\n\n在服务层或控制器中直接使用 `ChatClient` 进行对话：\n\n```java\nimport org.springframework.ai.chat.client.ChatClient;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class AiController {\n\n    private final ChatClient chatClient;\n\n    public AiController(ChatClient chatClient) {\n        this.chatClient = chatClient;\n    }\n\n    @GetMapping(\"\u002Fai\u002Fchat\")\n    public String chat(@RequestParam(value = \"message\", defaultValue = \"Hello\") String message) {\n        \u002F\u002F 发送消息并获取响应内容\n        return this.chatClient.prompt()\n                .user(message)\n                .call()\n                .content();\n    }\n}\n```\n\n### 运行测试\n\n启动 Spring Boot 应用后，访问接口即可看到 AI 返回的结果：\n\n```bash\ncurl \"http:\u002F\u002Flocalhost:8080\u002Fai\u002Fchat?message=请用中文介绍 Spring AI\"\n```\n\n---\n*更多高级功能（如函数调用、RAG、向量数据库集成等）请参阅官方参考文档。*","某电商平台的 Java 后端团队正在构建一个“智能售后助手”，需要连接企业内部订单数据库与主流大模型，以自动处理用户的退货咨询。\n\n### 没有 spring-ai 时\n- **厂商锁定严重**：代码中硬编码了特定 AI 厂商（如 OpenAI）的 SDK，一旦需要切换模型或实现多云灾备，必须重构大量底层网络请求代码。\n- **数据转换繁琐**：大模型返回的非结构化 JSON 文本需要手动解析并映射为 Java 对象，字段类型不匹配常导致运行时异常，开发效率低下。\n- **工具调用复杂**：想让 AI 调用内部的“查询订单”接口，需自行编写复杂的 Prompt 工程来模拟函数调用逻辑，且难以维护上下文状态。\n- **向量检索割裂**：集成向量数据库（如 PGVector）进行知识库检索时，缺乏统一的元数据过滤 API，不同数据库的查询语法差异增加了适配成本。\n\n### 使用 spring-ai 后\n- **架构灵活可移植**：利用 spring-ai 统一的便携式 API，团队仅需修改配置即可在 OpenAI、Azure 或本地 Ollama 模型间无缝切换，核心业务逻辑零改动。\n- **结构化输出自动化**：通过内置的结构化输出转换器，直接将 AI 回复映射为标准的 POJO（如 `RefundRequest` 类），彻底消除了手动解析 JSON 的出错风险。\n- **原生函数调用支持**：只需将现有的 Service 方法注册为工具，spring-ai 自动处理参数提取与执行流程，让 AI 能精准调用内部订单系统完成闭环操作。\n- **统一向量存储抽象**：借助跨供应商的向量存储 API 和类 SQL 的元数据过滤器，轻松实现基于用户等级的知识库隔离检索，无需关心底层数据库差异。\n\nspring-ai 成功将企业现有数据资产与大模型能力标准化连接，让 Java 开发者能以熟悉的 Spring 生态模式高效构建生产级 AI 应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fspring-projects_spring-ai_aaadc4de.png","spring-projects","Spring","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fspring-projects_ed84e548.png","Spring Projects",null,"springcentral","https:\u002F\u002Fspring.io\u002Fprojects","https:\u002F\u002Fgithub.com\u002Fspring-projects",[82,86,90,94,97,100,103,106],{"name":83,"color":84,"percentage":85},"Java","#b07219",99.6,{"name":87,"color":88,"percentage":89},"Kotlin","#A97BFF",0.2,{"name":91,"color":92,"percentage":93},"Smalltalk","#596706",0,{"name":95,"color":96,"percentage":93},"Shell","#89e051",{"name":98,"color":99,"percentage":93},"ANTLR","#9DC3FF",{"name":101,"color":102,"percentage":93},"CQL","#006091",{"name":104,"color":105,"percentage":93},"Python","#3572A5",{"name":107,"color":108,"percentage":93},"HTML","#e34c26",8475,2456,"2026-04-10T20:04:18","Apache-2.0","未说明","非必需（基于 Java 的框架，主要调用外部 AI 模型 API；若本地运行 Transformers 模型需自行配置相应硬件）",{"notes":116,"python":117,"dependencies":118},"这是一个 Java\u002FSpring 框架，用于集成各类 AI 模型（如 OpenAI, Anthropic, Ollama 等）和向量数据库，本身不依赖 Python 环境。构建项目必须使用 JDK 21，但生成的制品兼容 Java 17 及以上版本。若克隆代码库，建议安装 Git LFS 或跳过大型模型文件下载。运行集成测试前需设置相关 AI 服务商的 API Key 环境变量。","不需要",[119,120,121,122,123],"Java JDK 21 (构建要求)","Java 17+ (运行要求)","Spring Boot 3.5.x (对应 Spring AI 1.1.x)","Spring Boot 4.x (对应 Spring AI 2.x.x)","Maven",[35,15,125,14,16,13],"音频",[127,128,64,129],"artificial-intelligence","java","hacktoberfest","2026-03-27T02:49:30.150509","2026-04-11T10:01:32.191349",[133,138,143,148,153,157],{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},29429,"Spring AI MCP 是否支持 Streamable HTTP 传输协议？","是的，该功能已在 1.1.0 里程碑版本中发布。您可以尝试最新的 1.1.0-RC1 版本来使用此功能。正式版 1.1.0-GA 计划于 2025 年 11 月 12 日当周发布。","https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues\u002F3145",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},29430,"在 MCP Server 的工具执行过程中，为什么无法获取到用户的认证信息（SecurityContext 为 null）？","这是一个已知问题，已在 PR #3794 中修复并包含在 1.1.0 版本中。\n\n如果您使用的是旧版本或需要临时解决方案，可以使用内部类 `ToolCallReactiveContextHolder` 来传播安全上下文。注意：该类位于 `org.springframework.ai.model.tool.internal` 包下，标记为内部使用，未来版本不保证支持。\n\n workaround 代码示例：\n```java\nimport org.springframework.ai.model.tool.internal.ToolCallReactiveContextHolder;\nimport org.springframework.security.core.context.SecurityContext;\nimport org.springframework.security.core.context.SecurityContextHolder;\n\n\u002F\u002F 在工具调用中获取上下文\nvar securityContext = ToolCallReactiveContextHolder.getContext()\n        .\u003CSecurityContext>get(\"org.springframework.security.core.context.SecurityContext\");\n\u002F\u002F 然后将其设置到当前的 SecurityContextHolder 中供业务逻辑使用\n```","https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues\u002F2506",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},29431,"为什么某些模型（如 GPT-4o, Grok3）在代码中无法调用 MCP 工具，而 Claude 模型可以？","这通常与 Spring AI 对特定模型的适配程度或您使用的 API 提供商有关。\n\n1. 如果您是通过第三方代理访问 GPT 系列模型，可能会出现兼容性问题，尽管其他客户端（如 Cherry Studio）能正常工作。\n2. 建议检查您使用的模型接口是否由 OpenAI 官方提供，还是通过第三方中转。\n3. 如果可能，尝试切换到官方支持的模型或确认第三方代理是否正确转发了工具调用所需的参数。目前测试显示，直接使用官方接口的 GPT-4o 和 GPT-4.1 通常能正常调用 MCP 工具。","https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues\u002F3291",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},29432,"在 Spring AI 1.1.x 中，为什么配置了 `spring.ai.mcp.server.annotation-scanner.enabled=true` 后，带有 `@McpTool` 注解的 Bean 仍未被注册？","在 1.1.0-M1 等早期里程碑版本中可能存在此问题，但在 1.1.x 分支的后续更新（即将发布的 1.1.1 版本）中已得到解决。\n\n如果您遇到工具未被注册的情况：\n1. 确保升级到最新的 1.1.x 快照版本或等待 1.1.1 正式发布。\n2. 检查日志输出，新版本改进了日志消息，当工具方法被跳过时会给出更明确的提示。\n3. 作为临时替代方案，您可以继续使用 1.0.x 的方式：使用 `@Tool` 注解并手动创建 `ToolCallbackProvider` Bean 来注册工具。\n```java\n@Bean\nToolCallbackProvider productTools(ProductService productService) {\n  return MethodToolCallbackProvider.builder()\n      .toolObjects(productService)\n      .build();\n}\n```","https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues\u002F4392",{"id":154,"question_zh":155,"answer_zh":156,"source_url":147},29433,"如何在 Spring AI MCP 中正确配置同步（SYNC）客户端以连接 SSE 端点？","您可以在 `application.yml` 或 `application.properties` 中进行如下配置：\n\n```yaml\nspring:\n  ai:\n    mcp:\n      client:\n        enabled: true\n        name: mcp-test-client\n        version: 1.0.0\n        request-timeout: 30s\n        type: SYNC  # 指定为同步客户端\n        sse:\n          connections:\n            mcp-server: # 连接名称\n              url: http:\u002F\u002F0.0.0.0:3000\n              sse-endpoint: \u002Fsse  # SSE 端点路径\n```\n\n依赖配置需确保使用正确的版本（如 1.1.0-SNAPSHOT）：\n```xml\n\u003Cdependency>\n    \u003CgroupId>org.springframework.ai\u003C\u002FgroupId>\n    \u003CartifactId>spring-ai-starter-mcp-client\u003C\u002FartifactId>\n    \u003Cversion>${spring-ai.version}\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n注入并使用客户端：\n```java\n@Autowired\nList\u003CMcpSyncClient> mcpSyncClients;\n\n\u002F\u002F 遍历获取工具列表\nfor (McpSyncClient client : mcpSyncClients) {\n    var tools = client.listTools();\n    \u002F\u002F 处理工具...\n}\n```",{"id":158,"question_zh":159,"answer_zh":160,"source_url":137},29434,"MCP Inspector 工具是否支持新的 Streamable HTTP 传输协议？","是的，MCP Inspector 已经更新以支持新的 Streamable HTTP 传输协议。您可以参考官方文档获取更多关于如何使用 Inspector 测试新传输方式的信息：https:\u002F\u002Fmodelcontextprotocol.io\u002Fdocs\u002Ftools\u002Finspector",[162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252],{"id":163,"version":164,"summary_zh":165,"released_at":166},198286,"v2.0.0-M4","# Spring AI 2.0.0-M4 发行说明\n\n## 🎯 亮点\n本次发布包含 2 项新功能、10 个问题修复和 13 项其他改进。\n\n## ⚠️ 升级注意事项\n- 如果您正在使用 Vertex AI、OCI GenAI 或 ZhiPu AI 集成，请开始规划迁移到其他模型提供商，例如 OpenAI、Azure OpenAI、Anthropic 或其他受支持的提供商。这些已弃用的集成将在未来的重大版本中移除。[#5676](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5676)\n\n## 📢 值得注意的事项\n- Vertex AI 模型集成类已被弃用，并将在未来的版本中移除。用户应计划迁移到其他模型提供商。[#5676](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5676)\n- ZhiPu AI 模型集成类已被弃用，并将在未来的版本中移除。用户应计划迁移到其他模型提供商。[#5676](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5676)\n- OCI GenAI 模型集成类已被弃用，并将在未来的版本中移除。用户应计划迁移到其他模型提供商。[#5676](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5676)\n\n## ⭐ 新功能\n- 在 Gemini 3.x 模型中新增了与自定义工具结合使用 Google 搜索的功能，从而增强了搜索和工具集成的能力。[#5669](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5669)\n- 添加了动态禁用原生结构化输出功能的支持，为输出处理提供了更大的灵活性。[019267f](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F019267f6d68a5a2b1affffbf4f7caad126e35e30)\n\n## 🪲 问题修复\n- 修复了在 API 请求中指定 toolDefinitions 时，extraBody 配置丢失的问题。[e65d5de](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fe65d5de1be135c431e8b8b5ca4913b973063118a)\n- 修正了 AzureOpenAiChatOptions 中 stop 字段初始化器无法正常工作的问题。[6e8e5fe](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6e8e5fe90db5e53cfe3ff43ab621153eafe1ed91)\n- 修正了 Redis 向量存储过滤表达式转换器中对 TAG 和 TEXT 过滤值字符串类型的处理问题。[32c79b0](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F32c79b078adcbc69dd6ac946a77054492fe9bbf1)\n- 解决了 Neo4j 向量存储过滤表达式转换器中的键处理问题。[d97da30](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd97da302653e43d6f474d05b1594a3c09e4a8c37)\n- 修正了过滤表达式文本解析器中标识符解析逻辑，以正确处理边缘情况。[ccc29d1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fccc29d1086005f9a05bc137329acdf7f6f51ef4d)\n- 提升了 Bedrock 代理聊天模型实现中媒体获取操作的可靠性。[75e2bd7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F75e2bd703967e2d64ac92add58371f2b21d18ab3)\n- 更新并修复了提示缓存测试，使其能够正确工作 wi","2026-03-26T15:08:24",{"id":168,"version":169,"summary_zh":170,"released_at":171},198287,"v1.1.4","# Spring AI 1.1.4 发行说明\n\n## 🎯 亮点\n本次发布包含 1 项新功能、11 个问题修复以及 1 处其他改进。\n\n## ⭐ 新功能\n- 增加了在运行时动态禁用 Structured Output Native 功能的能力，从而在配置和使用场景上提供更大的灵活性。[45a1607](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F45a1607f61b7918bafce2a2b488ed26bcde29866)\n\n## 🪲 问题修复\n- 解决了 Oracle 和 PgVector 向量存储集成测试中的问题，以提高测试的可靠性 [56fa3ee](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F56fa3ee3eb16920faa5e3f2fe5bd66751ab0a44c)\n- 修正了在聊天请求中提供 toolDefinitions 时 extraBody 参数丢失的问题 [d886961](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd8869611dbcf25d998ec2231516cd668561df2a6)\n- 通过解决不稳定测试场景，提升了 Bedrock 对话集成测试的稳定性 [fac5647](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ffac5647fa67223c693f69f4eebe4419b2fc8147e)\n- 更新了 Google GenAI 嵌入模型以使用最新 API，并修复了不稳定的函数调用测试 [6c82800](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6c82800779088ed6055d6cdf22f716660e59e401)\n- 解决了 Google GenAI 文本嵌入模型观测集成测试中的问题 [650a343](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F650a3435c41e0948a9c93d0990d77fff033f42d1)\n- 在 Bedrock 代理聊天模型中获取媒体资源时，增强了错误处理和可靠性 [a7d3223](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa7d3223bc11a010b93fbc40a17fa9b68c52a8118)\n- 改进了 SimpleVectorStore 中的过滤器评估逻辑，以提升性能和可维护性 [04742fb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F04742fb8914ea963a2a623c6483c6e520aec81c1)\n- 解决了 Anthropic 提示词缓存实现中多块系统消息未被正确缓存的问题 [11bd45e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F11bd45ebd41eb7f427b5e227b538870524db9fbb)\n- 修正了 Redis 过滤表达式转换器中 TAG 和 TEXT 过滤类型字符串值的处理方式 [707e990](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F707e990c9152aabb9c9226053725efa2ada72223)\n- 改进了 Neo4j 向量存储过滤表达式转换器中的键处理，以实现更准确的过滤 [3a46c7d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3a46c7dd00e4adc17a132b9438149bde94da244f)\n- 解决了 FilterExpressionTextParser 中标识符解析逻辑的问题，以确保正确处理过滤表达式。[7275cba](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F7275cbab28d525cfadd9c6180e20d7a530877bc0)\n\n## 🔩 构建更新\n- 修正了文档上传 GitHub Actions 工作流中的问题，以确保文档能够正确部署。[f4984b5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff4984b5449f7c15153c75903b76f7d408d47757b)\n\n## 🙏 贡献者\n感谢所有人员","2026-03-26T13:49:09",{"id":173,"version":174,"summary_zh":175,"released_at":176},198288,"v1.0.5","# Spring AI 1.0.5 发行说明\n\n## 🎯 亮点\n本次发布包含 8 个错误修复和 1 项其他改进。\n\n## 🪲 错误修复\n- 修复了在使用 AWS Bedrock Converse API 进行流式操作时，`finishReason` 未正确传播的问题 [9a56ae0](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9a56ae0c5c3445ffaf8d1b0ca993ba6766aa703e)\n- 修正了 Oracle 和 PostgreSQL 向量存储实现的集成测试失败问题 [d7a0edd](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd7a0eddbe95112dd14ed1bb37f135a60a2b39578)\n- 解决了 Ollama 模型提供商的集成测试问题 [6afaac7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6afaac75b1feb1df766264e5341c7c312b641325)\n- 修正了 Redis 向量存储过滤表达式转换器中对 TAG\u002FTEXT 过滤值的字符串处理问题 [6c99d54](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6c99d545ef6a8c50def6d193a351723eff021f5c)\n- 解决了 Neo4j 向量存储过滤表达式转换器中的键处理问题 [c429744](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc4297444f060c9b68e82cb3843e0f48d6fac4863)\n- 修正了过滤表达式文本解析器中的标识符解析逻辑，以提升查询处理能力 [535b7f8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F535b7f8fcded9be2d39eb08a9df65104e03012e6)\n- 增强了在 AWS Bedrock 代理聊天模型中获取媒体内容时的错误处理和可靠性 [9561b4c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9561b4c2a50ebaeee1284ea0faceab92ee5dd251)\n- 改进了 SimpleVectorStore 中的过滤评估逻辑，以提升性能和可维护性 [92c5024](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F92c5024720187a9934bae7d7e9eae20a48b41033)\n\n## 🔩 构建更新\n- 添加了通过 GitHub Actions 自动化将发布版本发布到 Maven Central 的工作流 [aed79b0](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Faed79b0b0e7892cfc2b27242ce2ce108df5547e3)\n\n## 🙏 贡献者\n感谢所有为本次发布做出贡献的开发者：\n\n- Christian Tzolov (@tzolov)\n- Eric Bottard (@ericbottard)\n- Ilayaperumal Gopinathan (@ilayaperumalg)\n- Soby Chacko (@sobychacko)\n- Sébastien Deleuze (@sdeleuze)","2026-03-26T13:38:16",{"id":178,"version":179,"summary_zh":180,"released_at":181},198289,"v2.0.0-M3","# Spring AI 2.0.0-M3 发行说明\n\n## 🎯 亮点\n本次发布包含 23 项新功能、45 个错误修复、16 处文档改进以及 67 处其他改进。\n\n## 📢 值得注意的事项\n- MCP 注解现已从 spring-ai-community\u002Fmcp-annotations（`org.springaicommunity.mcp`）迁移到 Spring AI 核心（`org.springframework.ai.mcp.annotation`）。[585d618](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F585d618cc88dad890612673882f999438cc8688a)\n- 针对 Spring 的特定 MCP 传输实现现已从 MCP Java SDK（`io.modelcontextprotocol.sdk`）迁移到 Spring AI 项目（`org.springframework.ai.mcp`）。[0045513](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F0045513db7b929d5131d0c7fa60a83a77b525634)\n- OpenAI SDK 集成现使用 `OpenAiSdkChatOptions` 的新构建器模式，为配置提供了更加流畅的 API。[3508cc1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3508cc10caa0853908160d652bda79b12ce1d581)\n- 为 `disableMemory()` 方法添加了已弃用的适配器。用户应迁移到更推荐的 `disableInternalConversationHistory()` API。[9893de6](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9893de661735e6ab81bf9c7e1f6a4fabf80d404e)\n- 将 `OpenAiChatModel#internalCall` 方法及其他内部方法的访问控制范围优化为 private，以提高代码封装性并减少对内部 API 的意外使用。[e86b8d7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fe86b8d720f3b6f9b30a41f92b2e078dcc99c157a)\n- 恢复了使 `ModelRequest#getOptions` 不为 null 的破坏性 API 变更，以恢复向后兼容性 [#5403](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5403)\n- 通过移除自动包含工具调用历史的功能，简化了工具上下文管理 [8ab7f7e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8ab7f7ea8f205e0d7d775dc82194a7e50f9038ec)\n\n## ⚠️ 破坏性变更\n\n> **破坏性变更：** 2.0.0-M3 包含多项破坏性变更，包括 MCP 注解包名更改、MCP 传输工件位置调整、Jackson 2 迁移到 Jackson 3，以及从 `ToolContext` 中移除对话历史记录。升级前请查阅 [升级说明](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F2.0-SNAPSHOT\u002Fupgrade-notes.html#upgrading-to-2-0-0-M3)。\n\n- MCP 注解现已从 spring-ai-community\u002Fmcp-annotations（`org.springaicommunity.mcp`）迁移到 Spring AI 核心（`org.springframework.ai.mcp.annotation`）。[585d618](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F585d618cc88dad890612673882f999438cc8688a)。请遵循 [迁移说明](https:\u002F\u002Fdocs.spring.io\u002Fspring-ai\u002Freference\u002F2.0-SNAPSHOT\u002Fupgrade-notes.html#_mcp_annotations_migrated_into_spring_ai)。\n- `McpAsyncClientCustomizer` 和 `McpSyncClientCustomizer` 已被移除，取而代之的是一个通用接口 `McpClientCustomizer\u003CB>`。[272c736](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F272c7361287d4511ed57648705c7a12c6c3d0df9)。","2026-03-17T10:35:21",{"id":183,"version":184,"summary_zh":185,"released_at":186},198290,"v1.1.3","# Spring AI 1.1.3 发行说明\n\n## 🎯 亮点\n本次发布包含 19 项新功能、31 个问题修复、23 处文档改进以及 25 项其他改进。\n\n## 📢 值得关注的事项\n- 为保持与 Anthropic API 的兼容性，已在整个代码库和集成测试中将所有已弃用的 Anthropic 模型名称替换为当前有效的模型标识符。[54f35dc](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F54f35dcaeceac0d6f88b11866a019f7016c6a0c2)\n\n## ⭐ 新功能\n- Neo4j 向量存储现可通过构建器模式自定义过滤表达式转换器，从而为自定义查询过滤逻辑提供更高的灵活性。[82bc777](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F82bc777deafdc166148cde5587a7b2ed3f63aa7d)\n- 引入构建器模式，以更灵活、更易读的方式构建 OpenAI SDK 聊天模型实例 [982bc1e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F982bc1ea1b205383990bbf205425f047e8616d70)\n- 为 OpenAI 嵌入模型新增通过 '\u002Fembedding\u002Fembedding-model-dimensions.properties' 配置文件自定义嵌入维度的支持 [a5359c7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa5359c744a9acc5f78ca574eeecec04433ce1c14)\n- ToolCallAdvisor 现在支持流式响应，实现实时函数调用交互 [21dac8d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F21dac8ddd8a13fbee1d1469da6ce9fbccc6df6da)\n- SimpleVectorStore 现在支持在删除条目时进行过滤，从而对向量数据管理提供更细粒度的控制 [7752ef8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F7752ef8c1d2d8949d0f401296186ce511f40b77c)\n- 添加了对 Anthropic Claude Skills API 的支持，并采用统一的 API 设计及技能集成辅助类 [#5299](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5299)\n- 为 Ollama 嵌入模型新增维度参数支持，允许控制嵌入向量的大小 [#2713](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F2713)\n- 允许自定义结构化输出和函数调用的 JSON Schema 生成 [4a8bdd7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F4a8bdd73393b7f67022f147d8fa7635abd0dde9d)\n- Mistral AI 聊天模型现支持使用 JSON Schema 验证的结构化输出，实现类型安全的响应并自动转换 [76587fe](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F76587feba4217cb7ace299704355dc9020b12e1f)\n- 新增便捷方法，可轻松从 Prompt 对象中获取系统消息 [a78d2e8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa78d2e8b5ca445c0bbfd993fe84c6be8ee705980)\n- 添加了 Mcp*ServerCustomizer 接口，并修复了 MCP 自动配置，使其在非 Web 环境中也能正常工作 [#5261](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5261)\n- OllamaChatOptions 现已实现 StructuredOutputChatOptions 接口，支持结构化 JSON 输出处理，并附带全面的单元测试和集成测试 [a6ce0f6](https:\u002F\u002Fgithub.co","2026-03-17T10:35:04",{"id":188,"version":189,"summary_zh":190,"released_at":191},198291,"v1.0.4","# Spring AI 1.0.4 发行说明\n\n## 🎯 亮点\n本次发布包含 1 项新功能、9 个问题修复、1 处文档改进以及 11 处其他优化。\n\n## 📢 值得注意\n- 作为 Claude 4.6 模型新增及弃用清理的一部分，Anthropic 聊天的默认模型已更新为 claude-haiku-4-5。[86ad1f5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F86ad1f550070b22eb4cd8d2a7b2846a8960501c5)\n\n## ⏪ 破坏性变更\n- AnthropicApi.ChatModel 枚举中已移除废弃的 Claude 3.x 和 3.7 模型变体。默认模型现已更改为 claude-haiku-4-5。[86ad1f5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F86ad1f550070b22eb4cd8d2a7b2846a8960501c5)\n\n## ⚠️ 升级注意事项\n- 如果您正在使用已弃用的 Claude 3.x 或 3.7 模型变体，请将代码更新为使用 Claude 4.x 模型（claude-haiku-4-5、claude-opus-4-6 或 claude-sonnet-4-6）。默认模型现为 claude-haiku-4-5。[86ad1f5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F86ad1f550070b22eb4cd8d2a7b2846a8960501c5)\n\n## ⭐ 新功能\n- 向 AnthropicApi.ChatModel 枚举中添加了 CLAUDE_OPUS_4_6 和 CLAUDE_SONNET_4_6，从而支持访问 Anthropic 的最新 Claude 4.6 模型。[86ad1f5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F86ad1f550070b22eb4cd8d2a7b2846a8960501c5)\n\n## 🪲 问题修复\n- 修复并增强了向量存储的 FilterExpressionConverter，以改进过滤表达式的处理。[a2f6f4c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa2f6f4cb1496ccfd085ac9dcdd4321082fc0c6a0)\n- 修正了 FilterExpressionTextParser 中的字符串解析逻辑，使其能够正确处理过滤表达式。[f6204b5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff6204b5952bd236ec311864184673d46d6d0300d)\n- 更新了 AzureOpenAiImage 测试，以使用最新的图像模型，替换已被禁用的模型变体。[ccd79fb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fccd79fbb0bc74d2edb280bdfcbaa96d5a6d3b795)\n- 修复了 AnthropicChatModelObservationIT，并更新了集成测试，以适配最新模型的工具调用参数，同时替换已弃用的模型引用。[43797b6](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F43797b62e8e2888ff2fed59bade9af36b262a9e3)\n- 解决了 Azure OpenAI 聊天模型集成中的流式响应问题。[356ae8f](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F356ae8feb078bed3e39a9aec16d7f1ae78cbbb94)\n- 修复了在使用 MySQL 或 MariaDB 作为基于 JDBC 的聊天记忆存储后端时的消息排序问题。[393d9fa](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F393d9fa5689efa826047102cae571437519363f6)\n- 修复了 Vertex AI Gemini 聊天模型中同时包含文本内容和工具调用的响应处理问题。[9cbc192](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9cbc1920ca89a37068d695e38a5a0b9ca1eae148)\n- 修正了 PDF 文档阅读器，使其在拆分文档时能够正确遵循 pagesPerDocument 配置。[4c87187](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspr","2026-03-17T10:34:47",{"id":193,"version":194,"summary_zh":195,"released_at":196},198292,"v2.0.0-M2","# Spring AI 2.0.0-M2 发行说明\n\n## 🎯 亮点\n本次发布包含20项新功能、20个问题修复、16项文档改进以及38项其他改进。\n\n## ⏪ 破坏性变更\n- Anthropic Skills API 已统一，并重命名了辅助类，如果您直接使用 Anthropic 集成，可能需要修改代码 [#5299](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5299)\n- SemanticCache 接口已从 Redis 特定包迁移到更通用的包位置，直接使用该接口的应用程序可能需要更新导入语句。[#5284](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5284)\n- Couchbase 向量存储类已被迁移到新的专用包结构中。使用 Couchbase 向量存储的应用程序需要更新其导入语句。[#5233](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5233)\n\n## ⚠️ 升级注意事项\n- 如果您直接使用 Anthropic Skills API，请检查代码中是否使用了已重命名的辅助类，并相应更新 [#5299](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5299)\n- 如果您使用 Couchbase 向量存储，请将导入语句更新为引用新的专用包位置。[#5233](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5233)\n\n## ⭐ 新特性\n- Ollama 嵌入模型现支持配置维度参数，从而可以控制生成嵌入的大小 [4bd83ba](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F4bd83ba2316368ca333cda5a6b06d8d27c92bd2f)\n- JSON 模式现可自定义，为结构化输出生成提供更多灵活性 [3119086](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3119086b3a7d7f63cd5ea6c13cf9caec3ef55476)\n- OpenAI 的内容审核 API 现已配置默认 API 端点路径，简化了集成设置 [#5300](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F5300)\n- OpenAI 的音频 API（语音和转录）现已配置默认 API 端点路径，使音频功能的使用更加便捷 [f7eeaf9](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff7eeaf9d02c778b3dccd1682b0f1ec2ad2d49585)\n- 添加了对 Amazon S3 作为向量存储后端的支持，用于存储和检索嵌入 [cd86d38](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fcd86d3837edaa1cdf215eaa207933aaf6ca2a23b)\n- 集成了 Infinispan 作为新的向量存储选项，提供分布式内存数据网格能力，用于嵌入存储 [9b105b8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9b105b88e545a075d3c75ecb670c166b697b1771)\n- 添加了对 Amazon Bedrock Knowledge Base 作为向量存储的支持，实现了与 AWS 托管知识库服务的集成 [21c3834](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F21c38342853d2d881c510ab2f9723302dae81ad9)\n- 增强了 Redis 语义缓存模块，提升了功能和性能 [7233e","2026-01-23T12:39:39",{"id":198,"version":199,"summary_zh":200,"released_at":201},198293,"v2.0.0-M1","# Spring AI 2.0.0-M1 发行说明\n\n## 🎯 亮点\nSpring AI 2.0.0-M1 是 2.x 系列的第一个里程碑版本，基于 **Spring Boot 4.0 和 Spring Framework 7.0** 构建。此次重大平台升级由 Dmitry Bedrin 联合 Netflix 的 Paul Bakker 共同贡献（[#4774](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4774)），引入了现代 Java 的强大功能，为下一代 AI 应用开发奠定了基础。\n\n本次发布包含 24 项新特性、25 处 Bug 修复、7 项文档改进以及 32 项其他优化，共计 90 次提交。\n\n## ⏪ 破坏性变更\n- 已从模型实现中移除默认的温度配置。依赖默认温度值的应用程序需要显式配置温度设置。[ce1a7fc](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fce1a7fc6e9560b6f719efe00f1cb3241e8d2b398)\n- OpenAI 的默认聊天模型已从之前的默认值更新为 gpt-5-mini。依赖隐式默认值的应用可能会表现出不同的行为。[8c093f1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8c093f1092cdfa94c9c08ebe4fdd8ddc5d0a97d9)\n\n## ⚠️ 升级注意事项\n- 随着默认温度选项的移除，请确保在需要的地方显式地在模型配置中设置温度值。[ce1a7fc](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fce1a7fc6e9560b6f719efe00f1cb3241e8d2b398)\n- 如果您的应用程序依赖于 OpenAI 的默认聊天模型，请确认 gpt-5-mini 是否满足您的需求；否则，请在应用属性中显式配置您偏好的模型。[8c093f1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8c093f1092cdfa94c9c08ebe4fdd8ddc5d0a97d9)\n\n## 📢 值得注意\n- 如果您正在主分支上从源代码构建 Spring AI，请确保安装了 Java 21 或更高版本；而消费 Spring AI 2.x 二进制文件时，仍以 Java 17 作为基准。[8ca583d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8ca583dcfdfdf8befeee42dde0fec43e41b6aedf)\n- **Spring Boot 4.0 和 Spring Framework 7.0 升级** - 本版本标志着从 Spring Boot 3.x 到 Spring Boot 4.0 GA，以及 Spring Framework 7.0 的重大平台升级。感谢 Dmitry Bedrin（[@bedrin](https:\u002F\u002Fgithub.com\u002Fbedrin)）与来自 Netflix 的 Paul Bakker（[@pbakker](https:\u002F\u002Fgithub.com\u002Fpaulbakker)）为此次全面升级所做的努力（[#4774](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4774)）。此次升级还包括 Kotlin（2.2.21）、Rest Assured（5.5.6）、swagger-codegen（3.0.75）和 Testcontainers（2.0.1）等主要依赖库的版本更新。[d5e92be](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd5e92be4c6501cfbdb7eabfdaadc186ea49cd47e), [a2a5e1b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa2a5e1b5f25d184104527267186f1a574de17875)\n- OpenAI 集成的默认聊天模型已更新为 gpt-5-mini，反映了 OpenAI 推荐的最新模型。[8c093f1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcomm","2025-12-11T21:52:49",{"id":203,"version":204,"summary_zh":205,"released_at":206},198294,"v1.1.2","# Spring AI 1.1.2 发行说明\n\n## 🎯 亮点\n此补丁版本专注于修复 bug、提升安全性以及优化依赖管理。它包含一项 bug 修复，使 Spring AI 1.1.x 仍能与 Kotlin 1.9.x 兼容；针对 Milvus 向量存储的 CVE-2024-7254 安全漏洞进行了修复；更新了 MCP（模型上下文协议）依赖项；并在 ToolCallAdvisor 中新增了一个钩子，以增强工具调用工作流。\n\n## ⭐ 新特性\n- 在 ToolCallAdvisor 中引入了一个新的钩子方法，允许自定义工具调用工作流中的最终化循环，从而为高级工具调用场景提供更好的可扩展性 [05254e7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F05254e75399f4fef2de2db1decb389d329bb60ae)\n\n## 🪲 Bug 修复\n- 清理了 Azure Identity 库的重复依赖声明，提升了构建的一致性 [db7d44d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fdb7d44d123fd98cd6f320865f9e232726068dcfe)\n\n## 🔨 依赖升级\n- 将模型上下文协议（MCP）的 JDK 和 MCP 注解从快照版本升级至稳定版，以提高稳定性和兼容性 [4cfe9fa](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F4cfe9fabc709a39ad68dae84ed8e3b0a8ae87160)\n\n## 🔩 构建更新\n- 更新了构建配置，要求 1.1.x 发布分支使用精确的 Java 21 版本，以确保一致的构建环境 [d563007](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd56300784b1a21d4cebe9004d0f7a2888e4e556d)\n\n## 🔐 安全\n- 覆盖了 milvus-store 依赖中的 protobuf-java 版本，以解决 CVE-2024-7254 安全漏洞 [65b6c7d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F65b6c7d74950b5f1eda1cead3a9ccd38dc3fec0d)\n\n## 🙏 贡献者\n感谢所有促成此次发布贡献的开发者：\n\n- Christian Tzolov (@tzolov)\n- Eric Bottard (@ericbottard)\n- Ilayaperumal Gopinathan (@ilayaperumalg)\n- Julien Dubois (@jdubois)\n- Rory Preddy (@roryp)","2025-12-09T09:17:10",{"id":208,"version":209,"summary_zh":210,"released_at":211},198295,"v1.1.1","# Spring AI 1.1.1 发行说明\n\n## 🎯 亮点\n本次发布包含 13 项新功能、16 个问题修复、3 处文档改进以及 11 处其他改进。\n\n## ⭐ 新功能\n- 增加了与官方 OpenAI Java SDK 的原生集成，为 OpenAI 模型交互提供了更出色的类型安全性和更全面的 API 覆盖。[e56b344](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fe56b344461cb96902357b125e8cfcc18444db841)\n- ChatClient 现在支持原生结构化输出，能够更可靠、更类型安全地从模型响应中提取结构化数据。[3c3c3eb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3c3c3eb34481646e6dc0527af6e8766a129262fe)\n- 集成了 Claude Skills API，并支持 Files API，从而实现基于文件的交互和增强的 Claude 模型能力。[b7a36bb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fb7a36bb62af7b690b0f7f8f822189421b8e6e7c2)\n- 将 Skills API 支持的相关修复后向移植到 1.1.x 维护分支，以提升各版本之间的稳定性和一致性。[a1f32d1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa1f32d1692f7b005ef970ccfe8e0a73849ddee0c)\n- 在向量存储查询中新增了 ISNULL 和 ISNOTNULL 过滤表达式支持，允许在过滤操作中检查空值。[8e9ad36](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8e9ad36abc3d2083b34e297d2f93bde6a4abed44)\n- 在 ThinkingConfig 中引入了 ThinkingLevel 配置支持，以便更好地控制推理和思考过程。[7e6da6e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F7e6da6ec5d48b759e4727e889aea2c08ce72f28a)\n- 增强了 Vertex Gemini 集成，将安全评级纳入响应元数据中，从而提供对内容安全评估的可见性。[f4eb375](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff4eb3750482d70a6f666509f5a3db5cdabe55a0e)\n- ToolCallAdvisor 现在通过钩子方法支持扩展性，允许开发者自定义应用程序中的工具调用行为。[2c8c4e7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F2c8c4e7adcf0e98ee6bb158b1fe4b7a02865a516)\n- GemFire 向量存储现在支持用户名和密码认证，以确保连接的安全性。[21db782](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F21db782b3a65943964886dd6af0a0eabfdae87dd)\n- 在使用函数调用功能时，为 Google GenAI 的 Gemini 3 Pro 模型添加了思维签名支持。[9bdf182](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9bdf182c298ed140a931cc989c10d4ec7adb2138)\n- 添加了对最新 Claude 4.5 模型的支持，包括 Opus 和 Haiku 变体，并更新了相关文档。[2c7b10e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F2c7b10e35b7b2ee28b76fd2244ee51d1c72af8d1)\n- 为 ZhipuAI 集成测试增加了 prompt_tokens_details 支持，并更新了默认聊天选项。[a66e243](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa66e243d44d83d1fa18c368b8891e0771ae10c45)\n- 引入了一个新的 Spring Boot 启动器，它…","2025-12-05T10:11:52",{"id":213,"version":214,"summary_zh":215,"released_at":216},198296,"v1.1.0","# Spring AI 1.1.0 GA Release Notes\r\n\r\n## 🎯 Highlights\r\nThis release includes 1 new features, 10 bug fixes, 3 documentation improvements, 3 other improvements.\r\n\r\n## ⭐ New Features\r\n- Enhanced ChatCompletionRequest to support dynamic field deserialization using @JsonAnySetter annotation for extraBody properties [3fc939a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3fc939a8c2dd8af8e79a0d28ebd169eced2bc61f)\r\n\r\n## 🪲 Bug Fixes\r\n- Resolved an issue where MongoChatMemoryIndexCreator component was not being properly scanned during Spring application context initialization [faf3808](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ffaf38081b4004ca2538658aebac3d309d2a81ceb)\r\n- Added validation for inputSchema in Model Context Protocol (MCP) tool definitions to ensure proper tool configuration [#4855](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4855) via [#4776](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues\u002F4776)\r\n- Improved error handling for malformed responses from the OpenAI API to prevent unexpected failures [c0cc32c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc0cc32cfd55d943e87c86c56b0b44804e9a7b69b)\r\n- Changed PgVectorSchemaValidator class visibility to package-private to properly encapsulate internal implementation details [#4857](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4857)\r\n- Refactored StatelessToolCallbackConverterAutoConfiguration and ToolCallbackConverterAutoConfiguration for better code organization [#4858](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4858)\r\n- Corrected Maven dependency configuration for the MongoDB chat memory repository integration [374c09e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F374c09ef531899970e3949a640ba7d14a723f06a)\r\n- Fixed inconsistent conditional property configuration for ElevenLabs auto-configuration to follow Spring AI standards [d71869e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd71869e0e1e93a6624de77eca02ddbe9127a446b)\r\n- Resolved Java bytecode access issue related to invokespecial instruction [9cec4d7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9cec4d73ab67cea8c3abad79ac580b96d5960bd4)\r\n- Refactored ToolCallbackProvider dependency injection to use Spring's ObjectProvider for better flexibility and optional dependency handling [e4926e5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fe4926e52fc6b2b903ff3425be8a00174a8c4e682)\r\n- Cleaned up excessive debug logging statements in AnthropicChatModel implementation [#4847](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4847)\r\n\r\n## 📓 Documentation\r\n- Improved documentation for the audio transcription API with clearer examples and usage guidance [f167df8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff167df86af5d2c2e951ed4a288027bf0f8956e7a)\r\n- Corrected broken hyperlink in the Model Context Protocol (MCP) overview documentation page [b6ccb03](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fb6ccb03ec6fb8bbe5970a53bfb051ef57cf6873c)\r\n- Updated UserMessage code examples in documentation to properly demonstrate builder pattern usage [68adc26](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F68adc264c20ecd99c25e5aaeb4173b153bf6dcf1)\r\n\r\n## 🔨 Dependency Upgrades\r\n- Updated Model Context Protocol (MCP) integration to version 0.16.0 [#4860](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4860)\r\n\r\n## 🔩 Build Updates\r\n- Disabled parallel Maven builds in the fast CI pipeline to resolve intermittent Kotlin compiler errors and improve build stability [f6fa47c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff6fa47c772dbf067aa036d2e313174218dada574)\r\n- Updated fast CI workflow to properly run unit tests and generate documentation after tests pass [eb0e101](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Feb0e1010f00719924995412bfa933ccad8a690c7)\r\n\r\n## 🙏 Contributors\r\n\r\nThanks to all contributors who made this release possible:\r\n\r\n- [Alexandros Pappas (@apappascs)](https:\u002F\u002Fgithub.com\u002Fapappascs)\r\n- [Christian Tzolov (@tzolov)](https:\u002F\u002Fgithub.com\u002Ftzolov)\r\n- [Gareth Evans (@garethjevans)](https:\u002F\u002Fgithub.com\u002Fgarethjevans)\r\n- [guanxu (@guanxuc)](https:\u002F\u002Fgithub.com\u002Fguanxuc)\r\n- [Ilayaperumal Gopinathan (@ilayaperumalg)](https:\u002F\u002Fgithub.com\u002Filayaperumalg)\r\n- [Mark Pollack (@markpollack)](https:\u002F\u002Fgithub.com\u002Fmarkpollack)\r\n- [MoGreene (@Mo-Greene)](https:\u002F\u002Fgithub.com\u002FMo-Greene)\r\n- [Simulant87 (@Simulant87)](https:\u002F\u002Fgithub.com\u002FSimulant87)\r\n- [Yanming Zhou (@quaff)](https:\u002F\u002Fgithub.com\u002Fquaff)\r\n- [Łukasz Jernaś (@deejay1)](https:\u002F\u002Fgithub.com\u002Fdeejay1)","2025-11-12T22:32:44",{"id":218,"version":219,"summary_zh":220,"released_at":221},198297,"v1.1.0-RC1","# Spring AI 1.1.0-RC1 Release Notes\n\n## 🎯 Highlights\nThis release includes 10 new features, 8 bug fixes, 10 documentation improvements, 12 other improvements.\n\n## ⏪ Breaking Changes\n- OpenAI TTS implementation migrated to shared TextToSpeechModel interface with standardized Double type for speed parameter instead of String [2b195b3](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F2b195b34d337cd8f890c9d0fb1ca85c02c1c9afe)\n- Removed deprecated APIs in preparation for the 1.1.0 release. Applications using deprecated methods will need to migrate to the newer alternatives. [c631340](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc63134072deb81b3ac458ac28a6a6debe16f2222)\n\n## ⚠️ Upgrading Notes\n- OpenAI TTS users should update to use the new shared TextToSpeechModel interface. Speed parameter now uses Double type instead of String. See TTS migration guide for detailed instructions. [a8d2208](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa8d22087d091e4c3eff1d145f0b912599b882694)\n- Applications using deprecated APIs removed in 1.1.0 must migrate to the newer replacement APIs. Review your codebase for deprecation warnings from 1.0.x releases and update accordingly. [c631340](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc63134072deb81b3ac458ac28a6a6debe16f2222)\n\n## ⭐ New Features\n- Added support for extraBody and reasoningContent in OpenAI API, enabling advanced model configuration and reasoning chain access [ec717c1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fec717c152d479b966fcf2db6679317f09b5ec6ea)\n- Added promptCacheKey and safetyIdentifier support for improved caching and safety management [347378a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F347378aca0cdda5c29d973b11c5db45b53a42d52)\n- Automatic retry configuration for network exceptions to improve resilience in distributed environments [c03a485](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc03a4852f28e49952432c9d954b0a0c4b6db3fde)\n- Event-driven tool callback caching for Model Context Protocol integration improves performance and reduces redundant operations [5783104](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F57831042ffa45f43e4dbb2dda3d2494796e6d0e1)\n- Refactored Model Context Protocol client annotation handling with unified handler registries for improved maintainability [2a2f155](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F2a2f1551769b7d56a3cec01ca7e092c345da6dce)\n- Added MongoDB repository implementation for chat memory persistence, enabling conversation history storage in MongoDB databases. [80527b2](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F80527b26fe4a0dab65fc9aed369040114963c1fd)\n- Added thinking mode support for Ollama reasoning models, enabling enhanced reasoning capabilities for compatible models. [0b8293e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F0b8293ec969b87e049b806203af25d200d16c044)\n- Added and updated tests for OpenAI reasoning_effort parameter, enhancing control over reasoning model behavior. [e157775](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fe1577751d7d5284a5115f2f034ef22a59f76644c)\n- Enhanced BeanOutputConverter to support removing thinking tags from input text, improving structured output parsing [d1aa8d4](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd1aa8d46c9bb5abc45b7db197719e35e24c12390)\n\n## 🪲 Bug Fixes\n- Fixed OllamaApiIT#streamingChat integration test [47e4232](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F47e4232568a1fccb730335c340cac7279d3827a6)\n- Resolved configuration injection issue where VertexAiEmbeddingConnectionDetails was not properly injected when using the Vertex AI embedding starter [9de3592](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9de35929ce91944fa794c905edc4bde0eee45ff4)\n- Improved embedding dimension handling by implementing lazy loading for unknown dimensions and caching results for better performance [a8b3982](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa8b3982ef66474f3f86fbf7a6475b5d99e54b025)\n- Corrected the configuration property prefix in OpenAI Text-to-Speech documentation [992a02f](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F992a02fab6d3d27dbc320bee9a97ff2e65570fb8)\n- Resolved authentication issues with the Chroma vector database API [0abfedf](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F0abfedf09742564d884e16aa25fc5282efda2a77)\n- Enhanced error logging to include exception details when tool execution fails, improving debugging capabilities [c5ce4be](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc5ce4bed3558b71388fd1733537aa2531ddf1303)\n- Updated MCP integration tests to properly include McpServerObjectMapperAutoConfiguration [7529a21](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F7529a214e8bde035315d581e74a7df374cb171d9)\n- Improved MCP server configuration by simplifying ObjectMapper dependency injection [6d9b8e6](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6d9b8e65ac3786ed7f4df0f303806fc38550bdd9)\n\n## 📓 Documentation\n- Documented reasoning content s","2025-11-08T23:37:29",{"id":223,"version":224,"summary_zh":225,"released_at":226},198298,"v1.1.0-M4","# Spring AI 1.1.0-M4 Release Notes\r\n\r\n## 🎯 Highlights\r\nThis release includes 27 new features, 35 bug fixes, 15 documentation improvements, 41 other improvements.\r\n\r\n## ⚠️ Upgrading Notes\r\n- Migrate from the deprecated public constructor to the builder pattern when creating QuestionAnswerAdvisor instances [adf4efe](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fadf4efe38e9132509100ada62fc9de4c4646e127)\r\n\r\n## 📢 Noteworthy\r\n- Two commits related to MCP ObjectMapper factory and JSON schema upgrade were reverted to maintain stability. [132d50b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F132d50b3ecb48e5c1b8ed77da68630803e80b123)\r\n- Updated OpenAI moderation integration from deprecated text-moderation-latest to the new omni-moderation-latest model, including integration test updates [#4722](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4722)\r\n- Updated Anthropic integration tests to remove usage of deprecated model versions [9e78796](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9e787960f26ea56a3a5603236dcff40d1faefee9)\r\n- The public constructor of QuestionAnswerAdvisor is now deprecated in favor of using the builder pattern for improved API design [adf4efe](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fadf4efe38e9132509100ada62fc9de4c4646e127)\r\n\r\n## ⭐ New Features\r\n- Advisors now support configurable observations, providing better control over observability behavior in AI workflows. [3cf3db1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3cf3db16fa9a1c5130d1cf8647dce6623d0e0a01)\r\n- Chat client now logs completion data and makes response text available in the Observation Context for improved monitoring and debugging. [13de219](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F13de2192c3fe42a2af507396c0f4f0d3fcaaee67)\r\n- Added support for Oracle JDBC in ChatMemoryRepository, enabling Oracle database backends for conversation memory storage [30af4e8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F30af4e81c127e5919cabbc3c398da1114d6bd846)\r\n- Added support for recursive advisor execution, enabling advisors to call other advisors in a chain. Includes two new built-in advisors to facilitate advanced use cases. [323c590](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F323c590cd6646e356bbc810e9b74bd9fcafbf8e4)\r\n- Introduced H2ChatMemoryRepositoryDialect to enable H2 database support for JDBC-based chat memory storage. [0b0024e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F0b0024e8ffda98e631d5b704529aeb6eba28c6eb)\r\n- Added Oracle and SQLite database dialect support for JDBC chat memory, expanding database compatibility options. [673f483](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F673f48366462515f37ea9645a2061f311e315950)\r\n- Expanded OpenAI integration to support more transcription and text-to-speech (TTS) models, providing greater flexibility for audio processing. [bdb7ea5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fbdb7ea55585013a7c27bf15447f067acd04138f8)\r\n- Enhanced TextSplitter functionality to preserve document properties and track metadata through text splitting operations, improving RAG pipeline capabilities. [b452e89](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fb452e893be77e46e6438e324ed231888c5a8d921)\r\n- Added support for Anthropic's Citations API, enabling retrieval of source citations in model responses [e91eda9](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fe91eda9bdfb7f8fa223707d525c5f790319215b3)\r\n- Added support for Mistral AI's codestral embedding model for code-focused embedding generation [ea48e17](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fea48e177d125e18b323383c20c5b0a026a849db6)\r\n- Added usage field to ChatCompletionChunk for ZhipuAI to track token consumption during streaming operations [d619727](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd619727e15a225474d59a098179ce4994b2a71ff)\r\n- Added additional timeout configuration options for AWS Bedrock to provide more granular control over request timeouts [34fc691](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F34fc6911ee4bf286a240960f01f749a85e9c1f79)\r\n- Added User-Agent header with 'spring-ai' value to OpenAI API client for better request identification and tracking [62fc70f](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F62fc70f6fd527622e497867652ccc2a4936b9e11)\r\n- Enables prompt caching functionality for AWS Bedrock Converse API to improve performance and reduce costs by caching frequently used prompts. [58cf35e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F58cf35ea2a3c90cb3187b3c52d79382564514fd9)\r\n- Adds approximate k-nearest neighbor search capabilities to the OpenSearch vector store integration for improved query performance on large datasets. [5df83cb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5df83cb74f074a4d3bfcf51bbc497325479a39b2)\r\n- Introduces new testing utilities to simplify Spring AI test configuration and improve developer experience when writing tests. [8b9f730](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcomm","2025-11-03T10:22:41",{"id":228,"version":229,"summary_zh":230,"released_at":231},198299,"v1.1.0-M3","# Spring AI 1.1.0-M3 Release Notes\n\n## 🎯 Highlights\n\n**Model Context Protocol (MCP) Java SDK 0.14.0 Upgrade**\n\nThis release primarily focuses on upgrading to the Model Context Protocol (MCP) Java SDK version 0.14.0, bringing significant improvements to Spring AI's MCP integration capabilities. Key enhancements include:\n\n- **Enhanced Resource Template Management**: Improved resource template API consistency and management capabilities\n- **Robust Error Handling**: Better resilience for MCP server interactions with proper handling of non-compliant responses and edge cases\n- **Spec Compliance Improvements**: Proper resource not found handling and fixes for Content-Length: 0 responses\n- **Client-Side Validation**: New tool output schema validation and caching for improved client reliability\n- **API Refinements**: Better JSON type handling, consistent naming conventions, and optional lastModified field support in Annotations\n\nThese foundational improvements strengthen Spring AI's MCP implementation, providing a more reliable and feature-rich Model Context Protocol experience.\n\n**Additional Updates**\n\nThis release also includes 7 new features, 11 bug fixes, 9 documentation improvements, and 16 other improvements across the Spring AI ecosystem.\n\n## ⭐ New Features\n- MarkdownDocumentReader now supports processing multiple documents in a single operation [499ab3e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F499ab3ee75df3a395fb0b2c1216fb9bce924bc82)\n- Added Azure Cosmos DB integration for chat memory persistence [1a35e8a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F1a35e8a65b56e01e209c1f167095f8a7ed083216)\n- Improved error handling with fallback messages when tool execution encounters blank errors [f2d57cc](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff2d57cc3fd0bca467d47ae8b68113e4eef32815d)\n- Added support for the latest Claude models with improved naming conventions in the Anthropic integration [#4516](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4516)\n- Added metadata filtering capabilities to GemFireVectorStore for more precise vector search queries [78c5e00](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F78c5e001d39e40f0da1f5b7b2b78a38f2047c01f)\n- Added MCP resource template support to server auto-configurations, enabling enhanced Model Context Protocol capabilities [97ac810](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F97ac810821173bdc998cf00d1e57912f18b013f3)\n- Introduced builder pattern support across the Mistral module for improved API usability [b8dfc09](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fb8dfc090b0af53dcdaa52a9d8bf8f50fe25441a2)\n\n## 🪲 Bug Fixes\n- Improved tool\u002Ffunction calling reliability by adding a special warning when LLMs change tool names during execution [#4349](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4349)\n- Resolved issues with JsonSchemaGenerator when processing method input parameters, particularly for Mistral AI integration [#4524](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4524)\n- Corrected property access syntax in StTemplateRender for proper template rendering [0cea262](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F0cea262258b31a335f97505a69a5ac5a47baf5bd)\n- Corrected test configuration issues for MistralAI integration [4408c46](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F4408c4620e622ede10bedac9c36703fa8a838d97)\n- Fixed inconsistency where parameterized render(Map) failed to handle Resource in variables compared to no-arg render [0fd9fd5](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F0fd9fd59107569047c4d3fa17a6183ee3c4e3d95)\n- Resolved issues with Jackson module loading by not using the Thread Context ClassLoader [#4515](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4515) via [#2921](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues\u002F2921)\n- Enhanced robustness of mergeToolUseEvents in StreamHelper and fixed handling of thinkingBlock.signature in event-to-response conversion [9907b2c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9907b2c1f9efff8ddec684c1888c40442126513e)\n- Removed unused member variables to improve code maintainability [#4489](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4489)\n- Fixed Ollama auto-configuration issues to ensure proper initialization [b915413](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fb915413b3caf189221f5ed28740ee72da00f992c)\n- Resolved an issue in the OllamaApiHelper component [5d8907f](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5d8907f3cfc7a66f37de7dd6bd7ec2a511e7a238)\n- Cleaned up the initializeContainer method by removing redundant parameters and assignments [84efb6a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F84efb6a63628e80a1bb848524d3b8c43a9fbcd3c)\n\n## 📓 Documentation\n- Added comprehensive security reference documentation for Model Context Protocol integration [#4532](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4532)\n- Updated documentation to include Z.ai international site information and GLM-4.6 model support ","2025-10-15T14:07:00",{"id":233,"version":234,"summary_zh":235,"released_at":236},198300,"v1.0.3","# Spring AI 1.0.3 Release Notes\r\n\r\n## 🎯 Highlights\r\nThis release includes 4 new features, 14 bug fixes, 6 documentation improvements, 3 other improvements.\r\n\r\n## ⭐ New Features\r\n- GemFireVectorStore now supports metadata filtering queries, enabling more precise vector search operations. [833a856](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F833a856f51090f0eb98332db2341ce7a107af1fd)\r\n- Enhanced AWS Bedrock integration with new BedrockChatOptions for improved configuration management and chat model options [8660473](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F86604733398e91efeec8d02636b7c85ece4ca80d)\r\n- Initial implementation of ahead-of-time compilation improvements for better GraalVM native image support [a964887](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa96488716924be6e020a48a45e72279293118ba6)\r\n- OpenAiApi can now be injected as a Spring bean, enabling easier customization and testing [ee51d44](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fee51d44675af5aa9d7773bf24d811808739c09ba)\r\n\r\n## 🪲 Bug Fixes\r\n- Resolved issues with JSON schema generation for method input parameters in Mistral integration. [#4524](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4524)\r\n- Improved error handling by providing fallback messages when tool execution errors are blank. [a0a38de](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa0a38de0b284fa30ada947dffada9692dad85914)\r\n- Enhanced robustness of mergeToolUseEvents method and fixed handling of thinkingBlock.signature() in eventToChatCompletionResponse, improving streaming event reliability. [6ced885](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6ced885e7e036480957b9192d18b511b9d6f6ac5)\r\n- Resolved inconsistency in PromptTemplate.render(Map) where Resource variables were not handled correctly compared to no-arg render. [36516e0](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F36516e0eed6c2f8b9ae2d68014b653c647bca17c)\r\n- Corrected class loading mechanism for Jackson modules to avoid using Thread Context ClassLoader, improving reliability in certain deployment scenarios. [9d9d539](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9d9d539daf0ba74fbf63cc700962175141f90ce4)\r\n- Improved type safety and consistency in logger parameter binding. [d075519](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd075519a3513149580404b64e606a0685151d831)\r\n- Code quality improvement for document handling. [5bac155](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5bac155b45b90fabd6340873f6425588dc119bd5)\r\n- Corrected usage of BedrockChatOptions in the Bedrock proxy chat model implementation [06079b2](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F06079b2723267a56b57eceb6c6836c3f7af62f94)\r\n- Fixed toolAnnotationWeatherForecastStreaming integration test for Bedrock Nova chat client [a110c8b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa110c8b97cd46650cfdaee2b6a2e188fc54ea3ab)\r\n- Resolved issue GH-4414 in OllamaApiHelper implementation [71dee41](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F71dee41f061c8b3e0f3ff6e1509d8187372eea01)\r\n- Enhanced configuration metadata generation for better IDE auto-completion support [76ca66d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F76ca66d5ddf433dce49eb981537f7ae5ec75be34)\r\n- Resolved index out-of-range exceptions that occurred during tool call merging in OpenAI integration [a12f0ca](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa12f0ca7e0b30838ccf5ccf0da1598df8acab5fa)\r\n- Updated test annotations to use the current @MockitoSpyBean annotation instead of the expired @SpyBean [65b4ead](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F65b4eada1f7164710532e93762c7245cd15acbf9)\r\n- Enhanced code clarity by improving method parameter names in the ChatClient builder API [#3856](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3856)\r\n\r\n## 📓 Documentation\r\n- Corrected documentation typo in ollama-embeddings.adoc. [cdf5643](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fcdf5643fa0cb7d8888da9279bb82dcdbcc8468f0)\r\n- Added documentation for metadata filtering capabilities in GemFireVectorStore. [bc5411a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fbc5411ac6ea6ffad06ce7218c7eded78b01f9aa9)\r\n- Corrected example code in ChatMemory documentation for CassandraChatMemoryRepository [#4476](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4476)\r\n- Fixed example code errors in multimodality documentation [#4475](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4475)\r\n- Corrected documentation showing the proper property prefix as spring.ai.oci.genai.cohere.chat [#4437](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4437)\r\n- Updated DeepSeekChatModel initialization examples to demonstrate proper builder pattern usage [#4421](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4421)\r\n\r\n## ⚡ Performance\r\n- Improved performance of float list to primitive array conversion in embedding utilities [8e16f9d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8e16f9d05181fadec119c03a21c85","2025-10-01T18:20:23",{"id":238,"version":239,"summary_zh":240,"released_at":241},198301,"v1.1.0-M2","# Spring AI 1.1.0-M2 Release Notes\n\n## 🎯 Highlights\nThis release includes 16 new features, 12 bug fixes, 6 documentation improvements, 22 other improvements.\n\n## ⭐ New Features\n- Added support for response schema validation in VertexAI Gemini Chat Model for structured output generation [31423e9](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F31423e91553a6ff20bf091086671dd10acd5b7c5)\n- New integration with Mistral AI's OCR (Optical Character Recognition) API for document and image text extraction [0c1a089](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F0c1a089624244f3143f6cbcc45ccf85759139b9d)\n- Added comprehensive hardware, memory, performance and execution options for Ollama embedding models [eba2cec](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Feba2cecca0ac9a93337d51614a340c0bf4eda8a8)\n- Added Testcontainers service connection support for docker\u002Fmcp-gateway to improve testing capabilities [4d0206b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F4d0206bd896347c058dd048bf3206640a6b7cbb6)\n- Added Google GenAI artifact entries to Spring AI Bill of Materials for improved dependency management [ae59953](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fae599539a7eddcb7244155456c05dcca4ca86a64)\n- Added support for thinking and response_format parameters to the ZhipuAI chat model integration, enhancing the model's capabilities and output formatting options [cae6364](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fcae63644439a273d0d09a603f5bf90ca7b61b2ba)\n- Added Docker Compose service connection support for MCP Gateway, improving containerized deployment capabilities [60a27a8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F60a27a8b7a5181253dc097319baa095e97c41d3d)\n- Added support for new ZhiPu models GLM-4.5 and GLM-Z1 [5f984fb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5f984fbceca2be91bb449124774cf6a2b54bfbf6)\n- Added 'enable' property for Bedrock Cohere chat configuration [9442c35](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F9442c35efa56a6ce6a3716bfaae986a92442f688)\n- Added requestMetadata support to Bedrock converse requests for enhanced request tracking [45baa39](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F45baa39f7583dcfe013fdc394ac2f6f04b073280)\n- Aligned EmbeddingOptions builder pattern with ChatOptions for consistent API experience [14d6f58](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F14d6f589595dcf53767d3812fc41dc7c9a66bb1e)\n- Added builder pattern support for AssistantMessage creation [f4a1c96](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff4a1c96bd787e6b20e8788d754b5b89312249be9)\n- Added support for the new glm-4.1v-thinking-flash model in the ZhipuAI integration [49506de](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F49506de04a4129719b02b56575bd159b01d1acdc)\n- Made OpenAI API available as a bean for injection, enabling easier integration and customization [f41c27d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff41c27d67d4e88fd1f67895e8d8c3cb1e2f4c6c9)\n- Implemented cache management for Anthropic API with eligibility tracking for improved performance and resource optimization [1d5ab9b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F1d5ab9b67558790ba914eb3ecfefd47581631956)\n- Added extended token usage metadata and Cached Content API support to Google GenAI (Gemini) for enhanced performance monitoring and content caching capabilities [6cf3b4b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6cf3b4b34ff652d358751c85c1b161c8539d63c2)\n\n## 🪲 Bug Fixes\n- Fixed issues with stateless Model Context Protocol (MCP) server registration to ensure proper connection handling [1b3705f](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F1b3705f4cac9a23d744339a15205fd6c9d349cef)\n- Replaced expired @SpyBean annotation with @MockitoSpyBean for improved testing compatibility [#3446](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3446)\n- Prevented out-of-range errors when merging tool calls in the OpenAI integration [6697589](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F6697589dcfa1e5215808419c2b9d89a1e614bd43)\n- Optimized EmbeddingUtils.toPrimitive(List\u003CFloat>) method for better performance [d1133dc](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd1133dc866c83f28deb4ac20634d8d0e76209fa6)\n- Improved method parameter naming in ChatClient.Builder.defaultAdvisors() for better developer experience [#3856](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3856)\n- Fixed handling of default implementation for ToolCallback#call(String,ToolContext) method to improve tool integration reliability [3e17e16](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3e17e1684b933568871c85bd700df5016d3e5532)\n- Fixed Ollama to properly use system role for system messages instead of user role [#4364](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4364)\n- Corrected wrong checkstyle automated changes that were improperly applied [f3aab2f](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff3aab2f97ac3d8d6d428191c3e46072587ef85cc)\n- Refa","2025-09-22T21:28:16",{"id":243,"version":244,"summary_zh":245,"released_at":246},198302,"v1.0.2","# Spring AI 1.0.2 Release Notes\r\n\r\n## 🎯 Highlights\r\nThis release includes 9 new features, 31 bug fixes, 13 documentation improvements, 4 dependency upgrades, 4 performance improvements, and 15 build updates.\r\n\r\n## 📢 Noteworthy\r\n- Removed deprecated Mistral AI Codestral Mamba model support as part of code cleanup efforts [#4225](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4225)\r\n- Changed UserMessage to use `metadata` property instead of `properties` for better consistency across the API [#3980](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3980)\r\n\r\n## ⭐ New Features\r\n- Added 'enable' configuration properties for Amazon Bedrock Cohere chat functionality [779b304](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F779b3042c23c3802743d740eb72927f141efa5c4)\r\n- Improved Unicode property union support for better Chinese character handling in text processing [35df129](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F35df129a47393b9d8a1dfaf040db697d7aee7657)\r\n- Added mutual exclusivity validation between maxTokens and maxCompletionTokens parameters to prevent configuration conflicts [5496a8c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5496a8c07327758a0228caddf98a011f72f3798a)\r\n- Added support for GPT-5 models from OpenAI, expanding the available model options for Spring AI applications [977dbf2](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F977dbf2544997ccf63bded7b33131b215ce5c0ee)\r\n- Added comprehensive debugging capabilities to maintenance workflow to improve troubleshooting and monitoring [51086f8](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F51086f8a091635fef92f022f47c7c54105afad09)\r\n- Added GPT-5 model enum support with updated documentation to enable integration with OpenAI's latest model [9908073](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F99080737da6be04d7a64045bf60e3e240a07363c)\r\n- Implemented fast CI build support for maintenance branch cherry-picks to improve development workflow efficiency [22efc03](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F22efc030106102ca4e6c22018d121dd393c6bb52)\r\n- Enables proper JSON schema generation for Kotlin data classes and objects in BeanOutputConverter [#3900](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3900)\r\n- MariaDB Vector Store similarity searches now provide scores for better result ranking [3d72e93](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3d72e93cb3da075356060717e151dd8db6706eb3)\r\n\r\n## 🪲 Bug Fixes\r\n- Fixed tokenizer to properly use Base64 encoding for binary data token estimation [c60d942](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc60d9425c798cd06bcf6056bd7cccc7e0c1d3802)\r\n- Corrected function name in VertexAI Gemini streaming test to resolve test failures [407e4cb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F407e4cbdf8e522f021550eaf3a4dbc2ce1ed91be)\r\n- Resolved issues with default implementation of ToolCallback#call(String,ToolContext) method [76708a1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F76708a16d8db9c9ab9480cc227bebbc88455ab1f)\r\n- Properly handle null or empty tool call arguments during streaming operations [8d0caf4](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8d0caf4f72cc013d6c8d71ff48eeecc0d129ec56)\r\n- Cleaned up incorrect BedrockChatOptions configuration that was causing issues [5ecbfab](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5ecbfabc8c84c9746f63dd4fe316eeb8f463ee1c)\r\n- Fixed issue with merging tool calling chat options in AWS Bedrock converse chat model [#4314](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4314)\r\n- Resolved message reordering issues in Azure OpenAI chat model implementation [618c451](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F618c45186b6ced520c19373ac3041bb030f603b7)\r\n- Fixed various integration test failures for Anthropic function calling functionality [3f97d9e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3f97d9e2af1479ff50ddd2bec54dae6d89bb7506)\r\n- Corrected stream function call usage test failures in Azure OpenAI integration [ec84f2a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fec84f2a2105f2e84e9edad5c684eb111d2cb79cd)\r\n- Fixed chat completion stream error handling in Anthropic API integration tests [38afc12](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F38afc123115cfb6c055d1f1b34a3207391dbef6b)\r\n- Replaced SimpleDateFormat with thread-safe DateTimeFormatter to prevent potential concurrency issues [370efa7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F370efa7663e280439443bab7dd43beb26b1b2d5e)\r\n- Removed duplicate lines in AzureOpenAiChatOptions configuration class [5477f47](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5477f47c122594b21ee5492e6f0fec1c6836b92a)\r\n- Resolved a StackOverflowError that was introduced by the MongoDbAtlasLocalContainerConnectionDetails.getSslBundle() method [03d475e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F03d475e03fe8fd9850547877ae88e745c2891679)\r\n- Corrected NPE that occurred when metadata is null in MilvusVectorStore operations [","2025-09-17T14:03:24",{"id":248,"version":249,"summary_zh":250,"released_at":251},198303,"v1.1.0-M1","# Spring AI Next Release Release Notes\n\n## 🎯 Highlights\nThis release includes 47 new features, 106 bug fixes, 70 documentation improvements, 120 other improvements.\n\n## ⏪ Breaking Changes\n- Auto-configuration classes for Model Context Protocol (MCP) have been renamed with 'Mcp' prefix for consistency [21c4283](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F21c4283e341436fecf361ea6ef2d0a17ec17bff0)\n- maxTokens and maxCompletionTokens parameters are now mutually exclusive in OpenAI ChatOptions, requiring users to choose one option [13c39f1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F13c39f107f16e864ece9aea20b7d44783512f922)\n- Changed UserMessage to use `metadata` instead of `properties` for better API consistency [#3980](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3980)\n- Extracted VectorStoreRetriever interface from VectorStore which may require code updates for custom implementations [#3827](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3827) via [#1290](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fissues\u002F1290)\n\n## ⚠️ Upgrading Notes\n- Update imports for MCP auto-configuration classes that have been renamed with 'Mcp' prefix [21c4283](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F21c4283e341436fecf361ea6ef2d0a17ec17bff0)\n- When configuring OpenAI ChatOptions, ensure you use either maxTokens or maxCompletionTokens, but not both simultaneously [13c39f1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F13c39f107f16e864ece9aea20b7d44783512f922)\n- Update code to use `metadata` instead of `properties` when working with UserMessage objects [#3980](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3980)\n- Custom VectorStore implementations may need to be updated to implement the new VectorStoreRetriever interface [#3827](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3827)\n\n## 📢 Noteworthy\n- Removed support for the deprecated Mistral AI Codestral Mamba model as part of code cleanup [#4225](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4225)\n- Significantly improved test coverage for MistralAiBindingsPropertiesProcessor to ensure robust MistralAI integration [#4165](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4165)\n- Improved test coverage for EmbeddingModelObservationContext and SyncMcpToolCallback edge cases to ensure better reliability [#4157](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4157)\n- Significantly improved test coverage for QdrantObjectFactory.toObjectMap, SimpleVectorStore filter conditions, and various other components [#4095](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F4095)\n- Removed hardcoded topK value in BedrockConverseProxyChatProperties for better configuration flexibility [#3621](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3621)\n- Refactored MessageAggregator to properly handle and include tool calls in message aggregation [df90b9c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fdf90b9c1b31079c2ee9249689fc0bc05d3e04e18)\n- Cleaned up QdrantVectorStoreIT by removing unnecessary environment variable validation [#3615](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3615)\n- Temporarily reverted a fix for OpenAI function callback integration test [3bce15a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F3bce15a349ce3ad1380dca4aaf220382dcb6e600)\n- Temporarily reverted a parameter order fix in validateToolContextSupport method [f0c128c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff0c128cb0c599be58dec1d6f46a2b4a2c96be675)\n- Temporarily reverted changes to resolve OpenAI API key for every request due to compatibility issues [313aae0](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F313aae0e8944c202e54e0996fcbb89c643d6dea9)\n\n## ⭐ New Features\n- Tool callbacks now expose the original tool name in both synchronous and asynchronous operations, providing better visibility into tool execution [6678035](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F66780351a32a75a31212af73ca486efd6096244c)\n- Added support for sending labels with chat requests in Google Generative AI integration [1dd686b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F1dd686b3e9e767d09da350505af86578ba70de88)\n- Added comprehensive annotation-based configuration support for Model Context Protocol (MCP) clients and servers [534c6af](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F534c6afff5c66c6a1d4c8c4007e719422b803382)\n- Added support for OpenAI service_tier parameter in OpenAiChatOptions to enable control over service quality levels [ad2e1bc](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fad2e1bcda55e7be510eb3a98106217ec59056da8)\n- Refactored MCP (Model Control Protocol) server auto-configuration to use consolidated modules with protocol-based configuration approach [e71da4e](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fe71da4e1596c9b6e0d6213fb0bafdb92c65e7b26)\n- Added missing Spring Boot starters for Google GenAI integration, enabling easier autoconfiguration [528155a](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F528155a63","2025-09-09T00:03:41",{"id":253,"version":254,"summary_zh":255,"released_at":256},198304,"v1.0.1","# Spring AI 1.0.1 Release Notes\n\n## 🎯 Highlights\nThis release includes 24 new features, 50 bug fixes, 45 documentation improvements, 32 other improvements.\n\n## 📢 Noteworthy\n- Official release of Spring AI version 1.0.1 with consolidated bug fixes and documentation improvements [53ec007](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F53ec00733032b09ddc4dcc34a572140429f85e93)\n- Multiple commits were reverted related to tool context validation fixes and OpenAI chat client method invoking function callback integration tests [80ffb4c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F80ffb4ce99ccad174f8d60ae22a0a0b735d760d1)\n- Temporarily reverted the change that resolved OpenAI ApiKey for every request, indicating potential issues that required investigation [8a2706d](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F8a2706d6246e5b7a868bc2979c6182fa946e14c8)\n\n## ⭐ New Features\n- Enhanced KeywordMetadataEnricher with custom template functionality to provide more flexible metadata enrichment capabilities [2082a59](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F2082a594a40b6552b57cdbc51cae7c2112efd0f9)\n- Added validation to check documents for text\u002Fmedia content when adding to vector stores [#3687](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3687)\n- Improved @Tool annotation functionality to enhance function calling capabilities [62160d3](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F62160d330df5e7e5512120e97a1e8e7c7c0d0a74)\n- Added support for streaming tool calls without parameters in the Anthropic chat model [2099278](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F209927830d99fa3bb66ca2fda04bc95025911b0a)\n- Updated and improved configuration options for Mistral chat model integration [c18a241](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fc18a241c4ad8c4fa844781c0624b8ea5d7d9f53d)\n- Added capability to selectively rethrow exceptions in the default tool execution exception processor [d1baefb](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fd1baefb4b768e1139f09abf0f3b9036b1adb17a0)\n- Refactored MessageAggregator to include support for tool calls functionality [1805ca0](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F1805ca07df968f4f38db06b88f9f36afe9aa6d7f)\n- The ChatClient#mutate method now creates copies of advisors and advisorParams instead of sharing references, improving isolation between chat client instances [ccfaaf1](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fccfaaf1f4823906e46d64b3bd44122fb9c0e016d)\n- Added equals, hashCode, deep copy functionality and comprehensive tests to MiniMaxChatOptions for better object handling and comparison [dc9ea17](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fdc9ea17fc6760981d4d7d4f84f1ffd5b90a40940)\n- Added support for new Mistral AI chat models to expand the available model providers [#3523](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3523)\n- Enhanced OllamaChatModel with retry template integration for improved reliability [f89530c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Ff89530c3146db5635280e530b147a2812e481d76)\n- Added streaming thinking events support for Anthropic model provider to enhance real-time interaction capabilities [379901b](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F379901bde105417d3c7c9bc209524a8f51e9252b)\n- Enhanced OpenAI integration with updated supported voice enumerations for text-to-speech and chat completion audio features [#3411](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3411)\n- Added support for dynamic API key configuration for Anthropic model provider on a per-request basis [ae9284c](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fae9284cb01af2939b568a623e0b635f35da1798c)\n- Neo4j vector store now automatically determines default embedding dimensions based on the configured model [96c45c7](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F96c45c7ee9f498f71830d0b485628380d155953f)\n- Added Spring Framework 7.x compatibility to RetryUtils#ResponseErrorHandler to support upcoming Spring Framework versions [5ecfcce](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F5ecfcce16333d0289ca451e8cfb6171c5edb9feb)\n- Enhanced OpenAI client to resolve API key for every request, improving key rotation and configuration flexibility [dd6c0a9](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fdd6c0a95309b16a22df810099ba92273ac451a37)\n- Introduced support for Anthropic's latest Claude models including claude-opus-4 and claude-sonnet-4 [#3351](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fpull\u002F3351)\n- Extended OpenAI integration to support PDF files as media input [a330458](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002Fa33045871f3564c5fde7bd7248df45319053d191)\n- Provided MySQL database schema for SPRING_AI_CHAT_MEMORY table to support chat memory functionality [148bf33](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-ai\u002Fcommit\u002F148bf3376b2b0794e193ca6b37c0cf4307a0654c)\n- Improved handling and testing of complex metadata values in Chroma vector store integration [aba83","2025-08-08T19:32:04"]