边
边定义了逻辑的路由方式以及图如何决定停止。
一个节点可以有多条出边。如果一个节点有多个出边,那么所有这些目标节点将作为下一个超级步的一部分并行执行。
普通边
如果一直想从节点A到节点B,可以直接使用 add_edge
方法
graph.add_edge("node_a", "node_b")
条件边
如果想有选择地路由到一条或多个节点上,可以使用 add_conditional_edges
,此方法接受一个节点的名称和一个在该节点执行后调用的“路由函数”
graph.add_conditional_edges("node_a", routing_function)
与节点类似,routing_function
接受图的当前 state
并返回一个值。
默认情况下,routing_function
的返回值是要将状态发送到的下一个节点的名称(或节点列表)。所有这些节点将作为下一个超级步的一部分并行运行。
def routing_function(state: State):
if xx:
return ["node_b", "node_c"]
return "node_d"
可以选择性地提供一个字典,将 routing_function
的输出映射到下一个节点的名称。
def routing_function(state: State):
if xx:
return True
else:
return False
graph.add_conditional_edges(
"node_a",
routing_function,
{True: "node_b", False: "node_c"}
)