当节点返回 None 或 {} 时, stream_mode="values" 会跳过一步,而 "updates" 则会发送此值
作者: siddharthgaur1创建于 2026年8月21日更新于 2026年9月16日
标签external
Pregel.stream' /.astream'的文件串将两种模式记录如下:
- `价值': 在每个步骤后释放状态中的所有值,包括中断.
- `更新': 只发送节点或任务名称以及每个步骤后由节点或任务返回的更新.
都说"每一步后". 在实践中,当一个节点返回“无”或“Q”时,他们不同意采取多少步骤:更新'表示该节点的一个块,价值'表示一无所有。
- 重现
没有LLM 没有网络:
从打入中导入
从操作员导入添加
从 ZZTERM0.Graph 导入国
从 LangGraph. checkpoint. memory 从记忆保护导入
S类( TypedDict) :
步骤:附加说明[列表,加]
n: 单位
dif a(s):返回{"步骤": ["a"],"n": s ["n"]+ 1}
df b(s):返回{"步骤": ["b"],"n": s ["n"]+ 1}
df 中点: 返回无 相同的结果 。
g = 国文(S)
g.add node ("a", a); g.add node ("中间", 中); g.add node ("b", b)
g.add edge(START,"a"; g.add edge ("a","mid"); g.add edge ("mid","b"); g.add edge ("b","END")
app = g. compile( 检查点 = InmemorySaver ())
print(list(app.stream ({"steps"): [], "n": 0}, {"可配置": {"thread id":"u"}}, stream mode="updates")).
print(list(app.stream ({"steps"):[],"n":0},{"可配置":{"thread id":"v"}},流 mode="值")).观察
更新: [{'a': {'steps': ['a'],"n': 1}}, {'mid': 无',"b": {'steps": ['b'],"n': 2}}]
值 : [{'步': [], 'n': 0}, {'步': ['a'], 'n': 1}, {'步': ['a','b','n': 2}]更新'有三条(a'、mid'、b')。 价值 ' 有三项(最初,在a'之后,在b'之后),中间 ' 步骤是没有的。 因此,通常的无变相'len(值) == == (updates) + 1' 站不住脚,它默默地失败了:没有迹象表明一个视图中缺少了一步.
以"stream mode= ["updates","values"]表示的同一种不对称表现为不均匀的间叶而不是严格的交替:
值、更新、价值、更新、更新、价值这正是我在这里的原因——我正在将两条溪流进行对接,以驱动一个UI,它们漂移出完全在无线节点上的对齐.
QQ 版本数
原文照录于:
- " LangGraph " 1.2.9 / " LangGraph-检查点 " 4.1.1
LangGraph ' 1.2.11 /LangGraph-检查点 ' 4.2.0(提交日期最近)
Python 3.11,视窗.
QQ 提问而不是错误断言
抑制无轨电车排放看起来是故意的,如果是的话,固定在指针上而不是代码上——‘"值''会被记录为"每一步骤后改变状态". 但是,如果“每一步之后”在字面上都指两种模式,那么没有产生出任何文字的一步应该仍然会释放出不变的状态.
我不想猜是哪个 很高兴派公关给你喜欢的人.
内容来源: langchain-ai/langgraph