Spring AI 2.0:Java AI 开发的分水岭
Spring AI 2.0.0 GA 已于 2026 年 6 月正式发布,基于 Spring Boot 4.1 和 Spring Framework 7.0 构建。从 1.0 GA 到 2.0 GA 仅一年时间,但 API 经历了一次彻底的架构重构。
ChatClient 成为唯一入口
1.x 中 ChatClient 与 ChatModel 混用,边界模糊。2.0 明确划界:业务开发统一使用 ChatClient,ChatModel 仅面向框架开发者做底层集成。工具调用、重试、记忆管理全部收敛到 ChatClient 的 Advisor 链中。
工具调用提升为 Advisor 一等公民
1.x 的工具调用循环埋在各自 ChatModel 内部,无法观测和扩展。2.0 将工具循环提升为 Advisor 链中的可组合组件,ToolCallingAdvisor 自动注册,管理完整的工具执行生命周期。定义工具只需 @Tool 注解:
java
class WeatherTools {
@Tool(description = "获取指定城市的当前天气")
public String getWeather(String city) {
return weatherService.fetch(city);
}
}
String response = ChatClient.create(chatModel)
.prompt("阿姆斯特丹天气如何?")
.tools(new WeatherTools())
.call()
.content();
官方测试表明,新架构在 OpenAI、Anthropic 和 Gemini 上实现了 34%--64% 的 Token 消耗降低。
自纠错结构化输出
entity() 接口新增 validateSchema() 开关。当模型返回的 JSON 不符合目标 Schema 时,校验错误会自动回传给模型重新生成,默认重试 3 次,无需开发者编写任何解析或重试逻辑。
java
ActorsFilms films = chatClient.prompt()
.user("生成一位随机演员的电影作品列表")
.call()
.entity(ActorsFilms.class, spec -> spec.validateSchema());
底层全面升级
2.0 强制要求 Java 21 ,最低 Spring Boot 4.0;Jackson 2 升级至 Jackson 3;全面引入 JSpecify 空安全注解,在编译期校验 API 层面的空指针风险。
对于新项目,直接上 2.0 是最优选择;老项目则需先评估 Spring Boot 3.x → 4.x 的迁移成本。