Spring AI 2.0 GA 倒计时:先别急,来看看 Java AI 框架的另一条路
同一个目标,不同的路线
Spring AI 和 Solon AI 都在解决同一个问题:让 Java 开发者能够以工程化的方式接入和使用 AI 能力。但两者的路线截然不同。
Spring AI 2.0 的定位是 "Spring 生态的 AI 层"。它建立在 Spring Boot 4.0 + Spring Framework 7.0 的基线之上,深度融入 Spring 的 IoC、自动配置、可观测性体系。如果你已经是 Spring 生态的重度用户,这是最自然的选择。
Solon AI 的定位是 "框架无关的 AI 全栈"。它从 Java 8 到 Java 25 全覆盖,不绑定任何特定框架,可以嵌入 Solon、Spring Boot,甚至纯 Java SE 项目。更重要的是,它不仅提供了 LLM 调用层,还构建了一套完整的 Agent 体系、RAG 管道、多 Agent 协作协议和智能体运行时引擎。
用一个比喻来说:Spring AI 像是一家豪华酒店的全套客房服务,你在里面住着很舒服;Solon AI 则像是一辆功能齐全的房车,你可以把它开到任何地方。
二、核心能力逐项对比
2.1 总览对比
先看一张全景对比表:
| 维度 | Spring AI 2.0 | Solon AI |
|---|---|---|
| 当前版本 | 2.0.0-M6(GA: 2026-05-28) | v3.10.6(2026-05-13) |
| Java 版本 | 21+ | 8 ~ 25 |
| 框架依赖 | 强依赖 Spring Boot 4.0 | 框架无关(可嵌入任意框架) |
| LLM 调用 | ChatClient + ChatModel | ChatModel(统一接口+多方言) |
| Tool Calling | @Tool + ToolCallback | @ToolMapping + MethodToolProvider |
| Agent 体系 | 无原生 Agent(依赖 Advisor) | 三级原生 Agent |
| Multi-Agent | 无原生,需 Spring AI Alibaba | 7 种 MAS 协作协议(含 A2A) |
| MCP | Client + Server + Auto-Config | Client + Server + Proxy + Remote Skills |
| ACP/A2A | 支持 | 支持 |
| Harness 运行时 | 无 | 完整智能体运行时引擎 |
| 可观测性 | Micrometer 原生 | 基础日志 |
| 模型后端 | 20+ | 多方言适配 |
| 语义缓存 | Redis 语义缓存 | 未明确 |
接下来,我们挑几个核心能力做代码级对比。
2.2 LLM 调用方式对比
Spring AI 2.0:ChatClient 流式 API
// Spring AI 2.0 - ChatClient 调用示例
ChatModel chatModel = ... // 通过自动配置注入
String response = ChatClient.create(chatModel)
.prompt("请介绍一下 Java 21 的虚拟线程")
.call()
.content();
System.out.println(response);
Spring AI 提供了两种调用层次:
- ChatClient:高层流式 API,类似 WebClient 的风格,适合大多数场景
- ChatModel:底层接口,直接操作 Prompt 和 ChatResponse,适合需要精细控制的场景
Solon AI:ChatModel 统一接口
// Solon AI - ChatModel 调用示例
ChatModel chatModel = ChatModel.of("https://api.moark.com/v1/chat/completions")
.apiKey("***")
.model("Qwen3-32B")
.build();
String response = chatModel.prompt("请介绍一下 Java 21 的虚拟线程")
.call()
.getContent();
System.out.println(response);
Solon AI 的 ChatModel 是统一入口,通过"方言"机制适配不同模型供应商。它不依赖自动配置,纯 Java 构建即可运行。
小结:两者在基础 LLM 调用上体验接近。Spring AI 更依赖 Spring 容器注入;Solon AI 更像纯 Java API,手动构建即用。
2.3 Tool / Function Calling 对比
Tool Calling 是 AI 应用最核心的增强能力之一,让模型能够调用外部工具来获取信息或执行动作。
Spring AI 2.0:@Tool 注解
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;
import org.springframework.context.i18n.LocaleContextHolder;
import java.time.LocalDateTime;
class DateTimeTools {
@Tool(description = "获取用户所在时区的当前日期和时间")
String getCurrentDateTime() {
return LocalDateTime.now()
.atZone(LocaleContextHolder.getTimeZone().toZoneId())
.toString();
}
@Tool(description = "为用户设置指定时间的闹钟,时间格式为 ISO-8601")
void setAlarm(@ToolParam(description = "ISO-8601 格式的时间") String time) {
System.out.println("闹钟已设置: " + time);
}
}
调用时将工具实例传入 ChatClient:
ChatModel chatModel = ... // 自动配置注入更多推荐



所有评论(0)