Spring AI 2.0:Java AI 开发的分水岭

25 阅读1分钟

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 中 ChatClientChatModel 混用,边界模糊。2.0 明确划界:业务开发统一使用 ChatClientChatModel 仅面向框架开发者做底层集成。工具调用、重试、记忆管理全部收敛到 ChatClient 的 Advisor 链中。

工具调用提升为 Advisor 一等公民

1.x 的工具调用循环埋在各自 ChatModel 内部,无法观测和扩展。2.0 将工具循环提升为 Advisor 链中的可组合组件,ToolCallingAdvisor 自动注册,管理完整的工具执行生命周期。定义工具只需 @Tool 注解:

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 次,无需开发者编写任何解析或重试逻辑。

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 的迁移成本。