欢迎光临
我们一直在努力

Spring AI Alibaba

概述

官网,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版本一致:

组件/模块artifactId说明版本约定
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节点同时处理,提高效率
  • 编排者-工作者模式:动态任务分解和协作处理
  • 评估者-优化者模式:迭代优化,追求完美输出
赞(0)
未经允许不得转载:171主机测评 » Spring AI Alibaba
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址