
2026 年,AI 应用已从"Demo 阶段"全面进入"生产落地"阶段。但对于占企业开发主流的 Java 技术栈而言,AI 应用开发一直面临几个现实问题:
• 语言壁垒:Python 生态占据 AI 开发主导地位,Java 团队的 AI 项目不得不引入异构技术栈,维护成本激增。
• 框架碎片化:LangChain、LlamaIndex 等框架百家争鸣,但无一提供 Java 开发者熟悉的 Spring Boot 式开发体验。
• 生产化断层:Demo 容易上线难——企业真正需要的是可观测、可治理、可编排、可持久化的完整方案,远不止"能调用 API"。
Spring AI Alibaba 正是为解决这些问题而生。它由阿里巴巴主导开源,基于 Spring AI 规范构建,专为 Agentic AI 时代的企业级 Java 开发而设计。
截至 2026 年 6 月,Spring AI Alibaba 已迭代至 v1.1.2.x,累计发布 18 个 Release,是当前 Java 生态中企业级 AI 应用落地的重要选择之一。
用一句话定位:Spring AI Alibaba 是 Spring AI 生态的能力增强层——在 Spring AI 的模型调用、向量存储、工具集成等基础能力之上,补充了 Agent 框架、Graph 工作流引擎、MCP 双端支持(Client + Server)和企业级治理能力。
它的核心目标非常明确——让 Java 开发者用熟悉的 Spring Boot 方式,构建包含智能体(Agent)、工作流(Workflow)、多智能体协作(Multi-Agent)的完整 AI 应用。
Spring AI Alibaba 与 Spring AI 是增强与互补的关系:
维度 | Spring AI | Spring AI Alibaba |
|---|---|---|
定位 | AI 框架接口规范 + 通用模型适配 | Spring AI 生态增强:Agent 框架 + Graph 引擎 + 企业级治理 |
ChatModel | OpenAI / Ollama 等通用模型适配 | DashScope(通义千问)+ 兼容 OpenAI 协议的模型均可接入 |
编排能力 | 无内置工作流引擎,依赖手动串联 Tool Calling | Graph 工作流引擎(条件路由、并行分支、检查点)+ 多智能体框架(Sequential/Parallel/Routing/Supervisor) |
企业特性 | OpenTelemetry 基础集成 | 全链路可观测(兼容 ARMS/Langfuse/Zipkin)+ 动态配置管理 + AI 网关集成 |
MCP 支持 | Client 端:调用外部 MCP Server | Client + Server 双端:Client 调用 MCP 工具生态 + MCP Registry(服务注册发现)+ MCP Gateway(统一入口、路由转发、负载均衡) |
可视化 | 无内置 UI | Studio 嵌入式调试面板 + Admin 一站式运维平台(Agent 编排、可观测、评估) |
简单来说:Spring AI 提供 AI 应用的基础抽象,Spring AI Alibaba 在此基础上补充 Agent 编排、Graph 工作流引擎、MCP 双端支持和企业级治理——让模型调用变成可运维的生产系统。
Spring AI Alibaba 采用清

dio 层(顶部):提供可视化的开发、调试和运维体验。
• Agent Framework 层:以 ReactAgent 为核心的高级抽象,封装推理-行动循环、上下文工程和多智能体编排。
• Graph 引擎层:有向图编排运行时(类似于 Python 生态的 LangGraph),是整个框架的"心脏",负责状态管理、条件路由和并行执行。
• Augmented LLM 层(底部):基于 Spring AI 原子抽象,提供模型调用、工具执行、向量检索等基础能力。
• JDK 17+
• Spring Boot 3.2+
• 百炼 API Key(免费申请:https://bailian.console.aliyun.com/)
在 pom.xml 中添加依赖管理:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.1.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-bom</artifactId>
<version>1.1.2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>
</dependencies>
application.yml:
spring:
ai:
dashscope:
api-key: ${AI_DASHSCOPE_API_KEY}
最简实现——注入 ChatModel 直接调用:
@RestController
public class ChatController {
@Resource
private ChatModel chatModel;
@GetMapping("/chat")
public String chat(@RequestParam String msg) {
return chatModel.call(msg);
}
@GetMapping("/chat/stream")
public Flux<String> stream(@RequestParam String msg) {
return chatModel.stream(msg); // SSE 流式输出,打字机效果
}
}
启动后访问 http://localhost:8080/chat?msg=用一句话介绍Spring,即可获得通义千问的响应。
ChatModel 适合快速原型,但生产环境推荐使用 ChatClient,它提供了 Fluent API 风格的链式调用:
@Resource
private ChatClient.Builder clientBuilder;
public String analyzeCode(String code) {
ChatClient client = clientBuilder.build();
return client.prompt()
.system("你是一个资深 Java 代码审查专家,请以专业角度分析代码")
.user("请审查以下代码:\n" + code)
.options(DashScopeChatOptions.builder()
.temperature(0.3) // 降低随机性,保证一致性
.maxTokens(2000)
.build())
.call()
.content();
}
ChatClient 的关键能力:
1. 工具调用(Function Calling)
让模型能够调用你的业务方法:
// 定义一个工具
@Component
@Description("查询指定城市的实时天气")
public class WeatherTool implements Function<WeatherRequest, WeatherResponse> {
@Override
public WeatherResponse apply(WeatherRequest request) {
// 调用天气 API 获取数据
return weatherService.query(request.city());
}
}
public record WeatherRequest(
@JsonPropertyDescription("城市名称,例如:杭州") String city
) {}
// 在 ChatClient 中注册工具(支持 Bean 注入)
@Resource
private WeatherTool weatherTool;
String answer = client.prompt()
.user("杭州今天天气怎么样?")
.tools(weatherTool)
.call()
.content();
// 模型自动识别意图 → 调用 WeatherTool → 根据结果生成回答
2. 结构化输出
让模型直接返回 Java 对象,而非自然语言文本:
record CodeReviewResult(
List<String> issues,
String overallAssessment,
int score
) {}
CodeReviewResult result = client.prompt()
.user("审查这段代码:\n" + code)
.call()
.entity(CodeReviewResult.class); // 框架自动解析 JSON → Java 对象
企业 AI 应用最典型的场景是"基于公司知识库回答问题"。Spring AI Alibaba 提供了开箱即用的 RAG 方案:
Spring AI Alibaba 的 RAG 能力通过 Spring AI 的 VectorStore 抽象层实现,支持对接多种向量数据库和知识库平台。
以阿里云百炼为例——百炼是一站式大模型平台,提供文档管理、向量化和检索服务:
步骤 1:创建知识库
通过控制台上传企业文档(支持 PDF、Word、Excel、Markdown 等格式),平台自动完成文档解析、切片和向量化。其他向量数据库(如 Milvus、Elasticsearch)也可以通过 Spring AI 的标准 VectorStore 接口接入。
步骤 2:代码集成
@RestController
public class RagController {
private final ChatClient chatClient;
public RagController(ChatClient.Builder builder,
VectorStore vectorStore) {
this.chatClient = builder
.defaultAdvisors(
new QuestionAnswerAdvisor(vectorStore, SearchRequest.builder()
.topK(5) // 召回 Top 5 最相关文档
.similarityThreshold(0.7) // 相似度阈值
.build())
)
.build();
}
@GetMapping("/rag/ask")
public String ask(@RequestParam String question) {
return chatClient.prompt()
.user(question)
.call()
.content();
}
}
步骤 3:混合检索提升精度
在生产环境中,纯向量检索可能遗漏精确的关键词匹配。推荐混合检索方案:

根据阿里云开发者社区 202

从人工翻阅文档的 40 分钟降至 3 秒。
单 Agent 能处理的复杂度有限。当任务需要分解为多步骤、多领域的子任务时,多智能体编排成为关键能力。
Spring AI Alibaba 内置了四种编排模式:
SequentialAgentSpecification spec = SequentialAgentSpecification.builder()
.name("content_pipeline")
.agents(List.of(researchAgent, writingAgent, reviewAgent))
.build();
SequentialAgent pipeline = SequentialAgent.builder()
.model(chatModel)
.specification(spec)
.build();
// 自动按序执行:调研 → 写作 → 审校
pipeline.call("写一篇关于微服务的科普文章");
ParallelAgentSpecification spec = ParallelAgentFactory.createParallelAgentSpecification(
"multi_perspective",
List.of(techReviewAgent, securityAuditAgent, performanceAgent)
);
ParallelAgent multiReview = ParallelAgent.builder()
.model(chatModel)
.specification(spec)
.mergeStrategy(results -> {
// 自定义合并逻辑:汇总三个维度的审查结果
return mergeReviewResults(results);
})
.build();
multiReview.call("审查这段代码");
LlmRoutingAgent router = LlmRoutingAgent.builder()
.model(chatModel)
.routingRules(Map.of(
"技术问题", techAgent,
"业务咨询", businessAgent,
"投诉处理", supportAgent
))
.build();
// LLM 自动理解意图,路由到对应 Agent
router.call("我们的微服务响应时间突然增加,可能是什么原因?");
对于复杂的开放性任务,Supervisor(监督者)模式最为灵活:

// 定义子 Agent
ReactAgent codingAgent = ReactAgent.builder()
.name("coder")
.mode

tools(fileWriterTool, compilerTool)
.build();
ReactAgent testingAgent = ReactAgent.builder()
.name("tester")
.model(chatModel)
.tools(new JUnitTool())
.build();
// 创建监督者
SupervisorAgent supervisor = SupervisorAgent.builder()
.model(chatModel)
.subAgents(List.of(codingAgent, testingAgent))
.build();
如果说 ReactAgent 提供的是"智能",Graph 引擎提供的则是"控制"。它是整个框架的运行时基础设施,在 Java 生态中扮演的角色类似于 Python 生态的 LangGraph——有向图编排运行时。
模式 | 控制方式 | 适合场景 |
|---|---|---|
ChatBot | LLM 自主决定 | 简单问答、闲聊 |
Workflow | 开发者定义流程,LLM 做分类决策 | 意图识别、审批流转 |
Agent | LLM 自主规划 + 工具调用 | 复杂推理、开放性任务 |
Graph 是所有这些模式的底层引擎。一个典型的 Graph 工作流代码如下:
// 1. 定义状态
public class WorkflowState implements GraphState {
private String userInput;
private String intent;
private String answer;
private List<String> intermediateSteps;
// getters/setters...
}
// 2. 构建工作流图
StateGraph graph = new StateGraph("customer_service", new WorkflowState())
.addNode("intent_classifier",
node_async(state -> llm.classifyIntent(state.getUserInput())))
.addNode("faq_handler",
node_async(state -> faqService.search(state.getUserInput())))
.addNode("escalate_to_human",
node_async(state -> ticketService.create(state)))
.addNode("response_formatter",
node_async(state -> formatResponse(state)))
// 定义流转
.addEdge(START, "intent_classifier")
.addConditionalEdges("intent_classifier", state -> {
return switch (state.getIntent()) {
case "FAQ" -> "faq_handler";
case "COMPLAINT" -> "escalate_to_human";
default -> "response_formatter";
};
})
.addEdge("faq_handler", "response_formatter")
.addEdge("escalate_to_human", "response_formatter")
.addEdge("response_formatter", END)
.compile();
// 3. 执行
WorkflowState result = graph.invoke(new WorkflowState(userInput));
• 条件路由:基于状态动态决定下一步,而不是硬编码的 if-else
• 并行分支:多个节点同时执行,适合多维度分析场景
• Human-in-the-Loop:关键节点暂停等待人工审批
• 检查点与恢复:支持状态快照,节点失败后可从断点继续
• 嵌套子图:将一个复杂子流程封装为可复用的子图
• 可视化导出:一键生成 PlantUML / Mermaid 图,文档即代码
DataAgent 是 Spring AI Alibaba 生态中的一个标杆子项目——它展示了如何用 Graph 引擎构建一个完整的企业级 AI 应用。
DataAgent 是一个区别于传统 Text-to-SQL 工具的智能数据分析师。它不仅能把自然语言转为 SQL,还能自动执行 Python 统计分析,生成包含 ECharts 图表的 HTML 报告。
核心工作流如下:

• 语义模型:配置"GMV"到 order_total_amount 的映射,业务人员用自然语言即可查数据
• 逻辑外键引擎:不侵入业务数据库,在元数据层定义表关

只读、行级权限注入、超时 10s 熔断、结果集上限 5000 行
• 多轮对话:追问"那按渠道拆分呢?"时,自动继承上一轮的时间范围和指标定义
根据佳杰云星技术团队公开的生产环境复盘数据(抽样 1000 条查询): - SQL 生成准确率:94.3% - 运营人员工单量下降:67% - 用户满意度:4.8/5.0
Demo 代码到生产应用的距离,往往比初学者想象的大得多。Spring AI Alibaba 在这方面做了一系列针对企业痛点的设计:
spring:
ai:
dashscope:
observation:
enabled: true
include-prompt: true # 记录完整 Prompt
include-completion: true # 记录完整响应
框架兼容 OpenTelemetry 标准,可接入多种可观测平台: - Langfuse:开源 LLM 可观测平台,支持成本统计与质量评估 - Zipkin / ARMS:分布式追踪系统 - 以及其他兼容 OpenTelemetry 的后端
MCP(Model Context Protocol)是 2025 年以来 AI 工具互联的标准协议。Spring AI Alibaba 不仅支持 MCP Client(调用外部 MCP Server),还提供了 MCP Server 的企业级管理能力:

• MCP Registry:MCP Server 启动时注册到注册中心,Agent 调用时自动发现可用服务
• MCP Gateway:统一入口,负责路由转发、负载均衡和故障转移
这套机制让 MCP Server 在微服务架构中获得了与普通微服务同

Agent 需要互相通信。A2A(Agent-to-Agent)协议解决了这个问题:
// 服务A中的 Agent 调用服务B中的 Agent
@A2AClient(serviceName = "order-intelligence-service")
public interface OrderIntelligenceAgent {
@A2AInvoke
String analyzeCustomerBehavior(CustomerBehaviorRequest request);
}
Prompt 模板不再硬编码在代码中,而是存储在配置中心(如 Nacos),支持运行时动态更新:
@RefreshScope
@RestController
public class CodeReviewController {
@Value("${code.review.prompt.template}")
private String codeReviewPromptTemplate;
}
运维人员可以在配置中心控制台实时调整 Prompt,无需重启服务即可生效。这对 A/B 测试和 Prompt 迭代极其重要。

注:模型定价以阿里云百炼官方实时报价为准(https://bailian.console.aliyun.com/),本处不做具体标价。
短时记忆(Chat Memory)的核心原则是"够用就好,不要无限增长":
ChatClient client = chatClientBuilder
.default

new MessageChatMemoryAdvisor(
new JdbcChatMemory(dataSource), // 持久化到数据库
chatMemory -> chatMemory
.windowSize(20) // 只保留最近 20 轮
.tokenLimit(8000) // Token 上限兜底
)
)
.build();
• ✅ Prompt 注入防护:对用户输入做敏感词过滤和指令剥离
• ✅ 工具调用白名单:只注册必要的 Tool,不暴露内部敏感接口
• ✅ SQL 注入防护:DataAgent 强制只读 + 行级权限 + 参数化查询
• ✅ 速率限制:通过 API Gateway 对 AI 接口做限流
• ✅ 成本告警:设置日消费上限,接入 Langfuse 监控 Token 消耗
• 连接池:使用 Spring AI 的连接池配置,复用 HTTP 连接
• 缓存语义:对 FAQ 类高频问题设置缓存,减少模型调用
• 异步化:非实时场景使用 @Async + CompletableFuture,提升吞吐
• 预热:应用启动时发送一次空请求,确保模型连接池就绪
Spring AI Alibaba 并非适合所有场景。以下是几个需要提前评估的边界情况:
适合的场景: - Java/Spring Boot 为主要技术栈的团队 - 需要多智能体编排或复杂工作流的业务 - 需要企业级可观测性、动态配置管理、权限管控和模型平台深度整合
需要慎重评估的场景: - 团队以 Python 为主要语言,AI 实验周期短——直接用 LangChain/LangGraph 生态更自然 - 模型选型以海外模型(如 OpenAI、Anthropic)为主——框架兼容 OpenAI 协议,但部分高级企业特性与特定模型及基础设施存在耦合,建议在选型前验证所需能力在目标模型上的可用性 - 纯前端或移动端轻量 AI 调用——不必引入全套 Spring Boot + Graph 引擎 - 对框架版本稳定性要求极高但不想跟随快速迭代——项目仍在活跃演进中,API 可能随版本发生变化
已知的工程注意事项: - Graph 引擎的检查点持久化依赖外部存储(如 Redis),引入前需评估运维成本 - 多智能体编排的 Token 消耗显著高于单次模型调用,需要做成本预估 - 当前版本(v1.1.2.x)的某些高级特性(如 A2A 通信)依赖特定的注册中心实现,团队需评估与现有服务治理体系的兼容性 - 框架文档以中文为主,英文资料相对有限,国际化团队可能遇到查阅障碍
Spring AI Alibaba 已经发展为一个完整的项目矩阵:
项目 | 定位 | GitHub |
|---|---|---|
spring-ai-alibaba | 核心框架 | https://github.com/alibaba/spring-ai-alibaba |
DataAgent | 智能数据分析师 | https://github.com/spring-ai-alibaba/DataAgent |
DeepResearch | 深度调研 Agent | 活跃开发中 |
Graph Engine | 工作流运行时 | 核心子模块 |
Admin/Studio | 可视化运维平台 | 内置集成 |
学习路径建议:
1. 入门:跑通 ChatBot 示例(https://github.com/alibaba/spring-ai-alibaba),理解 ChatModel/ChatClient
2. 进阶:实践 RAG 示例(https://github.com/springaialibaba/spring-ai-alibaba-examples),理解向量检索和混合检索
3. 高级:学习 Graph 工作流(http://java2ai.com/docs/frameworks/graph/)和多智能体(http://java2ai.com/docs/frameworks/agent-framework/advanced/multi-agent/)
4. 实战:部署 DataAgent(https://github.com/spring-ai-alibaba/DataAgent),体验完整的生产级 AI 应用
官方文档:http://java2ai.com
Spring AI Alibaba 的出现,让 Java 开发者不必再"望 AI 兴叹"。它的核心价值可以归纳为三点:
1. 极低的学习成本:Spring Boot 开发者不需要学 Python、不需要适应新框架范式,用熟悉的注解、依赖注入、配置管理就能构建 AI 应用。
2. 从 Demo 到生产的全链路:Agent 框架提供智能体编排,Graph 引擎提供确定性工作流,MCP 双端支持打通内外部工具生态,动态配置支持运行时 Prompt 调整,全链路可观测覆盖 Token 消耗和调用链追踪——这些构成了企业级 AI 应用的完整拼图。
3. 生态共赢:在 Spring AI 标准接口之上构建,与 Spring Boot 生态无缝集成;底层模型适配灵活,既可以接入 DashScope(通义千问),也兼容 OpenAI 协议的第三方模型;MCP 协议的原生支持让框架与外部工具生态互联互通。
对于正在规划 AI 转型的 Java 团队来说,Spring AI Alibaba 是一个值得重点评估的选择——它本身就是 Spring 技术栈的自然延伸,不需要从零学起新框架。
本文基于 Spring AI Alibaba v1.1.2.x 版本撰写。框架迭代活跃,建议参考官方文档(http://java2ai.com)获取最新信息。