此页面或文档已过期,请点击链接跳转到新页面。
前往新页面 →什么是 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 可视化导出