具体对应关系
# 1. 首先注册节点(定义节点) workflow.add_node("generate_chat_node", execute_chat_node) # ↑ 这里定义的节点名称 # 2. 然后为这个节点添加边(定义节点的出口) workflow.add_edge("generate_chat_node", END) # ↑ 这里引用同一个节点名称
完整示例
from langgraph.graph import StateGraph, END # 创建图 workflow = StateGraph(...) # 1. 定义节点函数 async def execute_chat_node(state): """聊天节点的具体实现""" print("执行聊天节点...") # 处理逻辑... state["response"] = "聊天回复内容" return state # 2. 注册节点:给节点一个名称,关联到具体函数 workflow.add_node("generate_chat_node", execute_chat_node) # ↑ 节点注册名称 ↑ 实际执行的函数 # 3. 添加条件边(节点间的路由) workflow.add_conditional_edges( "classifier", # 从classifier节点出发 self.decide_next_node, # 根据这个函数的返回值决定去哪 { "generate_chat_node": "generate_chat_node" # ↑决策返回值 ↑目标节点名称 #条件边中的 "generate_chat_node" 对应的是 add_node 中的节点名称 # 如果decide_next_node返回"generate_chat_node" # 就跳转到名为"generate_chat_node"的节点 } ) # 4. 为节点添加边(定义节点的出口) workflow.add_edge("generate_chat_node", END) # ↑ 节点名称 ↑ 终点 # 表示:当generate_chat_node节点执行完后,工作流结束
执行流程图示
开始
↓
[classifier节点] # 分析用户输入
↓
↓(根据decide_next_node的返回值)
├── 返回"public_sentiment_node" → [舆情节点] → END
├── 返回"hotline_12345_node" → [12345节点] → END
├── 返回"enterprise_risk_node" → [企业风险节点] → END
├── 返回"cross_analysis_node" → [交叉分析节点] → END
└── 返回"generate_chat_node" → [聊天节点] → END
↑
workflow.add_edge("generate_chat_node", END)
多个节点的边设置示例
# 通常每个业务节点都会有自己的结束边 workflow.add_edge("public_sentiment_node", END) # 舆情节点执行完 → 结束 workflow.add_edge("hotline_12345_node", END) # 12345节点执行完 → 结束 workflow.add_edge("enterprise_risk_node", END) # 企业风险节点执行完 → 结束 workflow.add_edge("cross_analysis_node", END) # 交叉分析节点执行完 → 结束 workflow.add_edge("generate_chat_node", END) # 聊天节点执行完 → 结束
更复杂的边设置
除了直接到 END,节点还可以连接到其他节点:
# 链式调用 workflow.add_edge("generate_chat_node", "review_node") # 聊天→审核 workflow.add_edge("review_node", "format_node") # 审核→格式化 workflow.add_edge("format_node", END) # 格式化→结束 # 条件分支 workflow.add_conditional_edges( "generate_chat_node", # 从聊天节点出发 decide_if_needs_review, # 决定是否需要审核 { "needs_review": "review_node", # 需要审核 → 审核节点 "direct_output": END # 直接输出 → 结束 } )
总结
workflow.add_edge("generate_chat_node", END) 中的 "generate_chat_node" 是指:
-
workflow.add_node("generate_chat_node", ...)中注册的节点名称 -
workflow.add_conditional_edges()中可能作为目标节点的名称 -
工作流中一个具体的处理单元
这条语句的意思是:当名为 "generate_chat_node" 的节点执行完毕后,工作流直接结束(跳转到 END)。
这是一种单出口设计,每个业务节点处理完后工作流就结束。也可以设计为多节点链式处理,根据业务需求灵活设置边的关系。
- THE END -
最后修改:2026年1月30日
非特殊说明,本博所有文章均为博主原创。