LangGraph 同级节点之间修改数据先后问题

python 复制代码
...
...
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)

打印结果

arduino 复制代码
{'publicStr': 'startstart2222start1111'}

我试了调整fna 和 fnb 的顺序,注册先后顺序,给fnb 加延迟时间time.sleep(1),执行结果都没有变化, 后来我改变函数名字,例如,1_fnb 2_fna ,fn2 fn1 ,才返现了规律,执行顺序是根据名字的编码顺序先后执行的,编码数值小的先执行,跟注册顺序,执行先后没有关系 而且每个函数执行前就拿到了state的快照,同级函数修改结果对自己没有影响,同级函数都执行结束才统一修改state的值

相关推荐
irislinAmelia9 分钟前
缺陷检测AI关键点在哪
人工智能·嵌入式硬件·1024程序员节
Ai-_Man12 分钟前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
安托智造14 分钟前
MBD:从二维图纸到三维模型的制造革命(下)
大数据·人工智能·制造·mbd
火山引擎开发者社区14 分钟前
VeOps 深度调查:让 AI 排障从“能用”走向“可靠”
人工智能
梓豪csd15 分钟前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
王中阳Go20 分钟前
两个入口答案不一致先别调模型:6 行入口口径对账表(附脚本)
人工智能·后端·python·大语言模型·1024程序员节
武天旭33 分钟前
AI安全--AI大模型的隐私保护与法律法规
人工智能·安全
Solange__40 分钟前
影视预演怎么用AI生成3D场景?从分镜、Blockout到镜头交付的完整流程
人工智能·游戏·3d·ai·自然语言处理·aigc·游戏策划
冬奇Lab1 小时前
一次 Skill 评测的复盘:我推翻了一份现成的模型选型结论,然后自己造了个评测平台
人工智能·llm·agent
不脱发的程序猿2 小时前
纳指ETF量化策略
数据库·人工智能·1024程序员节