跳转到内容
Spring AI Alibaba 1.0 GA 版本正式发布,开启 Java 智能体开发新时代!点此了解

此页面或文档已过期,请点击链接跳转到新页面。

前往新页面 →

什么是 Spring AI Alibaba Graph

此页面或文档已过期,请点击链接跳转到新页面。

前往新页面 →

Graph 模块文档持续更新中,请关注文档发布进展

Spring AI Alibaba Graph 是社区核心实现之一,也是整个框架在设计理念上区别于 Spring AI 只做底层原子抽象的地方,Spring AI Alibaba 期望帮助开发者更容易的构建智能体应用。基于 Graph 开发者可以构建工作流、多智能体应用。Spring AI Alibaba Graph 在设计理念上借鉴 Langgraph,因此在一定程度上可以理解为是 Java 版的 Langgraph 实现,社区在此基础上增加了大量预置 Node、简化了 State 定义过程等,让开发者更容易编写对等低代码平台的工作流、多智能体等。

Graph 速览

框架核心概念包括:StateGraph(状态图,用于定义节点和边)、Node(节点,封装具体操作或模型调用)、Edge(边,表示节点间的跳转关系)以及 OverAllState(全局状态,贯穿流程共享数据)。这些设计使开发者能够方便地管理工作流中的状态和逻辑流转。

以下代码片段是使用 Graph 开发的一个多智能体架构示例(摘自 Spring AI Alibaba DeepResearch 实际实现):

StateGraph stateGraph = new StateGraph("deep research", keyStrategyFactory,
new DeepResearchStateSerializer(OverAllState::new))
.addNode("coordinator", node_async(new CoordinatorNode(chatClientBuilder)))
.addNode("background_investigator", node_async(new BackgroundInvestigationNode(tavilySearchService)))
.addNode("planner", node_async((new PlannerNode(chatClientBuilder))))
.addNode("human_feedback", node_async(new HumanFeedbackNode()))
.addNode("research_team", node_async(new ResearchTeamNode()))
.addNode("researcher", node_async(new ResearcherNode(researchAgent)))
.addNode("coder", node_async(new CoderNode(coderAgent)))
.addNode("reporter", node_async((new ReporterNode(chatClientBuilder))))
.addEdge(START, "coordinator")
.addConditionalEdges("coordinator", edge_async(new CoordinatorDispatcher()),
Map.of("background_investigator", "background_investigator", "planner", "planner", END, END))
.addEdge("background_investigator", "planner")
.addConditionalEdges("planner", edge_async(new PlannerDispatcher()),
Map.of("reporter", "reporter", "human_feedback", "human_feedback", "planner", "planner",
"research_team", "research_team", END, END))
.addConditionalEdges("human_feedback", edge_async(new HumanFeedbackDispatcher()),
Map.of("planner", "planner", "research_team", "research_team", END, END))
.addConditionalEdges("research_team", edge_async(new ResearchTeamDispatcher()),
Map.of("reporter", "reporter", "researcher", "researcher", "coder", "coder"))
.addConditionalEdges("researcher", edge_async(new ResearcherDispatcher()),
Map.of("research_team", "research_team"))
.addConditionalEdges("coder", edge_async(new CoderDispatcher()), Map.of("research_team", "research_team"))
.addEdge("reporter", END);

核心功能

  • 支持 Multi-agent,内置 ReAct Agent、Supervisor 等常规智能体模式
  • 支持工作流,内置工作流节点,与主流低代码平台对齐
  • 原生支持 Streaming
  • Human-in-the-loop,通过人类确认节点,支持修改状态、恢复执行
  • 支持记忆与持久存储
  • 支持流程快照
  • 支持嵌套分支、并行分支
  • PlantUML、Mermaid 可视化导出