概述
官网,Spring AI Alibaba是阿里云推出的面向Java开发者的开源(GitHub,10.7K Star,2.4K Fork)AI应用开发框架,简称SAA,基于Spring AI构建,旨在简化生成式AI应用的开发。深度集成了阿里云通义系列大模型及云原生基础设施,提供高层次的AI API抽象,帮助开发者快速构建智能化应用。官方文档。
主要特性:
- 模型交互与适配:支持文本、图像、语音等多模态输入输出,提供同步、异步及流式通信模式
- 提示词模板管理:通过提示词模板简化提示词的定义与动态替换
- 结构化输出:将非格式化的模型输出自动转换为JavaBean,确保数据格式一致性
- 函数调用:支持Function Calling,模型可调用预定义函数辅助完成任务
- RAG:结合向量数据库,实现上下文增强的模型交互
- 多轮对话支持:通过Chat Memory管理对话上下文,支持连续对话
核心功能
- ReactAgent:构建具有推理和行动能力的智能代理,遵循ReAct(推理+行动)范式,用于迭代解决问题
- 多代理编排:使用内置模式(包括SequentialAgent1、ParallelAgent、LlmRoutingAgent和LoopAgent)组合多个代理,以执行复杂任务
- 上下文工程:内置快速工程、上下文管理和对话流控制的最佳实践,以提高代理的可靠性和性能
- 人机协同:将人工反馈和审批步骤无缝集成到代理工作流程中,从而实现关键工具和操作的监督执行
- 流式传输支持:代理响应的实时流式传输
- 错误处理:强大的错误恢复和重试机制
- 基于图的工作流:基于图的工作流运行时和API,用于条件路由、嵌套图、并行执行和状态管理。可将工作流导出为PlantUML和Mermaid格式
- A2A支持:通过Nacos集成支持代理间通信,实现跨服务的分布式代理协调和协作
- 丰富的模型、工具和MCP支持:利用Spring AI的核心概念,支持多种LLM提供程序(DashScope、OpenAI等)、工具调用和MCP
原理

模块
从GitHub源码得知
以及
以下组件随SAA主仓库发布,版本与BOM中的SAA版本一致:
| BOM | spring-ai-alibaba-bom | 依赖管理,统一SAA各模块版本 | 同SAA主版本 |
| Agent Framework | spring-ai-alibaba-agent-framework | ReactAgent、多智能体编排、Hooks、Skills等 | 同BOM |
| Graph Core | spring-ai-alibaba-graph-core | 图工作流运行时、持久化、流式、MCP节点等 | 同BOM |
| Studio | spring-ai-alibaba-studio | 嵌入式Agent调试与可视化UI | 同BOM |
| Sandbox | spring-ai-alibaba-sandbox | Agent沙箱运行时 | 同BOM |
| Admin | spring-ai-alibaba-admin | 一站式Agent平台(可视开发、可观测、MCP管理) | 随主仓库发布 |
| Starter A2A Nacos | spring-ai-alibaba-starter-a2a-nacos | 基于Nacos的A2A通信 | 同BOM |
| Starter Config Nacos | spring-ai-alibaba-starter-config-nacos | 基于Nacos的动态配置与模型热更新 | 同BOM |
| Starter Graph Observation | spring-ai-alibaba-starter-graph-observation | Graph可观测性(Micrometer/OpenTelemetry) | 同BOM |
| Starter Builtin Nodes | spring-ai-alibaba-starter-builtin-nodes | 预置图节点(LlmNode、AgentNode等) | 同BOM |
Graph
一款面向Java开发者的工作流、多智能体框架。用于构建由多个AI模型或步骤组成的复杂应用。提供声明式的API来编排工作流,让开发者能将AI应用的各个步骤抽象为节点(Node),并通过有向图的形式连接这些节点,形成可定制的执行流程。
特性:
- 并行条件边、并行分支聚合策略AllOf、AnyOf
- 批量addEdge、interruptAfter钩子(Hook)
- AgentToolNode异步工具执行,returnDirect增强
- 流式节点完整输出
核心概念:
- StateGraph:状态图,用于定义节点和边;负责定义整个工作流的结构和执行逻辑。功能:
- addNode:添加各种处理节点
- addEdge:定义节点间的连接关系
- addConditionalEdges:设置条件分支逻辑
- 支持复杂的子工作流嵌套
- Node:节点,封装具体操作或模型调用;
- Edge:边,表示节点间跳转关系;路由类型:
- 直接路由:A节点完成后直接进入B节点
- 条件路由:根据处理结果选择不同的后续节点
- OverAllState:全局状态,贯穿流程共享数据
- CompiledGraph:已编译图,高效的执行引擎
使开发者能够方便地管理工作流中的状态和逻辑流转。
引入依赖
- implementation 'com.alibaba.cloud.ai:spring-ai-alibaba-graph:1.0.0.3'
- implementation 'com.alibaba.cloud.ai:spring-ai-alibaba-graph-core:1.0.0.4'
区别在于
Agent
ReactAgent集成Agent Skills能力,支持以技能为单位做可复用指令与上下文的渐进式披露,在相关任务时由智能体自动发现并按需加载,从而降低 token 消耗、扩展能力规模。
内置完善的智能体模式最佳实践(如Routing、Supervisor、Handoffs、Custom Workflow等),支持并行子智能体执行;新增Flow Agent统一Hooks、streamMessagesAPI、工具returnDirect、ToolContextHelper。
通过SkillRegistry(如FileSystemSkillRegistry或ClasspathSkillRegistry)管理技能,再使用SkillsAgentHook注册read_skill工具并将技能列表注入系统提示,即可在ReactAgent中使用:
SkillRegistry registry = FileSystemSkillRegistry.builder()
.projectSkillsDirectory(System.getProperty("user.dir") + "/skills")
.build();
SkillsAgentHook hook = SkillsAgentHook.builder()
.skillRegistry(registry)
.build();
ReactAgent agent = ReactAgent.builder()
.name("skills-agent")
.model(chatModel)
.saver(new MemorySaver())
.hooks(List.of(hook))
.build();
agent.call("请介绍你有哪些技能");
技能可与Python、Shell等工具配合:使用ShellToolAgentHook、PythonTool等,让Agent根据技能说明处理技能目录下的文件与脚本。通过groupedTools将工具与技能名绑定,可实现「仅当模型对该技能调用read_skill后,对应工具才加入当次请求」的渐进式工具披露。
更完整的Skills用法,包括:ChatClient、SkillPromptAugmentAdvisor、生产环境自动重载、自定义系统提示模板等。
多智能体模式
在工作流智能体上增强多智能体模式能力:LlmRouting、Supervisor等既可路由到单一子智能体,也可一次选择多个子智能体并并行执行,便于做多领域并行查询与结果汇总。
无论是单智能体还是多智能体,核心都在于上下文管理。多智能体在以下方面能带来明显收益:
- 上下文管理 :通过专职子智能体缩小单次上下文、降低延迟与Token消耗;子智能体拥有隔离的上下文空间。
- 子智能体并行执行:路由或主管模型可一次选出多个子智能体,并行执行后再做聚合。
适合引入多智能体的典型场景:单个Agent工具过多、部分任务需要专属知识/提示词或工具、需要按条件开启某子智能体能力等。
常见模式概览
| Supervisor(主管) | 主智能体协调子智能体(Agent As Tool);路由决策集中;子智能体无状态、可并行;上下文隔离 | 问题涉及多领域(如邮件、数据库);集中式工作流;需并行多任务 |
| Handoffs(交接) | 通过状态变量(如current_step)动态切换Agent;多轮间状态持久化;每步可直接响应用户 | 多步骤对话、客服(先收集保修再退款)等 |
| Skills(技能) | 能力以「技能」形式按需披露;Prompt驱动、轻量;适合单智能体扩展多能力 | 单智能体需多种技能、团队分技能开发维护 |
| Routing(路由) | 按领域拆解问题并分派;可单路或并行多子Agent;需汇总结果 | 多领域问答、并行查多领域知识并综合 |
| Sequential/Parallel/Loop(管道) | 如Sequential模式是指前一节点输出即下一节点输入;可任意组合多种模式 | 固定流程、RAG管道等 |
| CustomWorkflow | 自定义图结构(顺序、分支、循环、并行);可混合确定性逻辑与智能体节点 | 以上模式不满足时的完全自编排 |
Supervisor与LlmRouting已支持「一次选择多个子智能体并并行执行」,配合Graph的并行条件边与聚合策略(AllOf、AnyOf),可以更自然地实现多路并行与结果汇总。
实战
通过BOM统一版本,避免与Spring AI、Spring Boot冲突:
<dependencyManagement>
<dependencies>
<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>
<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-extensions-bom</artifactId>
<version>1.1.2.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-agent-framework</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
</dependency>
</dependencies>
引入核心依赖: implementation 'com.alibaba.cloud.ai:spring-ai-alibaba-starter-dashscope:1.0.0.4'
application.properties配置文件添加:spring.ai.dashscope.api-key=xxx
拓展
官方基于SAA的开源应用。
JManus
GitHub
DataAgent
GitHub
DeepResearch
GitHub
Copilot
GitHub
https://www.anthropic.com/engineering/building-effective-agents 几种工作流模式:
- 链式工作流:将复杂任务分解为有序的处理步骤
- 路由工作流:根据输入类型智能分发到专业处理节点
- 并行化工作流:多个AI节点同时处理,提高效率
- 编排者-工作者模式:动态任务分解和协作处理
- 评估者-优化者模式:迭代优化,追求完美输出

