From a8d860273b35166ebfe2cbc2844b7e02522e33c0 Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Fri, 23 Aug 2024 18:14:59 -0700 Subject: [PATCH] Skip runtime value replacement when not needed --- libs/langgraph/langgraph/managed/base.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/langgraph/langgraph/managed/base.py b/libs/langgraph/langgraph/managed/base.py index fbedf1f3e..5ce15aec2 100644 --- a/libs/langgraph/langgraph/managed/base.py +++ b/libs/langgraph/langgraph/managed/base.py @@ -110,6 +110,10 @@ ChannelTypePlaceholder = object() class ManagedValueMapping(dict[str, ManagedValue]): def replace_runtime_values(self, step: int, values: Union[dict[str, Any], Any]): + if not self or not values: + return + if all(not mv.runtime for mv in self.values()): + return if isinstance(values, dict): for key, value in values.items(): for chan, mv in self.items(): @@ -128,6 +132,10 @@ class ManagedValueMapping(dict[str, ManagedValue]): def replace_runtime_placeholders( self, step: int, values: Union[dict[str, Any], Any] ): + if not self or not values: + return + if all(not mv.runtime for mv in self.values()): + return if isinstance(values, dict): for key, value in values.items(): if isinstance(value, dict) and RUNTIME_PLACEHOLDER in value: