Spring AI Alibaba Graph Workflow快速入门示例-创建示例项目

内容分享2小时前发布
0 1 0

Spring AI Alibaba Graph 是一款面向 Java 开发者的工作流、多智能体框架,用于构建由多个 AI 模型或步骤组成的复杂应用。

它基于 Spring Boot 生态进行深度集成,提供声明式的 API 来编排工作流,让开发者能将 AI 应用的各个步骤抽象为节点(Node),并通过有向图(Graph)的形式连接这些节点,形成可定制的执行流程。

与传统单 Agent(一问一答式)方案相比,Spring AI Alibaba Graph 支持更复杂的多步骤任务流程,有助于解决单一大模型对复杂任务力不从心的问题。框架核心包括:StateGraph(状态图,用于定义节点和边)、Node(节点,封装具体操作或模型调用)、Edge(边,表明节点间的跳转关系)以及 OverAllState(全局状态,贯穿流程共享数据)。这些设计使开发者能够方便地管理工作流中的状态和逻辑流转。

Spring AI Alibaba Graph Workflow快速入门示例-创建示例项目

Spring AI Alibaba Graph Workflow快速入门示例-创建示例项目

专栏

智能体Agent和MCP轻松入门

作者:软件架构

19.9币

54人已购

查看

一、核心概念与类

StateGraph(状态图/工作流图) 定义整个工作流的主类。 支持添加节点(addNode)、边(addEdge、addConditionalEdges)、条件分支、子图等。 可校验图结构,最终编译为 CompiledGraph 以供执行。

Node(节点) 表明工作流中的单个步骤(如模型调用、数据处理等)。 支持异步节点,可封装大模型调用或自定义逻辑。

Edge(边) 表明节点之间的转移关系。 支持条件分支(根据状态决定下一个节点)。

OverAllState(全局状态) 可序列化的全局状态对象,贯穿整个工作流。 支持按 key 注册不同的合并/更新策略(如替换、合并等)。 用于数据传递、断点续跑、人工干预等。

CompiledGraph(已编译图)是 StateGraph 的可执行版本。 负责实际的节点执行、状态流转、结果流式输出。 支持中断、并行节点、检查点等高级特性。

二、典型使用流程

定义 StateGraph:在 Spring 配置类中定义 StateGraph bean,添加各节点(如模型调用、业务逻辑),用边连接。

配置全局状态:通过 OverAllStateFactory 定义初始状态及 key 策略。

执行:编译为 CompiledGraph,驱动状态在节点和边之间流转,条件逻辑决定路径。

集成:一般通过 REST Controller 或 Service 暴露为接口。

三、创建简单示例

要快速体验 Spring AI Alibaba Graph,可以基于官方提供的 WorkflowAutoconfiguration 示例搭建一个完整的工作流应用。下面将以“客户评价处理系统”为例,介绍从项目依赖到运行测试的主要步骤。

Spring AI Alibaba Graph Workflow快速入门示例-创建示例项目

1. 添加依赖与配置模型

在 Spring Boot 项目的 Maven pom.xml 中引入 Spring AI Alibaba 的 BOM 以及所需的 Starter 依赖。如引入阿里百炼大模型 DashScope 的 Starter(或选择 OpenAI Starter,具体取决于所用模型平台)。

<properties>
 <!-- 设定编译所用的 Java 版本(与 Spring Boot 3.5.* 兼容:要求 17+) -->
 <java.version>17</java.version>
</properties>

<dependencies>
 <!-- Spring Web:提供嵌入式 Tomcat 与 MVC / REST 能力 -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

 <!-- 阿里云 DashScope 大模型接入 Starter(封装 ChatModel、ChatClient 等) -->
 <dependency>
 <groupId>com.alibaba.cloud.ai</groupId>
 <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
 </dependency>

 <!-- AI 工作流 / 状态图核心库(StateGraph、CompiledGraph 等) -->
 <dependency>
 <groupId>com.alibaba.cloud.ai</groupId>
 <artifactId>spring-ai-alibaba-graph-core</artifactId>
 </dependency>

 <!-- 测试依赖:包含 JUnit、Assert、Mock 支持(仅 test 作用域) -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <scope>test</scope>
 </dependency>
 </dependencies>

 <dependencyManagement>
 <dependencies>
 <!-- 统一管理 spring-ai-alibaba 相关组件版本,避免逐个声明 -->
 <dependency>
 <groupId>com.alibaba.cloud.ai</groupId>
 <artifactId>spring-ai-alibaba-bom</artifactId>
 <version>1.0.0.3</version>
 <type>pom</type>
 <scope>import</scope>
 </dependency>
 </dependencies>
 </dependencyManagement>

组件版本可以选择 <version>1.0.0.3</version> 或者 <version>1.0.0.2</version>。

添加依赖后,在项目的 application.properties 中配置模型 API 密钥。例如使用阿里 Qwen 模型时配置 DashScope 服务的访问密钥(如
spring.ai.dashscope.api-key=<您的API密钥> 。

spring.application.name=simple-graph
spring.ai.dashscope.api-key=${DASHSCOPE_API_KEY}

这些配置确保 Spring AI 能自动创建所需的 ChatModel Bean,用于与对应的模型服务通信。

接下来的核心工作是创建工作流StateGraph。

Spring AI Alibaba Graph Workflow快速入门示例-创建示例项目

Spring AI Alibaba Graph Workflow快速入门示例-创建示例项目

专栏

Spring AI MCP开发示例

作者:软件架构

19.9币

2人已购

查看

#秋日生活打卡季##NL2SQL#

© 版权声明

相关文章

1 条评论

  • 头像
    乡土叁农 读者

    收藏了,感谢分享

    无记录
    回复