Spring AI Alibaba Graph 是 Spring AI Alibaba 框架的核心组成部分,一个用于构建工作流和多智能体应用的高阶抽象框架。它借鉴了 LangGraph 的设计理念,并在此基础上针对 Java 生态和企业级生产需求进行了增强和扩展。

前面已经完成了示例工作流的配置,现在就可以在本地运行这个工作流应用了。
一、创建REST控制器这是一个基于Spring Boot的REST控制器,提供客户服务聊天功能,核心是通过AI工作流图处理用户查询。
工作流执行步骤:
1. QuestionClassifierNode - 对输入文本进行AI分类
2. FeedbackQuestionDispatcher - 根据分类结果决定执行路径
3. RecordingNode - 记录处理结果并生成最终解决方案

HTTP映射:响应 GET /customer/chat 请求
工作流调用:
Map.of("input", query) - 将查询文本作为输入传递compiledGraph.invoke() - 执行完整的AI工作流.get() - 获取异步执行结果.value("solution") - 提取solution.toString() - 转换为字符串返回二、启动应用并测试确保已在配置文件中设置模型所需的密钥,然后启动 Spring Boot 应用。应用启动日志中应能看到工作流PlantUML信息(Customer Service Workflow UML)。如果使用的是 OpenAI 模型,在首次调用时可能下载模型的 API 描述;使用阿里云模型则需要确保网络能访问 DashScope 服务。
示例应用通过 CustomerServiceController 将工作流暴露为 REST 接口。在浏览器或Postman 中调用以下 GET 请求即可触发流程:

上述请求中的 query 参数就是用户反馈文本。对于一个正面反馈示例,工作流会判定为正面评价,直接记录结论。
再测试一个负面反馈例子:http://localhost:8080/customer/chat?query=客服态度不友好呀。输出结果如图所示:

由于这是负面评价,工作流首先会分类为 negative,然后在具体分类节点可能将其归类为“售后服务”问题,最后记录这一结论。接口返回的字符串将包含具体问题类别(after-sale service)。
在应用控制台日志中,可以看到每一步执行的记录信息。例如,当反馈为正面时,RecordingNode 会输出日志“Received positive feedback: …”,负面反馈则输出“Received negative feedback: …”,这有助于开发调试了解流程走向。同时,由于给 ChatClient 配置了 SimpleLoggerAdvisor,与模型交互的提示词和回复也会简要记录,方便查看大模型决策过程。
2025-09-20T18:34:02.564+08:00 INFO 27953 --- [simple-graph] [nio-8080-exec-7] c.r.e.s.w.FeedbackQuestionDispatcher :ifierOutput: ```json
{"keywords": ["客服", "态度", "不友好"], "category_name": "negative feedback"}
```
2025-09-20T18:34:03.535+08:00 INFO 27953 --- [simple-graph] [nio-8080-exec-7] c.r.e.s.w.SpecificQuestionDispatcher :ifierOutput: ```json
{"keywords": ["客服", "态度", "不友好"], "category_name": "after-sale service"}
```
2025-09-20T18:34:03.536+08:00 INFO 27953 --- [simple-graph] [nio-8080-exec-7] c.r.e.s.workflow.RecordingNode : Received negative feedback: ```json
{"keywords": ["客服", "态度", "不友好"], "category_name": "after-sale service"}
```
通过以上测试,验证了工作流应用的正确性。
三、预置节点Spring AI Alibaba Graph 中提供大量预置节点,这些节点可以对标到市面上主流的如 Dify、百炼等低代码平台,方便用户快速串联工作流应用。典型节点包括 LlmNode(大模型节点)、QuestionClassifierNode(问题分类节点)、ToolNode(工具节点)等,为用户免去重复开发、定义的负担,只需要专注流程串联。

Spring AI Alibaba Graph 开源项目中预置的节点包括:
AgentNode: 支持Agent节点。AnswerNode: 支持答案节点。AssignerNode: 支持分配器节点。DocumentExtractorNode: 支持文档提取节点。HttpNode: 支持HTTP节点。HumanNode: 支持人类节点。流程暂停,等待外部(如用户)输入或决策,实现 Human-in-the-loop 机制。IterationNode: 支持迭代节点。KnowledgeRetrievalNode: 支持知识检索节点。用于构建知识库问答系统。ListOperatorNode: 支持列表操作节点。LlmNode: 支持LLM节点。封装了对大语言模型(如通义千问)的调用,支持同步和流式响应。McpNode: 支持MCP节点。ParameterParsingNode: 支持参数解析节点。QuestionClassifierNode: 支持问题分类节点。TemplateTransformNode: 支持模板转换节点。ToolNode: 支持工具节点。允许智能体执行外部工具,例如计算器、数据库查询、API调用等,扩展了智能体的能力边界。VariableAggregatorNode: 支持变量聚合节点。