From b0e11ae52490a4ea75abb38ba153f50707582ff4 Mon Sep 17 00:00:00 2001 From: vbarda Date: Wed, 12 Feb 2025 20:02:26 -0800 Subject: [PATCH] update --- libs/langgraph/langgraph/graph/state.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libs/langgraph/langgraph/graph/state.py b/libs/langgraph/langgraph/graph/state.py index ac79cc497..8c95b9581 100644 --- a/libs/langgraph/langgraph/graph/state.py +++ b/libs/langgraph/langgraph/graph/state.py @@ -691,9 +691,17 @@ class CompiledStateGraph(CompiledGraph): updates.extend(_get_updates(i) or ()) return updates elif get_type_hints(type(input)): + # if input is a Pydantic model, only update values + # for the keys that have been explicitly set by the users + # (this is needed to avoid sending updates for fields with None defaults) + output_keys_ = ( + [k for k in output_keys if k in input.model_fields_set] + if hasattr(input, "model_fields_set") + else output_keys + ) return [ (k, getattr(input, k)) - for k in output_keys + for k in output_keys_ if getattr(input, k, MISSING) is not MISSING ] else: