Releases: spring-projects/spring-ai
Releases · spring-projects/spring-ai
Spring AI 1.1.0-M2
Spring AI 1.1.0-M2 Release Notes
🎯 Highlights
This release includes 16 new features, 12 bug fixes, 6 documentation improvements, 22 other improvements.
⭐ New Features
- Added support for response schema validation in VertexAI Gemini Chat Model for structured output generation 31423e9
- New integration with Mistral AI's OCR (Optical Character Recognition) API for document and image text extraction 0c1a089
- Added comprehensive hardware, memory, performance and execution options for Ollama embedding models eba2cec
- Added Testcontainers service connection support for docker/mcp-gateway to improve testing capabilities 4d0206b
- Added Google GenAI artifact entries to Spring AI Bill of Materials for improved dependency management ae59953
- Added support for thinking and response_format parameters to the ZhipuAI chat model integration, enhancing the model's capabilities and output formatting options cae6364
- Added Docker Compose service connection support for MCP Gateway, improving containerized deployment capabilities 60a27a8
- Added support for new ZhiPu models GLM-4.5 and GLM-Z1 5f984fb
- Added 'enable' property for Bedrock Cohere chat configuration 9442c35
- Added requestMetadata support to Bedrock converse requests for enhanced request tracking 45baa39
- Aligned EmbeddingOptions builder pattern with ChatOptions for consistent API experience 14d6f58
- Added builder pattern support for AssistantMessage creation f4a1c96
- Added support for the new glm-4.1v-thinking-flash model in the ZhipuAI integration 49506de
- Made OpenAI API available as a bean for injection, enabling easier integration and customization f41c27d
- Implemented cache management for Anthropic API with eligibility tracking for improved performance and resource optimization 1d5ab9b
- Added extended token usage metadata and Cached Content API support to Google GenAI (Gemini) for enhanced performance monitoring and content caching capabilities 6cf3b4b
🪲 Bug Fixes
- Fixed issues with stateless Model Context Protocol (MCP) server registration to ensure proper connection handling 1b3705f
- Replaced expired @SpyBean annotation with @MockitoSpyBean for improved testing compatibility #3446
- Prevented out-of-range errors when merging tool calls in the OpenAI integration 6697589
- Optimized EmbeddingUtils.toPrimitive(List) method for better performance d1133dc
- Improved method parameter naming in ChatClient.Builder.defaultAdvisors() for better developer experience #3856
- Fixed handling of default implementation for ToolCallback#call(String,ToolContext) method to improve tool integration reliability 3e17e16
- Fixed Ollama to properly use system role for system messages instead of user role #4364
- Corrected wrong checkstyle automated changes that were improperly applied f3aab2f
- Refactored OllamaChatModel to support custom AbstractMessage implementations and align with other ChatModel implementations 8968df7
- Fixed DeepSeekChatModel initialization to use builder pattern for consistent API design cb4f356
- Improved configuration metadata generation for IDE auto-completion support b5a37b6
- Fixed VertexAI Gemini chat model tool calling integration test for inferred OpenAPI schema streaming 3c57027
📓 Documentation
- Fixed documentation for ChatClient responseEntity() method to provide accurate usage examples and guidance #4386
- Fixed and improved ZhipuAI chat model documentation in zhipuai-chat.adoc #4387
- Updated tests and documentation to use DockerModelRunnerContainer for improved container-based testing guidance c7b7d69
- Improved MCP (Model Context Protocol) documentation and added comprehensive getting started guide 07688d5
- Updated MCP reference documentation with minor improvements and clarifications e776129
- Fixed OCI Cohere documentation property prefix to spring.ai.oci.genai.cohere.chat ce09cb5
🔨 Dependency Upgrades
- Updated Model Context Protocol (MCP) related dependencies to latest versions #4415
- Upgraded Spring Boot framework dependency to version 3.5.6 for latest features and security updates 820cc79
- Updated to Spring Boot 3.5.5 for latest features and security improvements #4408
- Updated Google GenAI dependencies to their latest versions for improved functionality #4398
- Updated MCP from version 0.12.1 to 0.13.0-SNAPSHOT #4403
- Changed HSQLDB dependency scope from runtime to test for chat memory JDBC autoconfiguration #4366
- Updated MCP SDK to version 0.13.1 and mcp-annotations to 0.4.1 for latest features and improvements 0c8b6dc
⚡ Performance
- Optimized performance by using AssistantMessage#builder() pattern instead of direct instantiation, reducing object creation overhead 1decd34
- Refactored request creation logic for Mistral AI chat model to improve efficiency and maintainability f9d87fd
- Simplified assistant message extraction using Optional chaining for cleaner code 356fced
- Optimized ZhiPu Embedding to support batch embedding operations for improved performance b7f231a
🔩 Build Updates
- Separated OllamaOptions into distinct Chat and Embedding Options classes for better modularity f908aa1
- Added comprehensive edge case and boundary testing for Google Generative AI components to improve reliability 63ba02a
- Enhanced MCP tool name prefix generation with automatic duplicate handling for better tool management 31db86d
- Defined explicit version for maven-gpg-plugin to improve build reproducibility #4320
- Added comprehensive test coverage for runtime hints and bindings processors #4402
- Added comprehensive edge case tests for ChatModel, ListOutputConverter, and ToolExecutionResult components to improve code reliability...
Spring AI 1.0.2
Spring AI 1.0.2 Release Notes
🎯 Highlights
This release includes 9 new features, 31 bug fixes, 13 documentation improvements, 4 dependency upgrades, 4 performance improvements, and 15 build updates.
📢 Noteworthy
- Removed deprecated Mistral AI Codestral Mamba model support as part of code cleanup efforts #4225
- Changed UserMessage to use
metadata
property instead ofproperties
for better consistency across the API #3980
⭐ New Features
- Added 'enable' configuration properties for Amazon Bedrock Cohere chat functionality 779b304
- Improved Unicode property union support for better Chinese character handling in text processing 35df129
- Added mutual exclusivity validation between maxTokens and maxCompletionTokens parameters to prevent configuration conflicts 5496a8c
- Added support for GPT-5 models from OpenAI, expanding the available model options for Spring AI applications 977dbf2
- Added comprehensive debugging capabilities to maintenance workflow to improve troubleshooting and monitoring 51086f8
- Added GPT-5 model enum support with updated documentation to enable integration with OpenAI's latest model 9908073
- Implemented fast CI build support for maintenance branch cherry-picks to improve development workflow efficiency 22efc03
- Enables proper JSON schema generation for Kotlin data classes and objects in BeanOutputConverter #3900
- MariaDB Vector Store similarity searches now provide scores for better result ranking 3d72e93
🪲 Bug Fixes
- Fixed tokenizer to properly use Base64 encoding for binary data token estimation c60d942
- Corrected function name in VertexAI Gemini streaming test to resolve test failures 407e4cb
- Resolved issues with default implementation of ToolCallback#call(String,ToolContext) method 76708a1
- Properly handle null or empty tool call arguments during streaming operations 8d0caf4
- Cleaned up incorrect BedrockChatOptions configuration that was causing issues 5ecbfab
- Fixed issue with merging tool calling chat options in AWS Bedrock converse chat model #4314
- Resolved message reordering issues in Azure OpenAI chat model implementation 618c451
- Fixed various integration test failures for Anthropic function calling functionality 3f97d9e
- Corrected stream function call usage test failures in Azure OpenAI integration ec84f2a
- Fixed chat completion stream error handling in Anthropic API integration tests 38afc12
- Replaced SimpleDateFormat with thread-safe DateTimeFormatter to prevent potential concurrency issues 370efa7
- Removed duplicate lines in AzureOpenAiChatOptions configuration class 5477f47
- Resolved a StackOverflowError that was introduced by the MongoDbAtlasLocalContainerConnectionDetails.getSslBundle() method 03d475e
- Corrected NPE that occurred when metadata is null in MilvusVectorStore operations 7437192
- Fixed incorrect handling of merge operations when the 'current' value is null 4daffa3
- Fixed metadata handling in Azure Vector Store to allow proper mutation of metadata objects 2a7321f
- Resolved flaky test that was causing intermittent failures in streaming response aggregation f71f9de
- Corrected handling of empty string values in OpenAI streaming finish_reason field 90a88ec
- Resolved git state detection problems that were triggering full project builds when they weren't needed 779e2f9
- Updated logging output to accurately reflect the actual git strategy being used e8c75e4
- Fixed branch detection to prioritize maintenance branch identification over explicit base_ref 7ad9a16
- Fixed retry mechanism for ResourceAccessException when encountering network connectivity errors to improve application resilience #4094
- Enhanced null safety by using Optional to check null values and prevent NPE occurrences across multiple components #4063 and #4064
- Implemented fail-fast fallback and single-commit git diff strategy to improve error handling and performance 118c0ab
- Maintains consistent pass check behavior for FactCheckingEvaluator and RelevancyEvaluator while preventing null pointer exceptions #3975
- Fixes Azure chat completions by adding support for the strict option in JSON schema response format #3931
- Eliminates unnecessary deserialization step when parsing model responses that are already JSON strings #4003
- Properly rethrows ToolExecutionException for non-RuntimeException cases to maintain correct error propagation #3915
- Tool function exceptions are now wrapped in ToolExecutionException and properly rethrown for better error handling and debugging cc11b01
- Corrected bug in example code that was causing confusion for developers following the documentation #3993
- Fixed issues preventing proper publication of artifacts to Maven Central repository 808f7da
📓 Documentation
- Enhanced Mistral AI javadoc and updated documentation links for better developer experience #4327
- Updated tools.adoc documentation with improved examples and clarifications #4278
- Enhanced docker services documentation with better setup instructions and examples 0649db5
- Added more detailed explanations and examples in observability documentation for better understanding of metrics configuration 6f61562
- Added thorough validation and functionality tests for the Document class to improve code reliability 5c2ab36
- Synchronized documentation improvements for deploy docs dispatcher naming to the 1.0.x branch f11a516
- Added new Anthropic model names to documentation to reflect latest available models and improve developer guidance #4077
- Improved documentation for chat memory functionality with updated examples and usage patterns #3917
- Corrected and updated various outdated information a...
Spring AI 1.1.0-M1
Spring AI Next Release Release Notes
🎯 Highlights
This release includes 47 new features, 106 bug fixes, 70 documentation improvements, 120 other improvements.
⏪ Breaking Changes
- Auto-configuration classes for Model Context Protocol (MCP) have been renamed with 'Mcp' prefix for consistency 21c4283
- maxTokens and maxCompletionTokens parameters are now mutually exclusive in OpenAI ChatOptions, requiring users to choose one option 13c39f1
- Changed UserMessage to use
metadata
instead ofproperties
for better API consistency #3980 - Extracted VectorStoreRetriever interface from VectorStore which may require code updates for custom implementations #3827 via #1290
⚠️ Upgrading Notes
- Update imports for MCP auto-configuration classes that have been renamed with 'Mcp' prefix 21c4283
- When configuring OpenAI ChatOptions, ensure you use either maxTokens or maxCompletionTokens, but not both simultaneously 13c39f1
- Update code to use
metadata
instead ofproperties
when working with UserMessage objects #3980 - Custom VectorStore implementations may need to be updated to implement the new VectorStoreRetriever interface #3827
📢 Noteworthy
- Removed support for the deprecated Mistral AI Codestral Mamba model as part of code cleanup #4225
- Significantly improved test coverage for MistralAiBindingsPropertiesProcessor to ensure robust MistralAI integration #4165
- Improved test coverage for EmbeddingModelObservationContext and SyncMcpToolCallback edge cases to ensure better reliability #4157
- Significantly improved test coverage for QdrantObjectFactory.toObjectMap, SimpleVectorStore filter conditions, and various other components #4095
- Removed hardcoded topK value in BedrockConverseProxyChatProperties for better configuration flexibility #3621
- Refactored MessageAggregator to properly handle and include tool calls in message aggregation df90b9c
- Cleaned up QdrantVectorStoreIT by removing unnecessary environment variable validation #3615
- Temporarily reverted a fix for OpenAI function callback integration test 3bce15a
- Temporarily reverted a parameter order fix in validateToolContextSupport method f0c128c
- Temporarily reverted changes to resolve OpenAI API key for every request due to compatibility issues 313aae0
⭐ New Features
- Tool callbacks now expose the original tool name in both synchronous and asynchronous operations, providing better visibility into tool execution 6678035
- Added support for sending labels with chat requests in Google Generative AI integration 1dd686b
- Added comprehensive annotation-based configuration support for Model Context Protocol (MCP) clients and servers 534c6af
- Added support for OpenAI service_tier parameter in OpenAiChatOptions to enable control over service quality levels ad2e1bc
- Refactored MCP (Model Control Protocol) server auto-configuration to use consolidated modules with protocol-based configuration approach e71da4e
- Added missing Spring Boot starters for Google GenAI integration, enabling easier autoconfiguration 528155a
- Improved Unicode property union handling for robust Chinese character processing 35486e9
- Use latest CI scripts when testing old commits for improved testing reliability a9f93b0
- Restructured MCP server auto-configurations and added streamable-http support for improved streaming capabilities 0b96f4c
- Added support for new GPT-5 models with verbosity parameter configuration #4086
- Added comprehensive debugging capabilities to improve maintenance branch workflow reliability and troubleshooting 3ce6d38
- Added support for fast CI builds when cherry-picking changes to maintenance branches 29ac7d9
- Added autoconfiguration for MCP client with support for async HTTP request customization 7ad7150
- Configured McpSyncServer to use immediate execution when running in a servlet context 568ca96
- Added support for GPT-5 model enum with updated documentation 1a3ed95
- Added KotlinModule support and tests for schema generation in BeanOutputConverter to improve Kotlin integration #3900
- ChatClient now supports adding metadata to both PromptUserSpec and PromptSystemSpec, enabling richer message context and processing capabilities #3989
- Added Google GenAI embedding module with unified SDK support for enhanced integration capabilities 085446c
- Added ability to use custom templates with KeywordMetadataEnricher for enhanced metadata enrichment capabilities c122fe1
- Added new spring-ai-google-genai module using Google's latest GenAI SDK for improved Google AI model integration daf1274
- Added log probabilities support for Vertex AI Gemini models e557081
- Added streamable HTTP transport support for Model Context Protocol (MCP) client 656395e
- Added BedrockChatOptions to Bedrock integration for improved configuration 99e59a2
- Introduces a standardized interface for audio transcription across different model providers 4cf2377
- Enhances ZhiPu AI integration with fluent builder pattern for easier configuration d865c9e
- ZhiPuAI embedding model now supports configurable custom dimensions #3668 via #1857
- Added configuration option for meta field prefix in Weaviate vector store properties #3585
- Improved function capabilities through @tool annotation improvements for better function calling integration 22fc730
- Enhanced MistralChatOptions with updated configuration capabilities a2a92bb
- Added selective exception rethrowing capability to DefaultToolExecutionExceptionProcessor for better error handling control beb1d05
- ChatClient#mutate now creates copies of advisors and advisorParams instead of referencing the originals f391ff2
- Made the content field configurable in Weaviate vector store properties to provide more flexibility in vector store configurat...
Spring AI 1.0.1
Spring AI 1.0.1 Release Notes
🎯 Highlights
This release includes 24 new features, 50 bug fixes, 45 documentation improvements, 32 other improvements.
📢 Noteworthy
- Official release of Spring AI version 1.0.1 with consolidated bug fixes and documentation improvements 53ec007
- Multiple commits were reverted related to tool context validation fixes and OpenAI chat client method invoking function callback integration tests 80ffb4c
- Temporarily reverted the change that resolved OpenAI ApiKey for every request, indicating potential issues that required investigation 8a2706d
⭐ New Features
- Enhanced KeywordMetadataEnricher with custom template functionality to provide more flexible metadata enrichment capabilities 2082a59
- Added validation to check documents for text/media content when adding to vector stores #3687
- Improved @tool annotation functionality to enhance function calling capabilities 62160d3
- Added support for streaming tool calls without parameters in the Anthropic chat model 2099278
- Updated and improved configuration options for Mistral chat model integration c18a241
- Added capability to selectively rethrow exceptions in the default tool execution exception processor d1baefb
- Refactored MessageAggregator to include support for tool calls functionality 1805ca0
- The ChatClient#mutate method now creates copies of advisors and advisorParams instead of sharing references, improving isolation between chat client instances ccfaaf1
- Added equals, hashCode, deep copy functionality and comprehensive tests to MiniMaxChatOptions for better object handling and comparison dc9ea17
- Added support for new Mistral AI chat models to expand the available model providers #3523
- Enhanced OllamaChatModel with retry template integration for improved reliability f89530c
- Added streaming thinking events support for Anthropic model provider to enhance real-time interaction capabilities 379901b
- Enhanced OpenAI integration with updated supported voice enumerations for text-to-speech and chat completion audio features #3411
- Added support for dynamic API key configuration for Anthropic model provider on a per-request basis ae9284c
- Neo4j vector store now automatically determines default embedding dimensions based on the configured model 96c45c7
- Added Spring Framework 7.x compatibility to RetryUtils#ResponseErrorHandler to support upcoming Spring Framework versions 5ecfcce
- Enhanced OpenAI client to resolve API key for every request, improving key rotation and configuration flexibility dd6c0a9
- Introduced support for Anthropic's latest Claude models including claude-opus-4 and claude-sonnet-4 #3351
- Extended OpenAI integration to support PDF files as media input a330458
- Provided MySQL database schema for SPRING_AI_CHAT_MEMORY table to support chat memory functionality 148bf33
- Improved handling and testing of complex metadata values in Chroma vector store integration aba837a
- Added metadata support for vector store types to enhance data management capabilities #3325
- Added support for configurable exception handling when executing tools, providing better error management and recovery options 3068c04
- Added comprehensive integration tests for Chat Memory functionality with SQL Server support a6858cf
🪲 Bug Fixes
- Resolved issue where method tool calls would throw errors when methods had the same name #2774
- Fixed typo in frequencyPenalty property name for Google model builders 2e579b1
- Corrected spelling of PromptTemplate in structured output API documentation image #3304
- Resolved null pointer exception in Anthropic API streaming functionality #3755
- Fixed issue where SystemPromptTemplate.builder() incorrectly returned PromptTemplate builder 2f91adb
- Corrected parameter sequence in JSON schema generation functionality f20eeea
- Resolved annotation packaging issues #3716
- Resolved issue where audio filenames were lost when requesting OpenAI
/transcriptions
and/translations
interfaces c0c7f3a - Enhanced schema initialization logic and updated deprecated code for Milvus vector store #3705
- Added null checks, optimized string joining, and improved JavaDocs #3663
- Corrected assertion message in SimpleApiKey implementation for better debugging #3656
- Prevented streaming tool calling responses when internal execution is enabled for Anthropic models 5d8a930
- Cleaned up unused configuration options from ZhiPu AI model implementation #3669
- Added support for custom dimensions in ZhiPu AI embedding models #3668
- Removed incorrect @nullable annotation from VectorStore similaritySearch methods #3613
- Added validation for invalid page numbers in outline items for getTextBetweenParagraphs method 50e8615
- Corrected issues with Ollama autoconfiguration that were preventing proper setup #3645
- Fixed naming inconsistencies throughout the Mistral integration package #3652
- Resolved issue where streaming tool calls without input arguments would fail in Bedrock integration d1dac6c
- Fixed hardcoded configuration parameter to allow proper customization of topK values in Bedrock Converse Proxy #3621
- Prevents incorrect ToolCall merging in DeepSeek model provider when tool calls have empty id and name strings ff5855d
- Resolves test failure in ChromaVectorStoreAutoConfigurationIT due to updated exception message handling 7200580
- Resolved exception occurring in OpenAiAudioTranscriptionResponseMetadata.toString method #3575
- Corrected infinite recursion issue in getMimeType(Path) method b6b069c
- Improved root exception handling in McpToolCallback to prevent unhandled errors fb1746b
- Corrected logging behavior when creating ChromaDB collections [e0d3703](https://github.com/spring-projects/spring-...