From 36478eb745b461a6710bff51ce66fa9b3791b645 Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Fri, 23 May 2025 16:25:04 -0700 Subject: [PATCH] Fix stream mode not respected in subgraphs - The default applied for subgraphs should be applied only when stream mode arg not passed in --- libs/langgraph/langgraph/pregel/__init__.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libs/langgraph/langgraph/pregel/__init__.py b/libs/langgraph/langgraph/pregel/__init__.py index bcd2f1ce3..3d2467ece 100644 --- a/libs/langgraph/langgraph/pregel/__init__.py +++ b/libs/langgraph/langgraph/pregel/__init__.py @@ -2214,12 +2214,14 @@ class Pregel(PregelProtocol): validate_keys(output_keys, self.channels) interrupt_before = interrupt_before or self.interrupt_before_nodes interrupt_after = interrupt_after or self.interrupt_after_nodes - stream_mode = stream_mode if stream_mode is not None else self.stream_mode + if stream_mode is None and CONFIG_KEY_TASK_ID in config.get(CONF, {}): + # if being called as a node in another graph, default to values mode + # but don't overwrite stream_mode arg if provided + stream_mode = ["values"] + elif stream_mode is None: + stream_mode = self.stream_mode if not isinstance(stream_mode, list): stream_mode = [stream_mode] - if CONFIG_KEY_TASK_ID in config.get(CONF, {}): - # if being called as a node in another graph, always use values mode - stream_mode = ["values"] if self.checkpointer is False: checkpointer: BaseCheckpointSaver | None = None elif CONFIG_KEY_CHECKPOINTER in config.get(CONF, {}):