START 与 END:图的入口和出口节点
个人主页 for_ever_love__ 欢迎各位大佬莅临其他栏目: 大模型开发从0到1 其他栏目: iOS项目总结大全 其他栏目: 我想学python了 其他栏目: iOS UI 文章目录START 与 END图的入口和出口节点一、START图的入口二、END图的出口三、为什么需要这两个虚拟端点四、一个完整小图START 与 END图的入口和出口节点每张 LangGraph 图都有两个特殊的端点START和END。它们不是你注册的节点而是框架预留的「虚拟节点」专门用来标记一张图的入口和出口。一、START图的入口START代表「这张图的开始」。你做的第一件事通常是把某个真实节点连到START上graph.add_edge(START,first_node)意思是一旦app.invoke(...)被调用执行就从START流到first_node。你不能往START里写节点函数它只是个「从哪里出发」的标记。也可以让START直接连到条件边实现入口即分流graph.add_conditional_edges(START,entry_router,[a,b])二、END图的出口END代表「这张图到此结束」。任何一个节点跑完如果连到了END整个图就停在这里并把当前状态作为最终结果返回graph.add_edge(last_node,END)没有连到END的节点执行到它就会「悬空」——图不知道接下来去哪通常会被认为是不完整的图取决于是否还有其他出边。三、为什么需要这两个虚拟端点统一入口解耦调用方调用方永远只说「从 START 开始」不用关心第一个真实节点叫什么重命名节点不影响入口声明。明确终止避免死循环只有显式连到END的路径才会停。配合条件边你可以让某些分支「打到 END 结束」另一些分支「回到中间节点循环」终止条件因此变得清晰可控。可视化友好Studio 把START/END画成图的首尾一眼看清整条链路。四、一个完整小图fromtypingimportTypedDictfromlanggraph.graphimportStateGraph,START,ENDclassState(TypedDict):n:intdefinc(state:State)-State:return{n:state[n]1}graphStateGraph(State)graph.add_node(inc,inc)graph.add_edge(START,inc)graph.add_edge(inc,END)appgraph.compile()print(app.invoke({n:0}))# {n: 1}这张图只有一个真实节点inc但它依然要有START → inc → END这条完整链路才算一张「闭合的图」。记住一句话真实节点负责「做事」START/END 负责「划界」。先把入口和出口钉死再往中间填节点图就不会跑偏。