Spring AI 2.0.0-M2 Available Now

Releases | Mark Pollack | January 23, 2026 | ...

On behalf of the Spring AI team, I'm happy to announce that Spring AI 2.0.0-M2 is now available from Maven Central.

Release Summary

This release includes 94 changes: 36 improvements, 16 bug fixes, 38 documentation updates, and 4 dependency upgrades.

Thanks to all contributors.

Null Safety

Spring AI 2.0 will join the Spring Portfolio effort to provide a null-safe API, as documented in this original blog post. What this means is that the whole Spring AI codebase needs to be reviewed and converted to JSpecify, which is no small endeavor!

The benefits are a better documented API but also one we can trust because thanks to JSpecify and NullAway, all of this is now enforced at compile time. Moreover, for Kotlin users, this translates to true nullable and non-nullable types in the Kotlin language.

Work has started to achieve full coverage by 2.0 GA, and M2 already delivers annotated packages for all of the core Spring AI APIs, memory implementations, document readers and all vector stores!

There could be changes in the near future as we discover real usage of APIs by each vendor implementation, but we appreciate the community understanding that this is an ongoing effort. This also means that future contributions will not only benefit from this, but should also properly consider marking code for null safety. Please refer to this user guide to get started.

Functional Areas

  • Model Context Protocol SDK - Updated to MCP SDK 0.17.2 with new Mcp*ServerCustomizer interfaces for configuration customization. Fixed auto-configuration for non-web application contexts.
  • Vector Store Integrations - Added Amazon S3, Infinispan, and Amazon Bedrock Knowledge Base as vector store backends.
  • Redis Semantic Cache - Added Redis-based semantic cache advisor for caching semantically similar queries. SemanticCache interface relocated to generic package.
  • Mistral AI Structured Outputs - Native JSON schema validation support for type-safe responses.
  • Ollama Structured Output Support - OllamaChatOptions now implements StructuredOutputChatOptions with configurable dimensions parameter for embedding models.
  • Tool Calling - Dynamic tool schema enhancement for runtime modification of argument definitions. Added conversationHistoryEnabled option to ToolCallAdvisor.

What's Next

Work continues toward 2.0.0 GA. Follow progress on GitHub.

Resources

Project Page | GitHub | Issues | Documentation | Stack Overflow

🙏 Contributors

Thanks to all the community contributors who made this release possible:

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all