最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
LangGraph 同级节点的数据修改顺序解析
时间:2026-09-14 10:24:01 编辑:袖梨 来源:一聚教程网
在 LangGraph 中让多个节点从 START 同时分支后,节点的运行表现可能与普通的顺序函数调用不同。即使调整注册先后或为其中一个函数增加延迟,最终状态仍可能保持不变。要解释这一现象,需要结合节点调度、状态快照和更新合并方式,分析同级节点究竟如何读取与修改数据。
...
...
import time
class PubState(TypedDict):
publicStr: Annotated[str, operator.add]
def fna(state: PubState):
v2 = state["publicStr"] +"2222"
print('a',state["publicStr"])
return {
"publicStr": v2
}
def fnb(state: PubState):
time.sleep(1)
v1 = state["publicStr"] +"1111"
print('b',state["publicStr"])
return {
"publicStr": v1
}
builder=StateGraph(PubState)
builder.add_node("fn1",fna)
builder.add_node("fn2",fnb)
builder.add_edge(START, "fn1")
builder.add_edge(START, "fn2")
graph=builder.compile()
res=graph.invoke({"publicStr":"start"})
rprint(res)
打印结果
{'publicStr': 'startstart2222start1111'}
我试了调整fna 和 fnb 的顺序,注册先后顺序,给fnb 加延迟时间time.sleep(1),执行结果都没有变化, 后来我改变函数名字,例如,1_fnb 2_fna ,fn2 fn1 ,才返现了规律,执行顺序是根据名字的编码顺序先后执行的,编码数值小的先执行,跟注册顺序,执行先后没有关系 而且每个函数执行前就拿到了state的快照,同级函数修改结果对自己没有影响,同级函数都执行结束才统一修改state的值
相关文章
- myfreemp3音乐网站最新网址链接-myfreemp3在线音乐免费地址入口分享 11-04
- myfreemp3音乐网站网址链接-myfreemp3在线音乐网站地址入口 11-04
- 非主流时尚爱情图片 11-03
- 拼多多商家登录-拼多多商家网页版登录入口 11-03
- DeepSeek-网页版官方入口 11-03
- qq邮箱网页版登录入口-qq邮箱官网直接访问地址 11-03