Featured image of post Java AI Agent 四框架对比:Spring AI Alibaba、AgentScope Java、LangChain4j 与 Google ADK Java
Java

Java AI Agent 四框架对比:Spring AI Alibaba、AgentScope Java、LangChain4j 与 Google ADK Java

Java AI Agent 四框架对比:Spring AI Alibaba、AgentScope Java、LangChain4j 与 Google ADK Java

Java AI Agent 生态已经不再只有“给大模型套一个 HTTP 客户端”。Spring AI Alibaba、AgentScope Java、LangChain4j、Google ADK Java 都能连接模型和工具,但它们解决的问题并不相同:有的强调 Spring 工作流,有的把权限、沙箱和分布式恢复放在核心位置,有的是通用 JVM AI 工具箱,有的则围绕代码优先的多 Agent 编排设计。

本文不按 GitHub Star 简单排名,而是从 编程模型、执行控制、状态恢复、安全、协议、可观测性和生态锁定 等方面比较四个框架,并给出面向真实项目的选型路径。

版本快照:Spring AI Alibaba 稳定线 1.1.2.2,AgentScope Java 2.0.0 GA,LangChain4j 1.18.0,Google ADK Java 1.7.0。版本状态截至 2026-07-23。Google ADK Java 官方仍标记 Preview / Pre-GA;LangChain4j 核心库与其高层 Agentic 模块的成熟度也不能混为一谈。

一、先给结论

如果你的核心问题是优先考虑
Spring Boot 项目要做 Graph、Supervisor、国内模型和多 AgentSpring AI Alibaba
Agent 要安全执行 Shell/文件工具,并支持审批、沙箱和跨实例恢复AgentScope Java
先统一模型、RAG、Tool Calling、MCP,再逐步加入 AgentLangChain4j
需要代码优先的 Sequential/Parallel/Loop 多 Agent,并深度使用 Gemini/Google CloudGoogle ADK Java
只是一个模型调用 2~3 个只读工具先用 LangChain4j AI Services 或 Spring AI,未必需要多 Agent

没有“全维度最强”的框架。正确问题不是“哪个框架功能最多”,而是:你的不确定性主要来自模型决策、工作流状态、工具副作用,还是部署运行时?

二、四种不同的设计中心

1. Spring AI Alibaba:Spring + Agent Workflow

Spring AI Alibaba 在 Spring AI 的模型、工具、消息等抽象上,增加 ReactAgent、Graph Runtime、SequentialAgentParallelAgentRoutingAgent、Supervisor 等高层能力。

它的设计中心是 用 Java 和 Spring 管理可组合的 Agent 工作流。适合将 Agent 作为现有 Spring 企业应用的一部分,而不是另起一套运行平台。

典型结构:

Spring Boot
  -> Supervisor / Routing / Graph
      -> ReactAgent A -> Spring Bean Tools
      -> ReactAgent B -> MCP / Service
  -> Saver / Observability / Nacos

2. AgentScope Java:生产运行时与 Harness

AgentScope Java 2.0 不只关心模型如何选择工具,还把生产运行问题提升为一等能力:强类型事件、工具权限、人工审批、Workspace、Sandbox、Middleware、分布式 session 和 memory、跨副本恢复。

它的设计中心是 让长时间运行、会执行真实操作的 Agent 安全稳定地活下去

HarnessAgent
  -> Workspace / Skills / Memory
  -> Permission Decision
  -> Local / Docker / Kubernetes Sandbox
  -> Distributed Backend + Session Recovery

3. LangChain4j:Java 原生 AI 应用工具箱

LangChain4j 首先是通用 Java LLM 应用库。AI Services 允许开发者用 Java 接口定义模型服务,周围组合 Memory、RAG、@Tool 和 MCP;它同时兼容 Spring Boot、Quarkus、Helidon、Micronaut。

它的设计中心是 用符合 Java 习惯的接口、POJO 和注解连接不同模型与 AI 能力。这使它适合作为长期底座,但不要因为核心库成熟,就默认高层 langchain4j-agentic 模块也达到相同稳定程度;官方仍将该模块标为实验性能力。

4. Google ADK Java:Code-first Agent Development Kit

Google ADK Java 从一开始就围绕 Agent 构建,提供 LlmAgent、Sequential/Parallel/Loop 工作流、Session/State、工具和开发 UI,并支持 A2A。

它的设计中心是 用代码显式定义 Agent、工具和编排,并贯通开发、调试与 Google Cloud 部署。优势是 Agent-first 和 Google 生态,代价是项目仍处于 Preview / Pre-GA 阶段。

三、核心能力横向比较

维度Spring AI AlibabaAgentScope Java 2.0LangChain4jGoogle ADK Java
主要定位Agent 工作流与多智能体生产级 Agent HarnessJVM AI 应用工具箱Code-first Agent SDK
主要语言JavaJavaJavaJava
基础要求JDK 17、Spring BootJDK 17+依模块而定Java + Maven/Gradle
单 AgentReactAgentReActAgent / HarnessAgentAI Services + Tools;Agentic 模块LlmAgent
工作流Graph、顺序、并行、路由、循环Harness、Subagent、事件驱动高层 Agentic 模块仍需谨慎Sequential、Parallel、Loop
状态恢复Saver / Graph checkpoint分布式 session、memory、跨副本恢复Chat Memory 为主,复杂恢复自行设计Session / State / Artifact
HITLGraph 中断等方式组织原生权限:允许/审批/拒绝通常由应用层实现可通过流程/工具层实现
Sandbox有独立 Sandbox 生态本地、Docker、K8s、云 Sandbox非核心能力非核心能力
MCP支持支持支持工具生态可扩展,MCP 与 A2A 应分工看待
A2A支持,并可结合 Nacos支持需看具体集成官方重点能力
国内模型很强DashScope、DeepSeek 等扩展提供多厂商集成Gemini 最自然,其他模型需验证
Spring 集成原生核心可集成,但不是唯一运行方式成熟不是核心设计中心
当前主要风险版本线迭代快2.0 GA 较新,工程复杂度高Agentic 高层 API 实验性Preview / Pre-GA、平台偏向

这张表不能代替 PoC。尤其是“支持”两个字,可能只代表存在适配器,并不代表拥有相同的错误语义、流式事件、结构化输出和生产经验。

四、编程模型:接口、图、Harness 与 Agent 树

Spring AI Alibaba:把 Agent 当成图中的节点

开发者可以先构建专业 ReactAgent,再将它们包装成 Supervisor 的工具,或放进 Graph 里增加条件边、重试和 checkpoint。它适合“业务流程大体确定,但部分节点需要 LLM 决策”的系统。

优势:

  • 确定性工作流与 Agent 节点可以混合;
  • Spring Bean、配置、监控和业务服务复用自然;
  • 对复杂流程的控制力强于单纯 ReAct 循环。

代价:Graph、Agent Framework、Spring AI 与 Alibaba 版本线需要一起管理,升级时应做依赖树和回归测试。

AgentScope Java:把 Agent 当成长期运行的受控进程

HarnessAgent 组合 Workspace、Memory、Skills、Subagent、权限和沙箱。这里的关键不只是“下一步调哪个函数”,还包括:调用是否需要用户批准、工具在哪个隔离环境运行、崩溃后从哪里恢复、事件如何实时推给前端。

优势:生产问题覆盖最完整。

代价:如果业务只需简单问答和只读工具,Harness 的概念和部署组件可能过重。

LangChain4j:把 AI 能力当成 Java Service

典型写法是定义接口:

interface Assistant {
    String chat(@MemoryId String userId, @UserMessage String message);
}

再通过 AiServices.builder(...) 绑定模型、Memory Provider 和工具对象。这种方式对传统 Java 团队非常自然,单元测试和依赖注入也容易组织。

优势:模型、RAG、工具与框架集成广,渐进式采用成本低。

代价:复杂多 Agent 的暂停、恢复、HITL 和图执行不应仅靠 Chat Memory 拼装;高层 Agentic 模块仍需要固定版本和充分验证。

Google ADK Java:把 Agent 组合成代码结构

开发者定义多个 LlmAgent,再通过 Sequential、Parallel 或 Loop Agent 显式组合。Session 保存对话和状态,Dev UI 用于本地调试。

优势:多 Agent 编排概念清晰,A2A 与 Google Cloud 路线完整。

代价:官方 README 仍声明 Preview / Pre-GA,且部分评测能力仍在演进。关键生产系统应先做版本冻结、回归集和退出预案。

五、状态与恢复:最容易比较错的维度

“支持 Memory”不等于“支持崩溃恢复”。至少要区分:

  1. 对话记忆:模型下一轮能看到什么;
  2. 工作流 checkpoint:程序执行到哪个节点;
  3. 业务事实:邮件是否真的发送、订单是否真的创建;
  4. Artifact:文件、报告、图片等大对象;
  5. 分布式路由状态:哪个副本继续哪个 session。
需求更适合的起点
多轮问答记住用户上下文LangChain4j Chat Memory
Graph 节点暂停后继续Spring AI Alibaba Saver / checkpoint
跨副本恢复长任务和子 AgentAgentScope Java Distributed Backend
Agent Session、State 与 Artifact 一体组织Google ADK Java

无论框架多强,都不能替业务工具完成 exactly-once。崩溃可能发生在“下游已经写成功,但 Agent 还没保存结果”的窗口。邮件、支付、工单等工具必须使用幂等键和唯一约束。

六、安全:不要把 Prompt 当权限系统

四个框架都可以在 Prompt 中写“删除前请确认”,但这不是安全边界。

AgentScope Java 的差异最明显:权限系统原生表达 允许、要求用户审批、拒绝,并能把工具放入沙箱。若业务是运维、代码执行或文件操作,它通常更贴近需求。

其他框架也能实现安全控制,但需要在应用层构建:

Agent 只能调用 prepare_operation
  -> 服务端创建 WAITING_APPROVAL 记录
  -> 人类在可信 UI 审批
  -> 后端用 approvalId 执行
  -> 工具返回真实 operationId

所有框架都应遵守:

  • 身份和租户信息来自服务端上下文,不让模型填写;
  • 写工具与读工具分离;
  • 工具参数使用结构化类型和白名单;
  • 高风险工具默认拒绝或必须审批;
  • 沙箱之外还要有操作系统、网络和云 IAM 限制;
  • 日志脱敏,Prompt 与工具结果不能泄露凭据。

七、MCP 与 A2A 不是竞争关系

  • MCP 主要解决 Agent/模型如何发现并调用工具、资源和提示模板;
  • A2A 主要解决相互独立的 Agent 如何描述能力、通信和协作。

例如,采购 Agent 可以通过 MCP 调 ERP 查询工具,同时通过 A2A 把合同审查任务交给远程法务 Agent。不要因为框架同时写着 MCP 和 A2A,就把二者当成同一层协议。

选型时应验证的不只是协议名称,还包括:认证、超时、流式、取消、错误码、版本协商、审计和跨租户隔离。

八、用同一个 PoC 做公平测试

建议不要分别跑四个官方 Hello World,而是实现同一个“采购审批 Agent”:

读取采购申请
  -> 并行查询预算与供应商风险
  -> 生成建议
  -> 金额超过阈值则等待人工批准
  -> 创建订单
  -> 模拟进程崩溃并恢复

统一测量:

指标观察方法
实现复杂度业务代码量、配置量、概念数量
工具正确率固定 100 条用例,统计选错/漏调/参数错
副作用安全重试和恢复后是否重复创建订单
恢复能力在每个节点前后故障注入
可观测性能否关联模型、工具、session、审批和错误
成本模型调用次数、token、延迟
可测试性不调用真实模型时能否测试控制流
生态约束替换模型、存储、云环境的改动范围

真正的选型结论通常不是“框架 A 功能比 B 多”,而是“框架 A 让我们的关键失败模式更容易被测试和控制”。

九、按团队和场景选型

场景 1:现有 Spring Boot 企业系统

优先评估 Spring AI Alibaba。它能直接复用 Spring Service、配置、Actuator 和依赖注入,也更容易把确定性 Graph 与 Agent 节点结合。

若当前阶段只做模型、RAG 和少量工具,也可以从 LangChain4j 或 Spring AI 底层能力开始,不必一开始引入多 Agent。

场景 2:运维 Agent、代码 Agent、长任务 Agent

优先评估 AgentScope Java。权限决策、Workspace、Sandbox、事件系统和跨副本恢复与该类风险高度匹配。

不过,选它不等于自动安全:Docker/Kubernetes 隔离、网络出口、凭据代理、资源配额和人工审批后端仍需自行配置。

场景 3:希望模型和应用框架保持中立

优先评估 LangChain4j。它的提供商和向量库集成广,也能运行在 Spring Boot、Quarkus、Micronaut 等环境中。

复杂 Agentic 编排要单独做成熟度评估;必要时可把 LangChain4j 作为模型/工具层,配合其他工作流引擎。

场景 4:Gemini、Google Search、Vertex AI 和 A2A

优先评估 Google ADK Java。其代码优先的 Agent 树、Dev UI 和 Google 生态协同清晰。

但 Preview / Pre-GA 是实际风险,不应藏在脚注里。上线前要锁版本、保留回滚路径,并验证非 Google 模型或未来迁移的成本。

场景 5:框架混用

混用可以成立,但只在边界明确时:

  • Spring AI Alibaba Graph 负责确定性业务流程;
  • AgentScope Harness 负责需要沙箱的远程专业 Agent;
  • LangChain4j 提供某些模型或 RAG 能力;
  • A2A 连接独立 Agent 服务。

不要在同一进程同时引入四套消息、Memory、Tool 和 tracing 抽象。每多一层适配,都要明确谁负责重试、取消、状态和错误翻译。

十、决策清单

在确定框架前,逐项回答:

  • 我们需要的是聊天记忆,还是工作流崩溃恢复?
  • 工具是否有副作用,是否必须人工审批?
  • 是否会执行 Shell、代码或文件操作,需要哪一级沙箱?
  • 工作流是确定性图,还是高度自治的 ReAct?
  • 是否需要多实例、跨副本恢复和后台长任务?
  • MCP、A2A 分别解决哪个边界?
  • 是否必须使用 Spring、Google Cloud 或国内模型生态?
  • 当前所用模块是 GA、稳定版、experimental,还是 Pre-GA?
  • 能否在不调用真实模型的情况下测试控制流?
  • 工具是否具备幂等、鉴权、审计和超时?

总结

四个项目代表四条不同路线:

  • Spring AI Alibaba:用 Spring 和 Graph 构建可控的 Agent 工作流;
  • AgentScope Java:为安全、长任务和分布式恢复提供生产 Harness;
  • LangChain4j:用 Java 原生接口组织模型、RAG、工具与 MCP;
  • Google ADK Java:用代码优先方式组合多 Agent,并连接 Google/A2A 生态。

对于多数团队,最稳妥的方法是先选一个有真实副作用、需要审批和恢复的业务任务,用同一组测试用例做 PoC。Agent 框架的价值,不在于让 Demo 调用更多工具,而在于当模型选错、工具超时、进程崩溃或用户拒绝审批时,系统仍然可解释、可恢复、不会重复造成损失。

参考资料

使用 Hugo 构建
主题 StackJimmy 设计