ai-agent框架spring ai/alibaba 原理源码分析(五) graph I 状态图

发布时间:2026/7/10 22:53:10

ai-agent框架spring ai/alibaba 原理源码分析(五) graph I 状态图 简介saa是java的ai agent框架本系列将深入剖析 Spring AI Alibaba 的源码实现与核心原理不仅可以指导agent的开发更可以改造框架增加新特性系列内容系列(一) 架构 完成系列(三) 调用I 工具 完成II MCP1 MCP MCP能力工具资源Promptssampling。。。springboot自动配置 完成2 分布式 MCP 注册和发现nacosgateway3 MCP securityIII skills 完成系列(四) RAG 完成I 知识库文档读取分块嵌入向量storeII 检索增强生成模块化混合检索融合重排系列(二) I 模型 model模型 完成chat模型消息提示词结构化输出记忆chat clientadvisor组件系列(五) graphI 图结构节点和边StateGraph外部介入 完成推理框架 graph映射: ReActrelectionCoTPlan-And-ExecuteII 图编译 CompiledGraph扁平化图结构邻接表结构 完成III 图执行响应式流执行检查点回溯/回放中断和恢复容错系列(六) agent及组件 ReactAgentAgentLlmNodeAgentToolNode钩子和拦截器记忆结构化输出系列(七) MASI MAS模式 flow模式 编排器-子智能体智能体团队数据交接II 分布式MAS远程通讯负载均衡注册发现容错系列(八) 观测I 观测组件(micrometer-observation), langfuse1I spring ai观测观测组件ChatClientChatModelIII spring ai alibaba观测 图观测系列(九) 评估 I spring ai 评估组件II spring ai alibaba admin可视化管理、数据集构建、线上链路数据复用III langfuse评估本文分析状态graph静态结构图构建based spring ai alibaba v1.1.2.2关键词缩写spring ai缩写saspring ai alibaba本文缩写saa参考资料概览 | Spring AI Alibaba spring ai alibaba官网文档https://docs.spring.io/spring-ai/reference/index.html spring ai官方文档SAA概览上图是saa原理源码分析场景视图每个包对应着saa/sa组件或特性是本文分析的目录model大模型的封装模型包括Chat嵌入audioimage等类型其中chat模型包括advisor组件提示词记忆等agent/graphagent/多agent和图紧密相关可以认为agent是一种既定的”图”形开发人员可以使用graph底层api直接构建graph使用agent获得既定的图形简化agent的开发外部调用(calling)工具MCPskillsRAG检索增强生成MASA2AFlowAgent子agnetagent Toolagent 集群studio简易的agent管理工具嵌入到agent带有agent面板列表agent提供chat界面用于调试agent是开发agent的便利工具admin管理台 agent的发布列表管理执行提示词工程评估和数据集观测graphgraph-core是saa的图组件以图的结构节点边构建处理流程节点执行动作边决定下一个节点对应的agentic是另一种模式整个流程大模型自主编排agentic省心省事但同时agentic容易失控纯粹看大模型心情因此目前比较好的方案主体使用flowable需要的时候使用agentic节点。spring ai alibabaagent的推理框架映射成graph多agent角色也映射成graph以图的节点承载执行逻辑边决定下一节点支持检查点保存执行状态实现执行的暂停和恢复应状态图本节分析状态图(StateGraph)的结构上图是图结构类图展示了一个用于构建复杂、有状态 AI 应用如 Agent 或工作流的框架结构。核心思想是通过定义节点Nodes、边Edges和状态State来编排执行流程。StateGraphC位是整个系统的中枢它负责管理和编排整个执行流程标准的图结构节点和边组成节点 (Nodes)Node: 节点接口/类。动作工厂: 每个节点关联一个ActionFactory该工厂负责创建具体的异步动作 AsyncNodeActionWithConfig动作是节点执行逻辑。AsyncNodeActionWithConfig是BiFunction 若设置action类型是NodeActionWithConfigAsyncNodeAction等function类型使用AsyncNodeActionWithConfig统一适配SubStateGraphNode: 一种特殊的节点它本身也包含一个 subGraph (子状态图)。这允许创建嵌套的、模块化的复杂工作流。编译图(CompiledGraph )也可以作为子节点实际是一样从编译图获取状态图边 (Edges)Edge: 图的一条边目标 (targets): 节点一个或多个出边 EdgeValueEdgeValue: 封装了边的信息二选一字符串: 节点的id简单路由指向一个节点EdgeCondition: 条件EdgeCondition: 条件决定了在特定状态下流程是否应该沿着这条边继续。动作 (acton): 条件的判断逻辑支持单值和多值返回action::AsyncCommandAction: 返回单个命令 (action::Command)。action::AsyncMultiCommandAction: 返回多个命令 (action::MultiCommand)实现并行或分支路由。映射关系 (mappings): 条件和节点的映射关系集例如X:_x_ EdgeCondition返回‘X’边走’_x_’节点设计有点晦涩难懂但提供灵活的边设计节点可有多出边出边可以简单的无条件激活可以有条件的激活(Command)也可以多个出边成一组根据条件并行激活MultiCommandOverAllState: 全局状态节点的动作边的动作都可使用StateSerializer负责OverAllState 的序列化对象后可保存AgentStateFactoryT: agent状态工程Function类型agent状态其实就是OverAllState因此T就是OverAllState类型 其实现是OverAllState::newKeyStrategyFactoryKeyStrategy工厂可以理解位provider提供KeyStrategyKeyStrategy定义了state的更改策略覆盖、追加、合并等推理框架推理框架是Agent 的“认知架构”或“思维方式”。它定义了 Agent 如何思考、规划、决策以及适应环境是一个结构化的流程常用的 ReAct、CoT、Reflection、Plan-and-Execute。可以认为,agent 推理框架 上下文 工具其中上下文包括系统提示词工具说明对话记忆用户提示词等可以看到agent的不可缺少是推理框架其他可以根据用户任务设置agent封装了特定框架在saa推理框架映射成特定”图”型。上节分析了图模型下面分析agent的推理框架映射成graphRelectionReflection反思是一种 AI 自我评估、优化自身输出的范式。Reflection 聚焦于内部自我批判和迭代改进——让模型扮演生成者和评审者双重角色通过多轮自我优化提升输出质量Reflection循环一般包含生成阶段 (Generation)模型根据指令生成初始输出反思阶段 (Reflection)模型或另一个模型实例对输出进行批判性评估优化阶段 (Refinement)回到同生成阶段基于反思结果改进输出迭代控制设置最大轮次直到质量达标或达到上限saa的示例包包括一个Reflection示例看看怎样构建反思框架的图上图ReflectAgent构建图上图是对应的流程图原来的generate节点名称是“graph”改成“generate”,可以看到边的条件前面的generateCount”生成”的计数超过最大迭代stop后面的检查生成的质量使用打分给出评价决定是否stop。ReActReActReasoning Acting是一个“思考 →行动 →观察 →再思考”的闭环流程。它让大语言模型LLM不再是只靠内部知识“空想”而是能在需要时调用外部工具Tool获取信息再基于这些新信息进行下一步推理直到最终完成任务。saa实现了react示例用ReactAgent实现带天气查询工具回答天气相关的问题如查询天气并推荐活动下面以saa graph包的react示例分析上图ReactAgent生成的图注意到没有观察节点ReactAgent model节点和观察节点合并工具返回到model节点第二轮模型调用同时实现观察的职能有3点要注意1 InstructionAgentHook节点是内置的hook节点处理指令设置2 model节点到工具节点的条件有返回model的选项这个是留给afterModel hook应该是设计人员给hook实现的一个后门3 上图工具节点有到End的选项但条件逻辑下图系列-工具介绍过工具returnDirect设置true直接返回应用false 返回给大模型这里显然要返回给大模型观察代码有点纠结无视了ReturnDirect但破坏了工具的设置上图增加model节点即负责思考的节点接着增加工具节点执行思考节点需要执行的行动上图两个关键边model节点到工具节点工具节点到model节点边条件设置这里重点分析图构建不深入分析里面的逻辑在系列-agent深入分析注意条件与节点映射集在没有hook节点的情况loopExitNodeloopEntryNode都是model节点exitNode是End节点CotCoT思维链Chain of Though是一种提示工程Prompt Engineering技术通过引导大语言模型LLM在给出最终答案之前先生成一系列中间推理步骤从而显著提升模型在复杂逻辑、数学计算和常识推理任务中的表现。下面以示例分析Cot上图Cot生成的图带自我反思与修正上图是Cot图构建plan and executePlan-and-Execute规划与执行是一种专为解决复杂、多步骤任务而设计的 AI Agent架构范式其核心思想是将“思考”与“行动”解耦先由规划器制定全局路线图再由执行器按步骤逐一落实从而避免传统 ReAct模式在长任务中容易出现的逻辑跑偏、无限循环和上下文爆炸等问题。下面以示例分析Plan and Execute上图Plan and Execute生成的图上图是PE图构建总结Reflection适用做好一件事如写论文反复打磨(论文)直到达到要求ReAct适用做完一件事思考确定下一步动作观察再思考确定下一步一步步完成事情多agent图单个agent推理框架以图结构支持多agent的拓扑也是图支持本节以flow agent的并行agent为例分析多agent图映射首先介绍一下flow agent的构建作为分析图构建的前置知识上图flow agent图构建类图每个flow有自己的构建策略抽象策略负责公用部分START节点END节点还有hook节点hook作为节点本文分析聚焦多agent拓扑图结构不涉及hook部分ParallelAgent并行执行模式多个Agent同时处理相同的输入结果被收集合并输出流程输入同时发送给所有Agent所有Agent并行处理结果被合并成单一输出下面分析ParallelAgent的图构建上图是并行agent的图构建逻辑1of2增加聚合节点多个并行节点结果合并为一个结果并行start节点上图是并行agent的图构建2of24 并行的子agent作为节点子agent的内部graph作为子图子agent的节点向前连接并行start节点向后连接聚合节点5/6 聚合节点连接END节点上图是并行flow生成的图内部是ReactAgent的图flow的子图总结Spring AI Alibaba Graph 作为一个低级别的工作流和多智能体编排框架其核心优势在于将“单智能体的深度推理”与“多智能体的宏观拓扑调度”进行了完美的融合。它既提供了支撑 Agent 思考与执行的微观节点能力又构建了宏观的多 Agent 协作图结构。agentic模式下图结构可以记录大模型决策观测大模型整个决策分布式agent图也作为执行图共享集群的agent一张图下协调工作。

相关新闻