Java 工程师 AI 智能体学习路线 · 阶段 7:框架与生态 详解
本阶段目标:在了解单/多智能体原理后,学会选型与落地------弄清 Java 主流框架(Spring AI、LangChain4j、Spring AI Alibaba、Semantic Kernel)的定位与差异,并以 Python 框架(LangGraph/AutoGen/CrewAI)作为设计范式参考。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
7.1 为什么要用框架
讲解
裸调 API 适合学习原理,但生产落地会遇到大量重复工程:消息组装、重试退避、流式、工具注册、记忆管理、多 Agent 编排、可观测埋点。框架把这些通用能力标准化,让开发者聚焦业务。
核心价值
- 统一抽象 :屏蔽厂商差异(
ChatClient/ChatLanguageModel)。 - 开箱能力:工具、记忆、RAG、流式、拦截器。
- 可编排:内置图/链/Agent 编排原语。
- 可观测:与日志、链路追踪集成。
面试知识点
- Q:框架和裸调 API 如何权衡?
A:学习/原型可裸调以理解原理;生产用框架降本提效、统一治理。但要警惕过度抽象带来的调试黑盒,关键路径需能"下钻"到原始报文。
7.2 Java 主流框架
7.2.1 Spring AI
- 定位:Spring 官方 AI 抽象,最贴合 Spring Boot 生态。
- 核心 :
ChatClient、ChatModel、VectorStore、ToolCallback、Advisor(拦截链)。 - 示例
java
@Autowired ChatClient chatClient;
public String ask(String q) {
return chatClient.prompt()
.system("你是 Java 导师")
.user(q)
.call().content();
}
- 适用:已有 Spring Boot 后端、希望最小侵入接入 LLM 的团队。
7.2.2 LangChain4j
- 定位:LangChain 的 Java 实现,链式/Agent API 成熟,轻量灵活。
- 核心 :
ChatLanguageModel、AiServices(用接口+注解声明 Agent)、@Tool。 - 示例
java
interface Assistant {
@SystemMessage("你是 Java 导师")
String answer(@UserMessage String q);
}
Assistant bot = AiServices.create(Assistant.class, model);
String r = bot.answer("什么是虚拟线程?");
- 适用:想要"声明式 Agent"、快速组合链与工具的开发者。
7.2.3 Spring AI Alibaba
- 定位 :阿里系对 Spring AI 的扩展,对通义千问(DashScope)深度优化,并提供 Agent Framework 与可视化 Dashboard。
- 特色:内置 Agent 编排、国内模型/合规友好、示例丰富(含 A2A、Harness 等)。
- 适用:国内业务、使用通义/百炼、希望获得较完整 Agent 能力的团队。
7.2.4 Semantic Kernel for Java(微软)
- 定位 :微软跨语言 SDK,强调 Plugin(插件) 与 Planner(规划器),企业集成友好。
- 核心概念 :
Kernel为运行容器;Function为可调用单元;Plugin是函数的集合;Planner 负责把目标拆成函数调用计划。 - 示例(概念示意)
java
Kernel kernel = Kernel.builder().withAIService(ChatCompletion.class, model).build();
// 注册 Plugin/Function 后,由 Planner 自动编排
- 适用:微软技术栈、强调 Plugin 化能力治理的企业。
7.2.5 协议层 SDK(MCP / A2A)
- 框架负责"编排",协议 SDK 负责"连接":
- MCP SDK(Java):连接 MCP Server,把工具/资源标准化接入。
- A2A SDK:实现 Agent Card 发现与跨 Agent 任务协作。
面试知识点
- Q:Spring AI 与 LangChain4j 的核心差异?
A:Spring AI 更"Spring 原生",与 Boot/依赖注入/Advisor 体系融合深;LangChain4j 更轻量、声明式(AiServices),跨框架移植性好。两者能力趋同,按团队技术栈选。
7.3 Python 框架(范式参考,不必重写)
多数 Agent 前沿范式先在 Python 出现。Java 工程师应学其设计模式,而非把业务迁到 Python。
7.3.1 LangGraph
- 用有向图 + 状态编排 Agent,支持循环/分支/人机中断,是图编排事实标准。
- Java 侧可借鉴其"节点/边/状态/条件边"思想自行实现或用框架对应能力。
7.3.2 AutoGen(微软)
- 多 Agent 对话协作:UserProxy、Assistant、GroupChat,适合多角色讨论与代码执行。
7.3.3 CrewAI
- 以 Role(角色)/ Crew(团队)/ Task(任务) 组织多 Agent,强调"岗位化"协作,上手直观。
面试知识点
- Q:为什么建议 Java 工程师参考 Python 框架?
A:Agent 前沿范式(图编排、多 Agent 协作)多在 Python 先成熟;理解其设计后可用 Java 框架/A2A 等价落地,避免重复踩坑,也便于跨语言团队协作。
7.4 框架选型建议
| 维度 | 推荐 |
|---|---|
| 已是 Spring Boot 后端 | Spring AI(或 + Spring AI Alibaba) |
| 追求轻量/声明式 | LangChain4j |
| 国内通义/百炼 + 可视化 | Spring AI Alibaba |
| 微软/Plugin 治理 | Semantic Kernel |
| 多 Agent 图编排 | 用框架的图能力,参考 LangGraph 思想 |
| 跨进程 Agent 协作 | 接 A2A / MCP 协议 |
一般路径 :以 Spring AI / LangChain4j 为主战场,用 Python 框架做范式参考,协议层用 MCP/A2A 解耦工具与跨 Agent 通信。
面试知识点
- Q:如何避免被某个框架"锁定"?
A:业务代码依赖抽象接口(如ChatClient)而非具体实现;工具/协议走标准(MCP/A2A);把编排逻辑与框架解耦,必要时可平滑替换底层。
7.5 阶段 7 自测清单
- 能对比 Spring AI 与 LangChain4j 的异同
- 能说出 Spring AI Alibaba 的特色能力
- 能解释 Semantic Kernel 的 Plugin/Planner
- 能说明何时参考 Python 框架而非改用 Python
- 能给出基于团队现状的框架选型理由
7.6 阶段 7 面试题与参考答案
1. 为什么用框架而不是裸调 API?
框架标准化了消息组装、重试、流式、工具注册、记忆、编排与可观测,降本提效、统一治理;但需警惕抽象黑盒,关键路径要能下钻到原始报文。
2. Spring AI 与 LangChain4j 的核心差异?
Spring AI 更"Spring 原生",与 Boot/DI/Advisor 融合深;LangChain4j 更轻量、声明式(AiServices),跨框架移植性好。按团队栈选型。
3. Spring AI Alibaba 的特色是什么?
对通义千问/DashScope 深度优化,提供 Agent Framework 与可视化 Dashboard,国内模型与合规友好,示例覆盖 A2A、Harness 等。
4. Semantic Kernel 的 Plugin 与 Planner 是什么?
Plugin 是 Function(可调用单元)的集合,用于能力模块化;Planner 负责把用户目标自动拆解为函数调用计划并执行。适合企业级能力治理。
5. 何时参考 Python 框架而不是改用 Python?
当范式(图编排、多 Agent 协作)先在 Python 成熟时,应学习其设计思想,用 Java 框架/A2A 等价落地,避免把核心业务迁到陌生语言栈。
6. 框架抽象层如何解耦厂商?
业务依赖统一接口(如 ChatClient),具体厂商通过配置/适配器注入,便于切换、灰度与多模型路由。
7. MCP SDK 与 A2A SDK 在 Java 生态的角色?
MCP SDK 连接 MCP Server 把工具/资源标准化接入;A2A SDK 实现 Agent Card 发现与跨 Agent 任务协作。二者分层解决"工具接入"与"Agent 协作"。
8. 如何做框架选型?
依据现有技术栈(Spring Boot 优先 Spring AI)、模型厂商(国内优先 Spring AI Alibaba)、协作模式(图编排参考 LangGraph)、跨进程需求(MCP/A2A)综合判断。
9. 框架会不会成为锁定风险?如何规避?
会。规避:业务依赖抽象接口而非具体实现;工具/协议走标准(MCP/A2A);编排逻辑与框架解耦,可平滑替换底层。
10. 一个成熟的 Agent 框架应具备哪些核心能力?
统一模型抽象、工具注册与调用、记忆管理、RAG 集成、流式、重试/护栏(Advisor)、多 Agent 编排(图/链)、可观测与评测接口。