技术选型会开到第三十分钟,三个人的主张都还站着:一个说用 Spring AI,因为团队全是 Spring 背景,接入最顺;一个说用 LangChain4j,因为它集成面最广,模型和向量库都不用操心;一个说用 AgentScope,因为需求是多智能体协作,要状态图、沙箱和人工审批。三条理由各自成立,会开完没有结论。
这三个人吵的不在同一层,所以永远吵不出结果。
这份材料给谁看:手上有一个 Java 后台项目、要在技术评审里给出选型结论的工程师,不是做模型算法的人。要解决的问题是:在 2026 年的 Java 生态里,怎么把"用哪个框架"变成一个能拍板的问法。
先把坐标系竖起来
把 2026 年的 Java AI 生态竖着切,浮出来的是三个分工层。
基础设施层——Spring AI。它解决的是"把接入大模型变成稳定的工程问题":统一入口、可组合的 Advisor 链、官方维护的 MCP 实现、与 Spring Security 和 Micrometer 天然打通。官方给它的类比是"AI 世界的 JDBC"。没有人说 JDBC 和业务系统竞争,它就是地基层。
应用框架层——LangChain4j。框架无关的全功能工具箱,从底层原语到声明式 API 到 Agentic 原语,模型与向量存储的集成面最广,Quarkus、Spring Boot、Micronaut 都有官方集成。它是"什么都给你备好了"那一层。
Agent 框架层——Spring AI Alibaba、AgentScope Java、Google ADK Java。当应用形态升级到"多个智能体协作完成复杂任务",才需要这一层:状态图编排、多智能体模式、沙箱、人工审批。三条路线分别绑 Spring 系图编排、独立 ReAct 自主智能体、Google 云原生。
横在三层之上的是协议三件套:MCP、A2A、Agent Skills。它们不是框架,是接口约定,会同时穿透每一层。这个分层口径取自三篇选文的共同骨架,不是本文独立发明的坐标。
逐层过堂
Spring AI:Spring 生态的 AI 原生运行时,快照版本 2.0.1(据知乎作者 lambert 2026-08-26 核查)。适合已有 Spring Boot 的项目快速接入。代价是强依赖 Spring Boot 与 JDK 基线,非 Spring 项目用它别扭。
LangChain4j:快照版本 1.19.0,主线最低 JDK 17,没有 Java 8 兼容版本线。它同时并行维护两条回溯补丁线,锁旧版本的生产系统也能持续拿到修复。锁版本前先想清楚跟哪条线,大量集成模块仍以 beta 版本号迭代,升级时要留意 API 变化。顺带澄清一个流传很广的误会:它不是 Python LangChain 的 Java 移植,而是从零构建的地道 Java 库——这条取 2026-08 那篇的口径,第四节还会讲它和 2026-06 那篇的矛盾。
Spring AI Alibaba(SAA):阿里系 Agent 全家桶,快照版本 1.1.2.0,基于 Spring AI 1.1.2 与 Boot 3.5。选它等于把基线锁在这条线上,这条锁法决定了下一节三条"做不到"里的前两条。
AgentScope Java:独立的生产级多 Agent 框架,ReAct 范式,快照版本 2.0.1。框架无关,Spring Boot、Quarkus、Micronaut 都能引入。
Google ADK Java:code-first 的 Agent 工具包,快照版本 1.8.0,绑 Vertex AI 与 A2A。云侧绑定是它最大的前提条件,选型前先确认自己是否在那朵云上。
Solon AI:编外名额,快照版本 4.0.4,Java 8 到 26 全版本兼容,是目前唯一支持 Java 8 的选项。代价是模型与向量库集成面较窄、社区规模较小(据第三方 2026-08 统计:约 2.7k star,同期 Spring AI 约 8.9k、LangChain4j 约 12.2k——第三方统计,未核实)。金融政企的存量系统升 JDK 意味着高成本、高风险和漫长的审批周期,这类项目在这里没有别的出路,所以它不该被当成"小众方案"直接跳过。
Embabel:Spring 之父 Rod Johnson 做的 JVM 原生智能体框架,2026-08 发布 1.0.0 GA(据掘金选文)。核心是 GOAP——目标导向行动规划,一种传统上用在游戏 AI 的规划算法——把"规划"这件事从 LLM 手里拿回来,按 Action 的前置条件和效果计算最优路径,并说明为什么选这条路径。它构建在 Spring AI 之上,直接吃 Spring AI 的模型连接能力,@Tool 与 ChatClient 那套可以继续沿用。适合需要可解释、可审计、确定性多步骤编排的场景,比如合规审批与调度。核心实现用 Kotlin,团队技术栈要提前确认。
把兼容矩阵放在功能表前面
这是本文最想留下的一条判断:功能表半年就烂,兼容矩阵不会。三篇选文里最耐用的一段,是 2026-08 那篇里的兼容性矩阵——Spring Boot 基线、最低 JDK、互斥关系。矩阵里有三条"做不到",它们比任何功能清单都更影响落地:
- 要 Spring AI 2.0 的新特性,又要 SAA 的 Graph 编排——当前做不到。SAA 基于 Spring AI 1.1.2,两者二选一,要等 SAA 的 2.0 适配版本再重新评估。
- 要 agent-utils 的 Claude Code 式工具集,又要 SAA 全家桶——做不到。agent-utils 要求 Spring AI 2.0 以上。
- 存量 Java 8 项目直接上 Spring AI 或 LangChain4j——做不到。两者主线都要 JDK 17,官方都没有 Java 8 版本线的计划。
兼容矩阵回答的是"这套组合现在能不能拼起来",功能表回答的是"它有什么"。工程约束归前者管,宣传物料归后者。评审会上该先过前者。
这张表有保质期
同一批框架,两篇知乎原文的"最新版本"字段互相矛盾:LangChain4j 1.13.0(2026-06)对 1.19.0(2026-08)、AgentScope Java 1.2.0 对 2.0.1、Spring AI 1.1.4 与 1.0.5 LTS 对 2.0.1。两篇写作日期差两个月,版本号全跳。
结论:抄别人的选型表,必须连快照日期一起抄。日期是这张表唯一可验证的字段。版本号本身不能脱离日期引用,它只描述"某月某日某官方源当时的状态"。一张没有快照日期的选型表,读到的那一刻就开始过期。
有一处两篇原文互斥,本文取 2026-08 那篇的口径:LangChain4j 是不是 Python LangChain 的 Java 移植。2026-06 那篇写"源自 Python 版 LangChain 的移植思路",2026-08 那篇明文澄清"不是 Java 移植,而是从零构建的地道 Java 库"。本文按后者写,同时标注两篇互相矛盾,不写成定论。
还有一处口径冲突,本文核不下来,标「不确定」:Spring AI 2.0 的 JDK 基线。掘金那篇写 21+ 且强依赖 Spring Boot 4.x,2026-08 那篇写最低 JDK 17 与 Boot 4.0 / 4.1。两篇都不是官方 release notes,拍板前建议核官方页,不要把这两个数当基线。
三个问题,不是五选一
第一问:你的 JDK 能升到 17 吗?不能升(存量 Java 8/11、升级审批无期),答案基本只有 Solon AI。能升,进第二问。
第二问:生态绑定。团队在 Spring 上、基线允许,Spring AI 是最顺的接入方式;在阿里系、要 SAA 的图编排,就要接受锁在 Spring AI 1.1.2 与 Boot 3.5;在 Google 云上,看 ADK。
第三问:应用形态。单轮对话加 RAG,停在应用框架层就够;需要多智能体协作、状态图、沙箱、人工审批,才进 Agent 层;需要可审计的确定性编排,看 Embabel。
多数场景的答案是"基座 + 按需叠加"——五选一这个问法本身就问错了。回到开头那场会:三个主张可以在同一场会上同时成立,因为它们各自回答的是不同的问题。这场会该问三个问题;投票,等三个问题都有答案了再说。
结尾给一个动作
把三行填进你自己的表:项目的 JDK 版本、Spring Boot 基线、主力模型。这三行填完,能选的范围通常只剩一两个。
别去搜"最好的 Java AI 框架"。那张表在你读到的那天就开始过期,而你的 JDK 版本和 Spring Boot 基线不会——它们是这张表里唯二由你控制的字段。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/lvyuanj/article/details/169068438




