Skip to content

Releases: spring-projects/spring-ai

Spring AI 2.0.0-M4

26 Mar 15:08

Choose a tag to compare

Spring AI 2.0.0-M4 Pre-release
Pre-release

Spring AI 2.0.0-M4 Release Notes

🎯 Highlights

This release includes 2 new features, 10 bug fixes, 13 other improvements.

⚠️ Upgrading Notes

  • If you are using Vertex AI, OCI GenAI, or ZhiPu AI integrations, begin planning migration to alternative model providers such as OpenAI, Azure OpenAI, Anthropic, or other supported providers. These deprecated integrations will be removed in a future major release. #5676

πŸ“’ Noteworthy

  • The Vertex AI model integration classes have been deprecated and will be removed in a future release. Users should plan to migrate to alternative model providers. #5676
  • The ZhiPu AI model integration classes have been deprecated and will be removed in a future release. Users should plan to migrate to alternative model providers. #5676
  • The OCI GenAI model integration classes have been deprecated and will be removed in a future release. Users should plan to migrate to alternative model providers. #5676

⭐ New Features

  • Added capability to use Google Search alongside custom tools in Gemini 3.x models, enhancing the search and tool integration capabilities. #5669
  • Added support for dynamically disabling native structured output functionality, providing more flexibility in output handling. 019267f

πŸͺ² Bug Fixes

  • Resolved issue where extraBody configuration was being lost when toolDefinitions were specified in API requests. e65d5de
  • Corrected regression in AzureOpenAiChatOptions where the stop field initializer was not working properly. 6e8e5fe
  • Corrected handling of string values for TAG and TEXT filter values in Redis vector store filter expression converter. 32c79b0
  • Resolved key handling issues in Neo4j vector store filter expression converter. d97da30
  • Corrected identifier parsing logic in the filter expression text parser to handle edge cases properly. ccc29d1
  • Enhanced the reliability of media fetching operations in the Bedrock proxy chat model implementation. 75e2bd7
  • Updated and fixed prompt caching tests to work correctly with the Claude Haiku 4.5 model on Bedrock. #5648
  • Corrected the API key header configuration when using the OpenAI SDK with Azure OpenAI deployments. 0b142aa
  • Fixed collection field initialization in super-builders to use null defaults instead of empty collections, preventing unintended behavior #5619
  • Improved type safety in HeaderUtils by adding explicit type parameters to collection operations a20203a

πŸ”¨ Dependency Upgrades

  • Updated Google Generative AI SDK dependency to version 1.44.0, bringing latest features and improvements. #5669
  • Upgraded OpenAI SDK dependency to version 4.28.0 for latest OpenAI API features and fixes. 0ad60de
  • Upgraded the Anthropic SDK dependency to version 2.17.0 for latest features and improvements #5621

πŸ”© Build Updates

  • Improved stability and reliability of Oracle and PgVector vector store integration tests. 490a369
  • Resolved flakiness in Bedrock converse integration test assertions for more reliable test execution. 3c38bb4
  • Corrected issues in Google GenAI auto-configuration test suite. 1560afc
  • Resolved issues in Mistral AI integration test suite for improved test reliability. aac56ee
  • Improved internal implementation of filter evaluation logic in SimpleVectorStore for better maintainability. ba9220b
  • Improved Maven dependency management by adding missing test scope for json-unit-assertj and leveraging Maven transitivity for test dependencies. 86911c4

πŸ™ Contributors

Thanks to all contributors who made this release possible:

Spring AI 1.1.4

26 Mar 13:49

Choose a tag to compare

Spring AI 1.1.4 Release Notes

🎯 Highlights

This release includes 1 new feature, 11 bug fixes, 1 other improvement.

⭐ New Features

  • Added capability to dynamically disable Structured Output Native functionality at runtime, providing more flexibility in configuration and usage scenarios. 45a1607

πŸͺ² Bug Fixes

  • Resolved issues with Oracle and PgVector vector store integration tests to improve test reliability 56fa3ee
  • Corrected issue where extraBody parameter was being lost when toolDefinitions were provided in chat requests d886961
  • Improved stability of Bedrock converse integration tests by addressing flaky test scenarios fac5647
  • Updated Google GenAI embedding model to use current API and fixed flaky function call tests 6c82800
  • Resolved issues in Google GenAI text embedding model observation integration tests 650a343
  • Enhanced error handling and reliability when fetching media resources in Bedrock proxy chat model a7d3223
  • Improved filter evaluation logic in SimpleVectorStore for better performance and maintainability 04742fb
  • Resolved issue where multi-block system messages were not being properly cached in Anthropic prompt caching implementation 11bd45e
  • Corrected handling of string values for TAG and TEXT filter types in Redis filter expression converter 707e990
  • Improved key handling in Neo4j vector store filter expression converter for more accurate filtering 3a46c7d
  • Resolved issues with identifier parsing logic in FilterExpressionTextParser to ensure correct filter expression handling. 7275cba

πŸ”© Build Updates

  • Corrected issues in the documentation upload GitHub Actions workflow to ensure proper documentation deployment. f4984b5

πŸ™ Contributors

Thanks to all contributors who made this release possible:

Spring AI 1.0.5

26 Mar 13:38

Choose a tag to compare

Spring AI 1.0.5 Release Notes

🎯 Highlights

This release includes 8 bug fixes, 1 other improvement.

πŸͺ² Bug Fixes

  • Resolved an issue where the finishReason was not being properly propagated during streaming operations with AWS Bedrock Converse API 9a56ae0
  • Corrected integration test failures for Oracle and PostgreSQL vector store implementations d7a0edd
  • Resolved integration test issues for Ollama model provider 6afaac7
  • Corrected string value handling for TAG/TEXT filter values in Redis vector store filter expression converter 6c99d54
  • Resolved key handling issues in Neo4j vector store filter expression converter c429744
  • Corrected identifier parsing logic in the filter expression text parser for improved query handling 535b7f8
  • Enhanced error handling and reliability when fetching media content in AWS Bedrock proxy chat model 9561b4c
  • Improved filter evaluation logic in SimpleVectorStore for better performance and maintainability 92c5024

πŸ”© Build Updates

  • Added automated workflow for publishing releases to Maven Central via GitHub Actions aed79b0

πŸ™ Contributors

Thanks to all contributors who made this release possible:

Spring AI 2.0.0-M3

17 Mar 10:35

Choose a tag to compare

Spring AI 2.0.0-M3 Pre-release
Pre-release

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 to disableInternalConversationHistory() as the preferred API 9893de6
  • The OpenAiChatModel#internalCall method 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#getOptions non-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.
  • McpAsyncClientCustomizer and McpSyncClientCustomizer have been removed and replaced by a single generic interface McpClientCustomizer<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.jackson package) instead of Jackson 2 (com.fasterxml.jackson package) 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 ToolContext Migration Instructions
  • Builders exposed to users no longer require explicit generics, simplifying the API surface. This affects MiniMaxChatOptions and 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 RestClient to the official Anthropic Java SDK. The public API should remain compatible, but custom configurations may need adjustment.
  • The disableMemory() method has been renamed to disableInternalConversationHistory() for better clarity about its purpose 657252a. Replace calls to disableMemory() with disableInternalConversationHistory(). A deprecated shim is provided for backward compatibility.
  • Huggingface model and autoconfiguration have been moved out of the main Spring AI repository f21b082
  • DeepSeekChatOptions has 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()
  • BedrockChatOptions has 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. #5550
  • MistralAiChatOptions now uses builder pattern for configuration, replacing direct constructor/setter usage #5551. Update code using MistralAiChatOptions to use the new builder pattern instead of constructors or setters.
  • AzureOpenAiChatOptions now uses builder pattern for configuration, replacing direct constructor/setter usage #5544. Update code using AzureOpenAiChatOptions to use the new builder pattern instead of constructors or setters.
  • AnthropicChatOptions now uses builder pattern for configuration, replacing direct constructor/setter usage #5541. Update code using AnthropicChatOptions to use the new builder pattern instead of constructors or setters.
  • Refactored ChatOptions builders to introduce builder merging pattern, which may affect custom implementations extending ChatOptions builders 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 the OllamaChatOptions implementation.
  • 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#getOptions method 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...
Read more

Spring AI 1.1.3 Release

17 Mar 10:35

Choose a tag to compare

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...
Read more

Spring AI 1.0.4

17 Mar 10:34

Choose a tag to compare

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

23 Jan 12:39

Choose a tag to compare

Spring AI 2.0.0-M2 Pre-release
Pre-release

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...
Read more

Spring AI 2.0.0-M1

11 Dec 21:52

Choose a tag to compare

Spring AI 2.0.0-M1 Pre-release
Pre-release

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, and metadata fields 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 ...
Read more

Spring AI 1.1.2 - Bug Fixes

09 Dec 09:17

Choose a tag to compare

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

05 Dec 10:11

Choose a tag to compare

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:

Read more