From 48b05224ad9ac790c72f87b69ab27a53cc9e89bd Mon Sep 17 00:00:00 2001 From: nhuang-lc Date: Tue, 23 Sep 2025 14:20:34 -0700 Subject: [PATCH] fix(langchain_v1): only interrupt if at least one ToolConfig value is True (#33064) **Description:** Right now, we interrupt even if the provided ToolConfig has all false values. We should ignore ToolConfigs which do not have at least one value marked as true (just as we would if tool_name: False was passed into the dict). --- .../langchain/agents/middleware/human_in_the_loop.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/langchain_v1/langchain/agents/middleware/human_in_the_loop.py b/libs/langchain_v1/langchain/agents/middleware/human_in_the_loop.py index f220f44fedc..d07cce86a7d 100644 --- a/libs/langchain_v1/langchain/agents/middleware/human_in_the_loop.py +++ b/libs/langchain_v1/langchain/agents/middleware/human_in_the_loop.py @@ -138,7 +138,13 @@ class HumanInTheLoopMiddleware(AgentMiddleware): allow_edit=True, allow_respond=True, ) - else: + elif any( + [ + tool_config.get("allow_accept", False), + tool_config.get("allow_edit", False), + tool_config.get("allow_respond", False), + ] + ): resolved_tool_configs[tool_name] = tool_config self.tool_configs = resolved_tool_configs self.description_prefix = description_prefix