Releases: spring-projects/spring-ai
Spring AI 2.0.0-M3
Spring AI 2.0.0-M3 Release Notes
π― Highlights
This release includes 23 new features, 45 bug fixes, 16 documentation improvements, 67 other improvements.
π’ Noteworthy
- MCP Annotations are now moved from spring-ai-community/mcp-annotations (
org.springaicommunity.mcp) into Spring AI core (org.springframework.ai.mcp.annotation). 585d618 - Spring-specific MCP transport implementations are now moved from the MCP Java SDK (
io.modelcontextprotocol.sdk) into the Spring AI project (org.springframework.ai.mcp). 0045513 - The OpenAI SDK integration now uses the new builder pattern for
OpenAiSdkChatOptions, providing a more fluent API for configuration. 3508cc1 - A deprecated shim has been added for the
disableMemory()method. Users should migrate todisableInternalConversationHistory()as the preferred API 9893de6 - The
OpenAiChatModel#internalCallmethod and other internal methods have had their access control scope optimized to private, improving code encapsulation and reducing unintended usage of internal APIs. e86b8d7 - Reverted a breaking API change that made
ModelRequest#getOptionsnon-null, restoring backward compatibility #5403 - Simplified tool context management by removing automatic tool call history inclusion 8ab7f7e
β οΈ Breaking Changes
Breaking Changes: 2.0.0-M3 includes several breaking changes, including MCP annotation package renames, MCP transport artifact relocations, Jackson 2 β Jackson 3 migration, and removal of conversation history from
ToolContext. Review the Upgrade Notes before upgrading.
- MCP Annotations are now moved from spring-ai-community/mcp-annotations (
org.springaicommunity.mcp) into Spring AI core (org.springframework.ai.mcp.annotation). 585d618. Follow the migration instructions. McpAsyncClientCustomizerandMcpSyncClientCustomizerhave been removed and replaced by a single generic interfaceMcpClientCustomizer<B>. 272c736. Follow the migration instructions.- Spring-specific MCP transport implementations are now moved from the MCP Java SDK (
io.modelcontextprotocol.sdk) into the Spring AI project (org.springframework.ai.mcp). 0045513. Follow the migration instructions. - Spring AI now uses Jackson 3 (
tools.jacksonpackage) instead of Jackson 2 (com.fasterxml.jacksonpackage) 42043bc which is used by default in Spring Boot 4, if you were using previous milestone make sure to refine your Jackson dependencies accordingly. - Conversation History Removed from
ToolContextMigration Instructions - Builders exposed to users no longer require explicit generics, simplifying the API surface. This affects
MiniMaxChatOptionsand potentially other model provider option builders. 7470fd8. Code using explicit generics should be updated to use simplified builder syntax. - The Anthropic integration has been replaced from a RestClient-based implementation to use the official Anthropic Java SDK, which may require code changes for applications using the Anthropic model provider. b0ce25a. If you are using the Anthropic model provider, review your code as the internal implementation has changed from
RestClientto the official Anthropic Java SDK. The public API should remain compatible, but custom configurations may need adjustment. - The
disableMemory()method has been renamed todisableInternalConversationHistory()for better clarity about its purpose 657252a. Replace calls todisableMemory()withdisableInternalConversationHistory(). A deprecated shim is provided for backward compatibility. - Huggingface model and autoconfiguration have been moved out of the main Spring AI repository f21b082
DeepSeekChatOptionshas been updated to use the modern builder pattern for consistency with other chat model options in Spring AI. Existing code using the old constructor pattern will need to be updated. #5552. Update your code to use the new builder pattern instead of direct constructor calls. Example:DeepSeekChatOptions.builder().temperature(0.7).build()BedrockChatOptionshas been updated to use the modern builder pattern for consistency with other chat model options in Spring AI. Existing code using the old constructor pattern will need to be updated. #5550MistralAiChatOptionsnow uses builder pattern for configuration, replacing direct constructor/setter usage #5551. Update code usingMistralAiChatOptionsto use the new builder pattern instead of constructors or setters.AzureOpenAiChatOptionsnow uses builder pattern for configuration, replacing direct constructor/setter usage #5544. Update code usingAzureOpenAiChatOptionsto use the new builder pattern instead of constructors or setters.AnthropicChatOptionsnow uses builder pattern for configuration, replacing direct constructor/setter usage #5541. Update code usingAnthropicChatOptionsto use the new builder pattern instead of constructors or setters.- Refactored
ChatOptionsbuilders to introduce builder merging pattern, which may affect custom implementations extendingChatOptionsbuilders 3db5c2b. If you have custom implementations extending ChatOptions builders, review the new builder merging pattern and update your code accordingly. The new pattern is demonstrated in theOllamaChatOptionsimplementation. - Claude 3 Opus, Sonnet, and Haiku models have been removed. Applications must migrate to Claude 4.x model variants. 628b020
- Internal methods in model implementations have been changed from protected/package-private to private access, improving encapsulation. This affects OpenAI and other model provider implementations. If you were extending these classes and accessing internal methods, you'll need to use public APIs instead. da3bec4
- The
ModelRequest#getOptionsmethod now returns a non-null value. Code expecting null return values will need to be updated. e4a4723. If your code checks for null returns from ModelRequest#getOptions, update it to handle the non-null guarantee. The method now always returns a valid options object. - Previously deprecated constants in Mistral model enums have been removed. Update code to use the current model enum values. 96b408d. If your code references deprecated Mistral model enum constants, update to use the current enum values as the deprecated constants have been removed.
- If your application uses Claude 3 Opus, Sonnet, or Haiku models, update model identifiers to their Claude 4.x equivalents (e.g., claude-sonnet-4-5-20250929). 628b020
- If you extended model implementation classes and accessed internal methods, verify that you're using public APIs only. Internal methods are now private and no longer accessible from subclasses. da3bec4
β New Features
- New abstraction for customizing MCP (Model Context Protocol) clients, providing a hook for modifying client behavior before initialization. #5606
- Improvements and bug fixes to the filter expression converter used across vector store implementations fo...
Spring AI 1.1.3 Release
Spring AI 1.1.3 Release Notes
π― Highlights
This release includes 19 new features, 31 bug fixes, 23 documentation improvements, 25 other improvements.
π’ Noteworthy
- All deprecated Anthropic model names have been replaced with active model identifiers throughout the codebase and integration tests to maintain compatibility with Anthropic's API. 54f35dc
β New Features
- Neo4j vector store now allows customization of the filter expression converter via the builder pattern, providing more flexibility for custom query filtering logic. 82bc777
- Introduces builder pattern for more flexible and readable construction of OpenAiSdkChatModel instances 982bc1e
- Adds support for custom embedding dimensions via '/embedding/embedding-model-dimensions.properties' configuration file for OpenAiEmbeddingModel a5359c7
- ToolCallAdvisor now supports streaming responses, enabling real-time function calling interactions 21dac8d
- SimpleVectorStore now supports filtering when deleting entries, providing more granular control over vector data management 7752ef8
- Added support for Anthropic Claude Skills API with unified API design and helper classes for skill integration #5299
- Added dimensions parameter support for Ollama embedding models, allowing control over embedding vector size #2713
- Enabled customization of JSON schema generation for structured outputs and function calling 4a8bdd7
- Mistral AI chat model now supports structured outputs using JSON schema validation, enabling type-safe responses with automatic conversion 76587fe
- New convenience method for easily retrieving system messages from Prompt objects a78d2e8
- Added Mcp*ServerCustomizer interfaces and fixed MCP auto-configuration to work properly in non-web environments #5261
- OllamaChatOptions now implements StructuredOutputChatOptions, enabling structured JSON output handling with comprehensive unit and integration tests a6ce0f6
- Added support for simple JSON format option in Ollama chat interactions 7b23ee2
- Enhanced model provider detection logic for Microsoft Foundry integration d4db917
- Chat memory advisors now support ToolResponseMessage, enabling better handling of tool responses in conversation history f74b04a
- Added support for dynamically augmenting tool schemas at runtime, enabling more flexible tool configuration and customization 6d310cc
- Added conversationHistoryEnabled option to ToolCallAdvisor, allowing users to control whether conversation history is included when making tool calls 4197b81
- Added support for configurable field names in Azure Vector Store, allowing users to work with existing Azure AI Search indexes that use custom field names instead of hardcoded defaults (content, embedding, metadata) 706f23e
- Added support for custom punctuation marks in TokenTextSplitter, enabling more flexible text splitting for various languages and use cases c0e279a
πͺ² Bug Fixes
- Fixed and improved the FilterExpressionConverter for vector store operations, enhancing query filtering capabilities 5b67238
- Replaced disabled Azure OpenAI image model with the latest available version 9578d34
- Corrected the prefixAssistantMessage implementation in DeepSeekAssistantMessage 321314b
- Resolved an issue where token counts were not properly tracked for the first document when starting a new batch, ensuring accurate token usage reporting. cbc1432
- Document names are now properly sanitized to meet AWS Bedrock Converse API naming requirements, preventing API rejection errors. 924478b
- Ensures CosmosDB chat memory auto-configuration is applied first, resolving bean dependency and initialization order issues. 55a819b
- Resolved issues with Anthropic integration tests by updating to current model names. cc47474
- Adds ambiguity check and improves Google GenAI authentication logic to prevent configuration conflicts 29ca4a6
- Resolves issue where MetadataMode configuration was not being applied correctly when processing embeddings in batch mode 6fa8730
- Corrects filter expression grouping logic in OpenSearch vector store integration to ensure accurate query results 03be3bb
- Resolves issue where Bedrock cache metrics were not being properly included in the Usage object for monitoring and observability fc7d55d
- Corrected the filter expression syntax for IN and NOT IN operators in Elasticsearch integration d287c39
- Fixed message ordering issue in MongoChatMemoryRepository to ensure correct conversation history retrieval 52a5c76
- Fixed ToolCallAdvisor to correctly preserve system messages when memory is disabled de32dd2
- Corrected the observation provider usage for Google Generative AI embedding model to ensure proper metrics and tracing #5227
- Improved error handling in ChromaApi to properly catch and process exceptions f7ed9d1
- Modified tool descriptions to help models provide geographical coordinates correctly and polished integration test classes cf55714
- Corrected the chatClientEntityWithStructuredOutput integration test for Mistral AI 43479ac
- Resolved string parsing issue in grammar processing fe5c3f9
- Fixed missing Redis chat memory repository artifacts in Spring AI BOM b2cfd5e
- Improved integration test stability by handling token count variations across different Ollama model versions f4f8d75
- Switched Anthropic integration tests to use active model for improved test reliability 98e24eb
- Fixed issue where Neo4jVectorStore doAdd method was ignoring session configuration 99127f6
- General improvements and updates to Neo4jVectorStore implementation 3293a20
- Resolved issues with Antora documentation build process 820ef7e
- Fixed ChromaApi HTTP server/client exception message verification to properly handle error conditions [330a35c](330...
Spring AI 1.0.4
Spring AI 1.0.4 Release Notes
π― Highlights
This release includes 1 new features, 9 bug fixes, 1 documentation improvements, 11 other improvements.
π’ Noteworthy
- The default model for Anthropic chat has been updated to claude-haiku-4-5 as part of the Claude 4.6 model additions and deprecation cleanup. 86ad1f5
βͺ Breaking Changes
- Deprecated Claude 3.x and 3.7 model variants have been removed from AnthropicApi.ChatModel enum. The default model has been changed to claude-haiku-4-5. 86ad1f5
β οΈ Upgrading Notes
- If you are using deprecated Claude 3.x or 3.7 model variants, update your code to use Claude 4.x models (claude-haiku-4-5, claude-opus-4-6, or claude-sonnet-4-6). The default model is now claude-haiku-4-5. 86ad1f5
β New Features
- Added CLAUDE_OPUS_4_6 and CLAUDE_SONNET_4_6 to AnthropicApi.ChatModel enum, providing access to the latest Claude 4.6 models from Anthropic. 86ad1f5
πͺ² Bug Fixes
- Fixed and enhanced FilterExpressionConverter for vector stores to improve filter expression handling. a2f6f4c
- Corrected string parsing logic in FilterExpressionTextParser to properly handle filter expressions. f6204b5
- Updated AzureOpenAiImage tests to use the latest image model, replacing the disabled model variant. ccd79fb
- Fixed AnthropicChatModelObservationIT and updated integration tests to handle tool call parameters for latest models and replace deprecated model references. 43797b6
- Resolved issues with streaming responses in Azure OpenAI chat model integration 356ae8f
- Corrected message ordering issues when using MySQL or MariaDB as the backend for JDBC-based chat memory storage 393d9fa
- Fixed handling of responses that contain both text content and tool calls in Vertex AI Gemini chat model 9cbc192
- Corrected PDF document reader to properly respect the pagesPerDocument configuration when splitting documents 4c87187
- Resolved property access syntax issues in StringTemplate rendering 4b2ab39
π Documentation
- Updated documentation to reflect that Spring Boot 3.5 has been released and is now available 18bf28c
π¨ Dependency Upgrades
- Updated Spring Boot dependency to version 3.5.11. 11716e7
- Updated dependencies for vector store integrations to latest versions. 2708445
- Updated GemFire vectorstore Docker image used in integration tests. 3722b9f
- Migrated from deprecated Claude Sonnet 3.5 models (retired October 28th, 2025) to Claude Sonnet 3.7 for integration tests be4aa53
- Updated Spring Boot dependency to version 3.5.6 adbdd72
π© Build Updates
- Improved Ollama integration test stability to handle token count variations across different model versions c8dad8a
- Updated Anthropic integration tests to use currently active model versions 65402b0
- Enhanced test container startup reliability for Oracle Vector Store integration tests 425ee84
- Cleaned up unused internal classes to reduce codebase complexity 9d3d7e1
π Contributors
Thanks to all contributors who made this release possible:
Spring AI 2.0.0-M2
Spring AI 2.0.0-M2 Release Notes
π― Highlights
This release includes 20 new features, 20 bug fixes, 16 documentation improvements, 38 other improvements.
βͺ Breaking Changes
- The Anthropic Skills API has been unified and helper classes have been renamed, which may require code changes if you're using the Anthropic integration directly #5299
- The SemanticCache interface has been relocated from the Redis-specific package to a more generic package location, which may require import statement updates for applications directly using this interface. #5284
- The Couchbase vector store classes have been relocated to a new dedicated package structure. Applications using Couchbase vector store will need to update their import statements. #5233
β οΈ Upgrading Notes
- If you are using the Anthropic Skills API directly, review your code for the renamed helper classes and update accordingly #5299
- If you are using the Couchbase vector store, update your import statements to reference the new dedicated package location. #5233
β New Features
- Ollama embedding models now support configuring the dimensions parameter, allowing control over the size of generated embeddings 4bd83ba
- JSON schema can now be customized, providing more flexibility for structured output generation 3119086
- Default API endpoint paths are now configured for OpenAI's content moderation API, simplifying integration setup #5300
- Default API endpoint paths are now configured for OpenAI's audio API (speech and transcription), making it easier to use audio capabilities f7eeaf9
- Added support for using Amazon S3 as a vector store backend for storing and retrieving embeddings cd86d38
- Integrated Infinispan as a new vector store option, providing distributed in-memory data grid capabilities for embedding storage 9b105b8
- Added support for Amazon Bedrock Knowledge Base as a vector store, enabling integration with AWS's managed knowledge base service 21c3834
- Enhanced the Redis semantic cache module with improved functionality and performance 7233e8d
- Made the content field name configurable in QdrantVectorStore, allowing customization of the field used to store document content f65756e
- Added a convenience method to the Prompt class for easily retrieving system messages 8a79390
- Added native support for structured outputs using JSON schema validation in the Mistral AI chat model, enabling type-safe responses with automatic schema enforcement. 8757c5b
- OpenAI moderation, audio speech, and audio transcription API paths are now configurable, allowing customization for proxy setups or alternative OpenAI-compatible endpoints. 1d38aec
- Migrated to use Spring Boot 4's native MongoDB Atlas container support for improved testing and development experience. 5b39fbb
- Introduced Mcp*ServerCustomizer interfaces to allow customization of MCP server configurations #5261
- Added new Redis-based semantic cache advisor implementation, enabling intelligent caching of semantically similar queries to improve performance and reduce API calls 391cbbb
- OllamaChatOptions now implements StructuredOutputChatOptions with corresponding methods, unit tests, and integration tests. Enhanced JSON format handling for Ollama chat options 163df2e
- Improved model provider detection logic for Microsoft Foundry integration, providing better model identification and configuration support 5c18a40
- Add support for dynamic tool schema enhancement, allowing runtime modification of tool argument definitions for more flexible function calling 3c4b6dc
- Add conversationHistoryEnabled option to ToolCallAdvisor, providing finer control over whether conversation history is included in tool call contexts 5ad8485
- Add JSpecify annotations to commons module for improved null-safety analysis and compile-time verification #5101
πͺ² Bug Fixes
- Resolved an issue where ToolCallAdvisor would not preserve system messages when memory functionality was disabled 1dac9d0
- Fixed incorrect observation provider usage in the Google GenAI embedding model implementation #5227
- Corrected conditional logic in Infinispan AutoConfiguration to ensure proper bean creation #5295
- Resolved issues in the MistralAiChatModelIT.chatClientEntityWithStructuredOutput integration test to ensure proper validation of structured output functionality. cf2212b
- Corrected code style violations in the spring-ai-redis-semantic-cache module to maintain code quality standards. 0108011
- Fixed MCP auto-configuration to work properly in non-web application contexts #5261
- Improved exception handling in the ChromaApi for better error reporting e291712
- Fixed failing Ollama integration tests by modifying tool descriptions to better guide the model in providing geographical coordinates 864487f
- Enhanced JdbcChatMemoryRepositorySchemaInitializer for improved database schema setup d202db1
- Corrected string parsing issues in the grammar implementation 8ecc334
- Corrected invalid Filter.Expression constructor usage in documentation examples #5243
- Resolved checkstyle violations in Redis auto-configuration code to maintain code quality standards 07ccd2c
- Resolved token count inconsistencies in Ollama integration tests that occurred with varying model versions c2dfedb
- Updated Anthropic integration tests to use the currently active model for improved test reliability 5982176
- Added explicit null safety check to prevent potential NullPointerException in Neo4jChatMemory MediaBuilder e4c2fb4
- Fixed missing dependency artifacts for Redis chat memory repository in the Bill of Materials, ensuring proper dependency management for projects using Redis-based chat memory. 81427bb
- Fixed an issue where the Neo4jVectorStore's doAdd method was ignoring the sessionConfig parameter, ensuring proper session configuration handling during document addition. #5200 via #5191
- Fixed an issue where chat memory advisors could not properly handle ToolResponseMessage types, improving compatibility with tool-based conversations #5174
- Resolve build issues with Antora documentation generation 95bf79a
- Corrected exception message validation in ChromaDB HTTP client/server communication [5dcac7b](https://gi...
Spring AI 2.0.0-M1
Spring AI 2.0.0-M1 Release Notes
π― Highlights
Spring AI 2.0.0-M1 represents the first milestone of the 2.x series, built on Spring Boot 4.0 and Spring Framework 7.0. This major platform upgrade, contributed by Dmitry Bedrin with Paul Bakker from Netflix (#4774), brings modern Java capabilities and positions Spring AI for the next generation of AI application development.
This release includes 24 new features, 25 bug fixes, 7 documentation improvements, and 32 other improvements across 90 commits.
βͺ Breaking Changes
- The default temperature configuration has been removed from model implementations. Applications relying on default temperature values will need to explicitly configure temperature settings. ce1a7fc
- The default chat model for OpenAI has been updated from the previous default to gpt-5-mini. Applications relying on the implicit default may experience different behavior. 8c093f1
β οΈ Upgrading Notes
- With the removal of default temperature options, ensure your application explicitly sets temperature values in model configurations where required. ce1a7fc
- If your application depends on the default OpenAI chat model, verify that gpt-5-mini meets your requirements or explicitly configure your preferred model in application properties 8c093f1
π’ Noteworthy
- If you're building Spring AI from source on the main branch, ensure you have Java 21 or higher installed while Java 17 is still the baseline for consuming the Spring AI 2.x binaries. 8ca583d
- Spring Boot 4.0 and Spring Framework 7.0 upgrade - This release marks a major platform upgrade from Spring Boot 3.x to Spring Boot 4.0 GA and Spring Framework 7.0. Thanks to Dmitry Bedrin (@bedrin) with Paul Bakker from Netflix (@pbakker) for the comprehensive upgrade effort (#4774). This includes major version upgrades for Kotlin (2.2.21), Rest Assured (5.5.6), swagger-codegen (3.0.75), and Testcontainers (2.0.1). d5e92be, a2a5e1b
- The default chat model for OpenAI integration has been updated to gpt-5-mini, reflecting the latest recommended model from OpenAI 8c093f1
- Official OpenAI Java SDK integration - Added native integration with the official OpenAI Java SDK for improved compatibility and functionality 15df47d
β New Features
- Added Redis-based chat memory repository implementation with Spring Boot starter for persistent conversation management across sessions 95f7481
- New auto-configuration starter enabling easy setup of Redis-based chat memory with minimal configuration 99b2976
- Added text search capabilities, range query support, and HNSW index parameter tuning for improved vector search performance in Redis c160b9c
- TokenTextSplitter now supports custom punctuation marks, allowing more flexible text segmentation for different languages and text formats 9773099
- Azure Vector Store now supports custom field names, enabling integration with existing Azure AI Search indexes that use non-default field naming conventions instead of hardcoded
content,embedding, andmetadatafields 798ab17 - New finalization hook in ToolCallAdvisor enables custom logic execution after tool call loops complete, enhancing function calling workflow control #5064
- Added comprehensive Claude Skills integration including support for the Files API, enabling advanced file handling capabilities with Anthropic's Claude models. bd90625
- Added support for ISNULL and ISNOTNULL filter expressions in vector store queries, enabling better null value handling in metadata filtering. 0b87c78
- Added ThinkingLevel configuration option to control extended thinking capabilities in supported models, allowing fine-grained control over reasoning depth. 740a61c
- Added safety ratings to response metadata for Vertex AI Gemini models, providing visibility into content safety assessments. 2710cab
- Made ToolCallAdvisor extensible by introducing hook methods, allowing developers to customize tool calling behavior and implement custom logic around function execution. #5004
- Added support for the latest Claude 4.5 models including Opus and Haiku variants with updated model enums and documentation 01ace16
- Google GenAI integration now supports thought signatures when using Gemini 3 Pro for function calling, enabling more advanced reasoning capabilities 3cb0879
- GemFire Vector Store now supports authentication via username and password credentials 839e6ed
- Enhanced OpenSearch vector store to omit explicit IDs when manageDocumentIds=false, improving compatibility with AWS OpenSearch Serverless deployments. Includes additional unit and integration tests. d82eec3
- Added native integration with the official OpenAI Java SDK for improved compatibility and functionality 15df47d
- ChatClient now supports native structured output, enabling direct conversion of chat responses to typed objects 195c4fd
- Added prompt_tokens_details tracking for ZhipuAI model and updated default chat options for tests 89a3b32
- Exposed seed parameter in Vertex AI configuration for reproducible results 4f1ab6a
- Added Spring Boot web and REST client dependencies explicitly to model starters for better compatibility #4949 via #4948
- Introduced auto-configuration support for AWS Bedrock profiles and replaced deprecated functionality 552263d
- McpClientAutoConfiguration now supports optional handlers registry, improving flexibility in MCP client configuration #4920 via #4917
- ClientMcp handlers registries now support beans with unresolvable types, enhancing compatibility with various Spring configurations #4918 via #4917
- New Spring Boot starter added for Azure Cosmos DB chat memory repository, enabling easier integration of chat conversation history with Cosmos DB. ef8f413
πͺ² Bug Fixes
- Updated outdated Milvus JSON fields documentation link in MilvusFilterExpressionConverter Javadoc #5028
- Resolved test issues with ChatClient tools using generic argument types 9e857ec
- Updated runtime hints for AWS Bedrock integration 0427650
- Enhanced error handling for JSON parsing in the MethodToolCallback class to provide better error messages and handle malformed JSON in tool/function calling scenarios. #5032 via #3924
- Corrected handling of punctuation marks in the TokenTextSplitter to ensure proper ...
Spring AI 1.1.2 - Bug Fixes
Spring AI 1.1.2 Release Notes
π― Highlights
This patch release focuses on bug fixes, security improvements and dependency management. It includes a bug fix to make Spring AI 1.1.x still compatible with Kotlin 1.9.x, a security fix for the Milvus vector store addressing CVE-2024-7254, updates to MCP (Model Context Protocol) dependencies, and a new hook in the ToolCallAdvisor for enhanced tool calling workflows.
β New Features
- Introduces a new hook method in ToolCallAdvisor that allows customization of the finalization loop in tool call workflows, providing better extensibility for advanced tool calling scenarios 05254e7
πͺ² Bug Fixes
- Cleaned up duplicate dependency declaration for Azure Identity library, improving build consistency db7d44d
π¨ Dependency Upgrades
- Upgraded Model Context Protocol (MCP) JDK and MCP annotations from snapshot versions to stable releases, improving stability and compatibility 4cfe9fa
π© Build Updates
- Updated build configuration to require exact Java 21 version for the 1.1.x release branch, ensuring consistent build environment d563007
π Security
- Overrode protobuf-java version in milvus-store dependency to address security vulnerability CVE-2024-7254 65b6c7d
π Contributors
Thanks to all contributors who made this release possible:
Spring AI 1.1.1
Spring AI 1.1.1 Release Notes
π― Highlights
This release includes 13 new features, 16 bug fixes, 3 documentation improvements, 11 other improvements.
β New Features
- Added native integration with the official OpenAI Java SDK, providing improved type safety and API coverage for OpenAI model interactions. e56b344
- ChatClient now supports native structured output, enabling more reliable and type-safe extraction of structured data from model responses. 3c3c3eb
- Integrated Claude Skills API with support for the Files API, enabling file-based interactions and enhanced Claude model capabilities. b7a36bb
- Backported Skills API support fixes to the 1.1.x maintenance branch for improved stability and consistency across versions. a1f32d1
- Added support for ISNULL and ISNOTNULL filter expressions in vector store queries, enabling null value checks in filter operations. 8e9ad36
- Introduced ThinkingLevel configuration support in ThinkingConfig to provide more control over reasoning and thinking processes. 7e6da6e
- Enhanced Vertex Gemini integration to include safety ratings in response metadata, providing visibility into content safety assessments. f4eb375
- The ToolCallAdvisor now supports extensibility through hook methods, allowing developers to customize tool call behavior in their applications 2c8c4e7
- GemFire Vector Store now supports username and password authentication for secure connections 21db782
- Added support for thought signatures in Google GenAI's Gemini 3 Pro model when using function calling capabilities 9bdf182
- Added support for the latest Claude 4.5 models including Opus and Haiku variants with updated documentation 2c7b10e
- Added prompt_tokens_details support and updated default chat options for ZhipuAI integration tests a66e243
- Introduces a new Spring Boot starter that provides auto-configuration for using Azure Cosmos DB as a chat memory repository, simplifying the setup for persisting conversation history in Spring AI applications. ef8f413
πͺ² Bug Fixes
- Enhanced error handling for JSON parsing failures in MethodToolCallback, providing better diagnostics and recovery. d4f22ce
- Fixed tool execution exception handling in MethodToolCallback for improved error reporting and stability. b0a97c7
- Changed toolCallingManager visibility to protected, enabling proper extensibility for custom implementations. 4585acd
- Corrected TokenTextSplitter behavior when handling punctuation marks to ensure proper text segmentation. 8cc4ea4
- Resolved issue where the extraBody parameter was not being properly included in OpenAI API requests, ensuring custom request bodies are sent correctly. 0646d1e
- Fixed MariaDBSchemaValidator to correctly handle escaped spaces and eliminate misleading error messages during schema validation. f0268c0
- Resolved GraalVM native image compilation issues when using Java 22, improving compatibility and build success. 2cb1daa
- Fixed missing auto-configuration for OCI GenAI Inference client to ensure proper initialization 808dd7e
- Resolved missing auto-configuration classes to ensure all components are properly registered 3cc3a79
- Corrected issue where OpenAI gpt-oss models running on Amazon Bedrock returned null responses 88e03cd
- OpenSearch vector store now omits explicit IDs when manageDocumentIds=false, improving AWS Serverless compatibility with additional unit and integration tests 3618524
- Resolved issues in OpenSearch vector store integration tests 0f0f33e
- MCP client auto-configuration now supports optional handlers registry configuration #4920
- ClientMcp handlers registry now properly handles beans with unresolvable types #4918
- Fixed MongoDB vector store index creation to work across different Spring Data MongoDB versions 0821f48
- Enhanced retry logic for Oracle Vector Store integration test container startup 9950cf7
π Documentation
- Updated broken documentation link for Redis search queries to point to current documentation 1fa0e07
- Corrected typo in code comments for DefaultChatClientUtils a56380b
- Corrected documentation typo for HNSW (Hierarchical Navigable Small World) algorithm f476626
π¨ Dependency Upgrades
- Updated Apache Commons Lang to 3.18.0 to address CVE (Uncontrolled Recursion vulnerability). af6496a
- Updated Apache Commons Compress to 1.28.0 to fix CVEs (Infinite Loop and Resource Allocation vulnerabilities). 82424f8
- Updated Spring Boot dependency to version 3.5.8, bringing latest bug fixes and improvements from the Spring Boot framework. 2c854d3
- Updated io.swagger.core.v3:swagger-annotations from 2.2.30 to 2.2.38 1119293
- Updated MCP library dependencies to latest versions 5fcc557
π© Build Updates
- Cleaned up obsolete CI workflow configuration to streamline build and deployment processes. e08a614
- Updated Kotlin compiler version to ensure compatibility with JDK 25, enabling builds on the latest Java development kit. 62b3290
- Updated copyright information in test files to reflect current year and authorship. a7e3752
- Updated CI workflow configuration for the 1.1.x branch 0d89fb9
- Updated project version to 1.1.1-SNAPSHOT for ongoing development. 9970432
π Security
- Applied security patches by upgrading commons-lang3 to 3.18.0 (CVE: Uncontrolled Recursion) and commons-compress to 1.28.0 (CVEs: Infinite Loop, Resource Allocation). af6496a
π Contributors
Thanks to all the community contributors who made this release possible:
Spring AI 1.1.0
Spring AI 1.1.0 GA Release Notes
π― Highlights
This release includes 1 new features, 10 bug fixes, 3 documentation improvements, 3 other improvements.
β New Features
- Enhanced ChatCompletionRequest to support dynamic field deserialization using @JsonAnySetter annotation for extraBody properties 3fc939a
πͺ² Bug Fixes
- Resolved an issue where MongoChatMemoryIndexCreator component was not being properly scanned during Spring application context initialization faf3808
- Added validation for inputSchema in Model Context Protocol (MCP) tool definitions to ensure proper tool configuration #4855 via #4776
- Improved error handling for malformed responses from the OpenAI API to prevent unexpected failures c0cc32c
- Changed PgVectorSchemaValidator class visibility to package-private to properly encapsulate internal implementation details #4857
- Refactored StatelessToolCallbackConverterAutoConfiguration and ToolCallbackConverterAutoConfiguration for better code organization #4858
- Corrected Maven dependency configuration for the MongoDB chat memory repository integration 374c09e
- Fixed inconsistent conditional property configuration for ElevenLabs auto-configuration to follow Spring AI standards d71869e
- Resolved Java bytecode access issue related to invokespecial instruction 9cec4d7
- Refactored ToolCallbackProvider dependency injection to use Spring's ObjectProvider for better flexibility and optional dependency handling e4926e5
- Cleaned up excessive debug logging statements in AnthropicChatModel implementation #4847
π Documentation
- Improved documentation for the audio transcription API with clearer examples and usage guidance f167df8
- Corrected broken hyperlink in the Model Context Protocol (MCP) overview documentation page b6ccb03
- Updated UserMessage code examples in documentation to properly demonstrate builder pattern usage 68adc26
π¨ Dependency Upgrades
- Updated Model Context Protocol (MCP) integration to version 0.16.0 #4860
π© Build Updates
- Disabled parallel Maven builds in the fast CI pipeline to resolve intermittent Kotlin compiler errors and improve build stability f6fa47c
- Updated fast CI workflow to properly run unit tests and generate documentation after tests pass eb0e101
π Contributors
Thanks to all contributors who made this release possible:
Spring AI 1.1.0-RC1
Spring AI 1.1.0-RC1 Release Notes
π― Highlights
This release includes 10 new features, 8 bug fixes, 10 documentation improvements, 12 other improvements.
βͺ Breaking Changes
- OpenAI TTS implementation migrated to shared TextToSpeechModel interface with standardized Double type for speed parameter instead of String 2b195b3
- Removed deprecated APIs in preparation for the 1.1.0 release. Applications using deprecated methods will need to migrate to the newer alternatives. c631340
β οΈ Upgrading Notes
- 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
- 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
β New Features
- Added support for extraBody and reasoningContent in OpenAI API, enabling advanced model configuration and reasoning chain access ec717c1
- Added promptCacheKey and safetyIdentifier support for improved caching and safety management 347378a
- Automatic retry configuration for network exceptions to improve resilience in distributed environments c03a485
- Event-driven tool callback caching for Model Context Protocol integration improves performance and reduces redundant operations 5783104
- Refactored Model Context Protocol client annotation handling with unified handler registries for improved maintainability 2a2f155
- Added MongoDB repository implementation for chat memory persistence, enabling conversation history storage in MongoDB databases. 80527b2
- Added thinking mode support for Ollama reasoning models, enabling enhanced reasoning capabilities for compatible models. 0b8293e
- Added and updated tests for OpenAI reasoning_effort parameter, enhancing control over reasoning model behavior. e157775
- Enhanced BeanOutputConverter to support removing thinking tags from input text, improving structured output parsing d1aa8d4
πͺ² Bug Fixes
- Fixed OllamaApiIT#streamingChat integration test 47e4232
- Resolved configuration injection issue where VertexAiEmbeddingConnectionDetails was not properly injected when using the Vertex AI embedding starter 9de3592
- Improved embedding dimension handling by implementing lazy loading for unknown dimensions and caching results for better performance a8b3982
- Corrected the configuration property prefix in OpenAI Text-to-Speech documentation 992a02f
- Resolved authentication issues with the Chroma vector database API 0abfedf
- Enhanced error logging to include exception details when tool execution fails, improving debugging capabilities c5ce4be
- Updated MCP integration tests to properly include McpServerObjectMapperAutoConfiguration 7529a21
- Improved MCP server configuration by simplifying ObjectMapper dependency injection 6d9b8e6
π Documentation
- Documented reasoning content support for Ollama via OpenAI compatibility mode e673935
- Added documentation for extraBody, reasoningContent, promptCacheKey, and safetyIdentifier features 347378a
- Added Text-to-Speech migration guide for 1.1.0-RC1 release a8d2208
- Added documentation for configuring Model Context Protocol (MCP) with STDIO on Windows systems e464266
- Corrected Javadoc documentation for ZhiPuAiImageApi cb6afde
- Improved advisor documentation and type usage for better clarity and consistency 266401e
- Corrected formatting issues in Pinecone vector database documentation 690f400
- Corrected the MCP Java SDK URL in documentation #4795
- Corrected example configuration for MCP server properties fb66626
- Corrected various typos throughout the documentation 6e74b00
π¨ Dependency Upgrades
- Updated AWS Bedrock Runtime and AWS SDK dependencies to version 2.36.3 #4806
β‘ Performance
- Event-driven caching mechanism for MCP tool callbacks reduces redundant operations and improves response times 5783104
π© Build Updates
- Introduced new fast-continuous-integration workflow with parallel build execution, replacing the legacy continuous-integration workflow for faster PR validation. 7112eeb
- Multiple improvements to the fast-continuous-integration workflow including YAML syntax fixes, scheduled trigger enablement, and parallel execution support for rapid PR merges. e928ca9
- Updated Maven build configuration to run format:apply during local development and format:check in CI pipelines fb523c8
- Enhanced test coverage for MCP server ObjectMapper auto-configuration 9b0eaf2
- Improved test structure by consolidating AutoConfiguration tests to use a centralized SpringAiTestAutoConfigurations approach 4532f64
- Temporarily disabled unstable integration test for OpenAI chat model stream web search annotations 355b883
- Corrected the description in the GitHub Actions workflow for Maven publishing bd1834d
- Prevented the spring-ai-integration-tests artifact from being published to Maven Central 531a695
π Contributors
Thanks to all contributors who made this release possible:
- Alexandros Pappas (@apappascs)
- Christian Tzolov (@tzolov)
- Daniel Garnier-Moiroux (@Kehrlann)
- Eric Bottard (@ericbottard)
- guanxu (@guanxuc)
- Ilayaperumal Gopinathan (@ilayaperumalg)
- Issam El-atif (@ielatif)
- James Ward (@jamesward)
- liugddx (@liugddx)
- Mark Pollack (@markpollack)
- Martin Kamp Jensen (@mkjensen)
- Nguyen Tran (Mark) (@nguyen.trantrung)
- Philip I. Thomas (@philipithomas)
- Senrey_Song (@SenreySong)
- Thorben Janssen (@thjanssen)
- Tran Ngoc Nhan (@ngocnhan-tran1996)
- [vdm24 (@vdm24)](https:...
Spring AI 1.1.0-M4
Spring AI 1.1.0-M4 Release Notes
π― Highlights
This release includes 27 new features, 35 bug fixes, 15 documentation improvements, 41 other improvements.
β οΈ Upgrading Notes
- Migrate from the deprecated public constructor to the builder pattern when creating QuestionAnswerAdvisor instances adf4efe
π’ Noteworthy
- Two commits related to MCP ObjectMapper factory and JSON schema upgrade were reverted to maintain stability. 132d50b
- Updated OpenAI moderation integration from deprecated text-moderation-latest to the new omni-moderation-latest model, including integration test updates #4722
- Updated Anthropic integration tests to remove usage of deprecated model versions 9e78796
- The public constructor of QuestionAnswerAdvisor is now deprecated in favor of using the builder pattern for improved API design adf4efe
β New Features
- Advisors now support configurable observations, providing better control over observability behavior in AI workflows. 3cf3db1
- Chat client now logs completion data and makes response text available in the Observation Context for improved monitoring and debugging. 13de219
- Added support for Oracle JDBC in ChatMemoryRepository, enabling Oracle database backends for conversation memory storage 30af4e8
- 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
- Introduced H2ChatMemoryRepositoryDialect to enable H2 database support for JDBC-based chat memory storage. 0b0024e
- Added Oracle and SQLite database dialect support for JDBC chat memory, expanding database compatibility options. 673f483
- Expanded OpenAI integration to support more transcription and text-to-speech (TTS) models, providing greater flexibility for audio processing. bdb7ea5
- Enhanced TextSplitter functionality to preserve document properties and track metadata through text splitting operations, improving RAG pipeline capabilities. b452e89
- Added support for Anthropic's Citations API, enabling retrieval of source citations in model responses e91eda9
- Added support for Mistral AI's codestral embedding model for code-focused embedding generation ea48e17
- Added usage field to ChatCompletionChunk for ZhipuAI to track token consumption during streaming operations d619727
- Added additional timeout configuration options for AWS Bedrock to provide more granular control over request timeouts 34fc691
- Added User-Agent header with 'spring-ai' value to OpenAI API client for better request identification and tracking 62fc70f
- Enables prompt caching functionality for AWS Bedrock Converse API to improve performance and reduce costs by caching frequently used prompts. 58cf35e
- Adds approximate k-nearest neighbor search capabilities to the OpenSearch vector store integration for improved query performance on large datasets. 5df83cb
- Introduces new testing utilities to simplify Spring AI test configuration and improve developer experience when writing tests. 8b9f730
- Introduced a unified request context API for Model Context Protocol (MCP) integration with enhanced documentation 3e6084c
- Added Builder class to FactCheckingEvaluator for more convenient and flexible configuration #4652
- Added tool choice capability for Anthropic chat model allowing better control over function calling behavior #4637
- Applications can now provide custom RouterFunction implementations for enhanced routing control b99f26d
- Enhanced MimeTypeDetector to handle URLs with query parameters and added comprehensive edge case validation tests 3f79373
- Added STErrorListener bridge to SLF4J for improved error logging and diagnostics 940bcf3
- Enhanced filter expression parsing to support long integer values, expanding query capabilities in vector store operations 107ab68
- Introduces builder pattern support for ToolResponseMessage, improving API usability and message construction 2ded9cd
- Added builder pattern support for ZhiPuAiAssistantMessage class with corresponding unit tests for improved API usability 01082b8
- Added builder pattern support for DeepSeekAssistantMessage class with corresponding unit tests for improved API usability 7d0aff0
- Added support for OpenAI's File API, enabling file uploads and management capabilities for OpenAI models 087393b
πͺ² Bug Fixes
- Resolved integration test failures in the Elasticsearch module. a572009
- Corrected broken documentation link in Google GenAI integration guide bb91c5f
- Resolved issues with streaming responses in Azure OpenAI chat model integration 50db344
- Corrected message ordering issues affecting MySQL and MariaDB databases in JDBC-based chat memory storage d2492a6
- Fixed issue where MCP tool callback providers were incorrectly injected into the tool callback resolver febf86c
- Updated and improved the FactCheckingEvaluator for better accuracy and reliability in fact-checking operations. e81cd08
- Corrects the SYSTEM_ONLY cache strategy implementation to properly handle caching behavior without explicit configuration requirements. 38ea4ff
- Resolves multiple streaming issues including correct finish reason handling when stop reason is not tool_use, proper finish reason population for non-tool_use cases, and ensures multiple tool calls are correctly output in ChatResponse. a897177
- Updates the CONVERSATION_HISTORY cache strategy to follow Anthropic's recommended incremental caching pattern for optimal performance. 8327c0f
- Fixed auto-configuration to properly scan for @McpToolListChanged and related MCP annotations 0fdb911
- Fixed exception handling in DeepSeekStreamFunctionCallingHelper when toolCalls() returns an empty list instead of null, correcting a flawed ternary expression 68d176f via #4586
- Fixed handling of candidates containing both text and tool calls in VertexAiGeminiChatModel [8e8654e](h...