LangGraph 的边(Edges) 在 LangGraph 中边Edge是连接节点Node的路径定义了工作流的执行顺序和逻辑流向。边决定了从一个节点执行完毕后下一步应该去哪个节点。一、边的类型LangGraph 提供了两种主要的边边类型作用适用场景普通边Normal Edge固定的、无条件的跳转A 执行完 → 总是去 B条件边Conditional Edge根据条件动态选择下一个节点根据状态的值决定下一步去哪二、普通边Normal Edgefrom langgraph.graph import StateGraph, END # 创建图 graph StateGraph(State) # 添加节点 graph.add_node(node_a, node_a_function) graph.add_node(node_b, node_b_function) # 添加普通边node_a 执行完 → node_b graph.add_edge(node_a, node_b) # 从 node_b 到 END结束 graph.add_edge(node_b, END) # 设置入口点 graph.set_entry_point(node_a)执行流程特点确定性的没有分支总是按固定路线执行。三、条件边Conditional Edgefrom langgraph.graph import StateGraph, END graph StateGraph(State) # 添加节点 graph.add_node(check_condition, check_function) graph.add_node(process_true, true_function) graph.add_node(process_false, false_function) # 条件边check_condition 执行后根据返回值决定去哪个节点 def route_condition(state): if state[condition]: return process_true else: return process_false graph.add_conditional_edges( check_condition, # 源节点从哪个节点出发 route_condition, # 路由函数返回一个字符串目标节点名 { # ③ 映射表返回值 → 真实节点名 process_true: process_true, # 返回 process_true → 去 process_true process_false: process_false, # 返回 process_false → 去 process_false } ) graph.set_entry_point(check_condition)备注也可以不写映射表让路由函数直接返回真实节点名执行流程四、边的函数形式1. 普通边函数# add_edge 直接接受节点名称 graph.add_edge(node_a, node_b)2. 条件边函数# 路由函数接收 state返回字符串 def router(state): if state[messages][-1].type error: return handle_error elif state[is_complete]: return summarize else: return continue_work graph.add_conditional_edges( think_node, router, { handle_error: error_node, summarize: summary_node, continue_work: next_node } )3. 列表形式的路由器# 也可以直接返回目标节点列表 graph.add_conditional_edges( split_node, lambda state: [branch_a, branch_b] if state[parallel] else [branch_a], { branch_a: branch_a_node, branch_b: branch_b_node, } )五、特殊边START 和 END特殊节点作用START图的入口从 START 连接到第一个节点END图的出口连接到 END 后图执行结束# 设置入口节点 graph.set_entry_point(first_node) # 等价于添加 START → first_node # 终止执行 graph.add_edge(last_node, END)六、与节点Node的对比概念作用示例节点Node做事情执行函数调用 LLM、执行工具、处理数据边Edge决定走哪条路控制流A → B、A → B/C/D