Workflow 编排:StateGraph 图路由与 Sequential 线性链

Workflow 编排:StateGraph 图路由与 Sequential 线性链 由 Archify 生成的架构图。 调用方宿主 · workflow.run(session, req) · 架构组件 调用方宿主 workflow.run(session, req) 构建 API · addNode·addEdge·condEdges·start · 架构组件 · api 构建 API addNode·addEdge·condEdges·start api StateGraphWorkflow · executeGraph 循环 · resolveNext · workflow 编排层(复用 Agent session,非独立运行时) · engine StateGraphWorkflow executeGraph 循环 · resolveNext engine WorkflowContext · 共享 k/v · session · lastResult · workflow 编排层(复用 Agent session,非独立运行时) · state WorkflowContext 共享 k/v · session · lastResult state AgentNode · RuntimeAgentNode · 自定义节点 · workflow 编排层(复用 Agent session,非独立运行时) · node AgentNode RuntimeAgentNode · 自定义节点 node Agent Session · 复用完整 ReAct 循环 · 架构组件 Agent Session 复用完整 ReAct 循环 resolveNext 路由 · StateRouter · routeMap · Condition · workflow 编排层(复用 Agent session,非独立运行时) · engine resolveNext 路由 StateRouter · routeMap · Condition engine 下一节点 / 结束 · nodeId 循环 · null 终止 · 架构组件 下一节点 / 结束 nodeId 循环 · null 终止 SequentialWorkflow · 线性链变体(无分支) · workflow 编排层(复用 Agent session,非独立运行时) · engine SequentialWorkflow 线性链变体(无分支) engine run / runStream 图定义(节点+边+起点) ① execute/Stream → AgentResult session.run(request) ② resolveNext ③ nodeId / null 结束 ④ currentNodeId·lastResult 读写 workflow 编排层(复用 Agent session,非独立运行时) 图例 后端 数据库 外部系统

两种编排风格

  • • SequentialWorkflow:addNode 线性链,依次执行;StateGraphWorkflow:节点+固定边+条件边的图,可循环(StateGraphWorkflow.java:96-120)
  • • maxSteps=0 不限步数;图在 resolveNext 返回 null 时终止,lastResult 即最终输出

路由优先级

  • • 先匹配 conditionalEdges:StateRouter.route(ctx,req,res) → routeMap 映射到 nodeId;全部落空才走 transitions(:122-149)
  • • 固定边可带 StateCondition.matches 守卫;outputText 自动成为下一节点的 input

节点复用 Agent

  • • RuntimeAgentNode.execute → session.run(request):节点就是完整 Agent 循环(模型+工具+memory),不是简化调用(RuntimeAgentNode.java:14-24)
  • • WorkflowContext 跨节点共享 k/v 与 session;流式节点实现 WorkflowResultAware 才能拿到 lastResult