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.0Solon AI当前版本2.0.0-M6GA: 2026-05-28v3.10.62026-05-13Java 版本218 ~ 25框架依赖强依赖 Spring Boot 4.0框架无关可嵌入任意框架LLM 调用ChatClient ChatModelChatModel统一接口多方言Tool CallingTool ToolCallbackToolMapping MethodToolProviderAgent 体系无原生 Agent依赖 Advisor三级原生 AgentMulti-Agent无原生需 Spring AI Alibaba7 种 MAS 协作协议含 A2AMCPClient Server Auto-ConfigClient Server Proxy Remote SkillsACP/A2A支持支持Harness 运行时无完整智能体运行时引擎可观测性Micrometer 原生基础日志模型后端20多方言适配语义缓存Redis 语义缓存未明确接下来我们挑几个核心能力做代码级对比。2.2 LLM 调用方式对比Spring AI 2.0ChatClient 流式 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 AIChatModel 统一接口// 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.0Tool 注解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); } }调用时将工具实例传入 ChatClientChatModel chatModel ... // 自动配置注入 String response ChatClient.create(chatModel) .prompt(帮我设一个10分钟后的闹钟) .tools(new DateTimeTools()) .call() .content();Spring AI 还支持Bean动态注册、FunctionToolCallback编程式构建等多种方式。Solon AIToolMapping 注解import org.noear.solon.ai.annotation.ToolMapping; import org.noear.solon.annotation.Param; public class WeatherTools { ToolMapping(description 获取指定城市的天气情况) public String get_weather( Param(name location, description 根据用户提到的地点推测城市) String location) { return 晴24度; // 实际业务中可查询数据库或网络接口 } }调用时通过 options 将工具类动态添加chatModel.prompt(今天杭州的天气情况) .options(o - o.toolAdd(new WeatherTools())) .call();Solon AI 也支持MethodToolProvider显式包装或者将工具类配置为 Solon 组件Component从而支持依赖注入和 AOP 拦截。小结两者的 Tool 声明体验高度相似——都是注解驱动 自动 Schema 生成。Spring AI 的ToolToolParam与 Solon AI 的ToolMappingParam在功能上对等。差异在于 Spring AI 强绑定 Spring 容器而 Solon AI 可以在任意环境中使用。2.4 Agent 体系对比 —— 最大的差异点这是两个框架之间最大的结构性差异。Spring AI 2.0无原生 Agent 抽象Spring AI 2.0 没有提供原生的 Agent 抽象。它通过Advisors API来实现类似 Agent 的行为本质上是一个请求/响应的拦截器链// Spring AI - 使用 ToolCallAdvisor 实现工具调用循环 var toolCallAdvisor ToolCallAdvisor.builder() .toolCallingManager(toolCallingManager) .advisorOrder(BaseAdvisor.HIGHEST_PRECEDENCE 300) .build(); var chatClient ChatClient.builder(chatModel) .defaultAdvisors(toolCallAdvisor) .build(); String response chatClient.prompt(帮我查询订单状态并更新) .tools(new OrderTools()) .call() .content();如果需要多 Agent 协作能力通常需要引入Spring AI Alibaba扩展包或者自行基于 Advisor 链组合实现。Solon AI三级原生 Agent 体系Solon AI 内置了三个层级的 Agent 实现覆盖从简单到复杂的全部场景Agent 层级类名特征点SimpleAgent单次调用直接与 LLM 交互圈ReActAgent推理-行动闭环自主规划、选工具、观察结果网TeamAgent多 Agent 协作7 种 MAS 协作协议SimpleAgent 示例import org.noear.solon.ai.agent.simple.SimpleAgent; import org.noear.solon.ai.chat.ChatModel; public class SimpleAgentDemo { public static void main(String[] args) throws Throwable { ChatModel chatModel ChatModel.of(https://api.moark.com/v1/chat/completions) .apiKey(***) .model(Qwen3-32B) .build(); SimpleAgent robot SimpleAgent.of(chatModel) .defaultToolAdd(new TimeTool()) .build(); String answer robot.prompt(现在几点了) .call() .getContent(); System.out.println(Robot 答复: answer); } public static class TimeTool { ToolMapping(description 获取当前系统时间) public String getTime() { return java.time.LocalDateTime.now().toString(); } } }ReActAgent 示例ReActAgent 采用规划 推理 行动闭环模式能自主进行思考、选择工具执行动作并观察结果直至完成复杂任务import org.noear.solon.ai.agent.react.ReActAgent; import org.noear.solon.ai.chat.ChatModel; public class ReActAgentDemo { public static void main(String[] args) throws Throwable { ChatModel chatModel ChatModel.of(https://api.moark.com/v1/chat/completions) .apiKey(***) .model(Qwen3-32B) .build(); ReActAgent agent ReActAgent.of(chatModel) .defaultToolAdd(new CalculatorTool()) .defaultToolAdd(new SearchTool()) .build(); String answer agent.prompt(计算 (123 456) * 2 的结果) .call() .getContent(); System.out.println(Agent 答复: answer); } }ReActAgent 的执行过程类似人类先思考要怎么做然后选择工具执行再观察结果循环往复直到问题解决。它还支持 Plan-ReAct 模式先规划再执行、人工介入HITL、上下文摘要压缩等高级能力。TeamAgent 7 种协作协议当任务复杂到单个 Agent 无法胜任时TeamAgent 登场。它支持 7 种多 Agent 协作协议协议说明适用场景NONE透明式Agent 自由协商简单协作HIERARCHICAL层级式主 Agent 分配任务项目管理SEQUENTIAL顺序式Agent 依次执行流水线任务SWARM蜂群式按能力自发认领并行处理A2A对等式Agent 间直接通信跨系统互联CONTRACT_NET合同网招标-投标机制资源分配MARKET_BASED市场式基于价格协商竞争性任务这意味着你不需要从零构建多 Agent 编排逻辑Solon AI 直接提供了经过验证的协作协议实现。2.5 MCP 集成对比MCPModel Context Protocol是 Anthropic 提出的模型上下文协议正在成为 AI 工具互操作的事实标准。MCP 能力Spring AI 2.0Solon AIMCP Client支持支持MCP Server支持支持自动配置Boot Starter 自动配置配置式集成MCP Proxy无支持Remote MCP Skills无支持Spring AI 通过 Boot Starter 提供 MCP 的自动配置开箱即用体验好Solon AI 除了 Client/Server 之外额外提供了 MCP Proxy代理转发和 Remote Skills远程技能发现在分布式场景下更为灵活。三、Solon AI 独有能力深度解读上面提到的 Agent 体系之外Solon AI 还有几个值得深入介绍的独有模块。3.1 Harness 智能体运行时引擎solon-ai-harness是 Solon AI 的马具框架提供了智能体运行所需的全部基础设施会话与记忆管理支持短期会话记忆和长期持久化记忆动态工具挂载与发现运行时动态添加/移除工具上下文工程自动管理对话上下文窗口沙盒与安全工具执行的安全隔离多模型动态切换同一个 Agent 可以在不同模型间切换子代理池与技能池管理 Agent 的能力集合扩展机制可插拔的生命周期钩子如果说 Agent 是大脑那 Harness 就是躯干和四肢解决了 Agent 从 demo 到生产环境的最后一公里问题。3.2 ACP 与 A2A 协议支持ACPAgent Communication Protocolsolon-ai-acp模块提供了完整的 ACP 协议 SDKA2AAgent-to-Agentsolon-ai-a2a模块实现了 Google 提出的 A2A 协议支持 Agent 间的直接通信和协作这在构建跨组织、跨平台的 Agent 互联场景中尤为重要。Spring AI 目前没有对应的实现。3.3 AI Flow 工作流solon-ai-flow提供了基于 YAML 编排的 AI 工作流能力可以将多个 AI 步骤、条件分支、循环逻辑编排为可复用的工作流定义。四、Spring AI 的独有优势客观地说Spring AI 也有其不可替代的优势。4.1 Micrometer 可观测性Spring AI 与 Micrometer 深度集成提供了完整的可观测性支持Tracing自动关联 LLM 调用链路MetricsToken 消耗、响应延迟、工具调用次数等指标Span Attributes可选择性导出工具调用参数和结果对于需要严格监控 AI 调用质量、成本和延迟的企业级场景这是刚需。Solon AI 目前仅有基础日志支持。4.2 Spring 生态红利如果你已经在 Spring Boot 上构建了整个技术栈自动配置引入 Starter 即可使用零配置向量存储15 种向量数据库的 Boot Starter语义缓存基于 Redis 的语义缓存支持模型后端20 供应商的适配器TestcontainersAI 模型的集成测试支持这些开箱即用的能力是深度绑定 Spring 生态换来的效率红利。4.3 模型后端广度Spring AI 目前支持 20 模型供应商包括 OpenAI、Azure OpenAI、Anthropic、Google GenAI、Amazon Bedrock、Ollama、DeepSeek、Mistral AI、Groq 等覆盖面目前是 Java 生态中最广的。五、选型决策矩阵最后给出一个结构化的选型决策参考你的场景推荐方案理由Java 8、11 遗留系统需要 AI 化Solon AI唯一支持 Java 8 的选择已有 Spring Boot 项目需要快速接入 AISpring AI生态无缝集成自动配置开箱即用框架无关需要嵌入任意项目Solon AI无框架依赖纯 Java API需要复杂多 Agent 协作Solon AI原生三级 Agent 7 种 MAS 协议企业级可观测性优先Spring AIMicrometer 深度集成模型后端多样性优先Spring AI20 供应商适配需要智能体运行时HarnessSolon AI唯一提供完整运行时引擎需要从 Demo 快速走向生产Solon AIHarness 提供完整的运行时基础设施