From d4555d61836f8287ec3f948e48d4e5b81696f4d0 Mon Sep 17 00:00:00 2001 From: Matthew Zhou Date: Tue, 24 Jun 2025 17:46:37 -0700 Subject: [PATCH] feat: Fix required tools being terminal (#3010) --- letta/helpers/tool_rule_solver.py | 4 +--- tests/integration_test_agent_tool_graph.py | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/letta/helpers/tool_rule_solver.py b/letta/helpers/tool_rule_solver.py index cdaaebc1..65258f5b 100644 --- a/letta/helpers/tool_rule_solver.py +++ b/letta/helpers/tool_rule_solver.py @@ -141,9 +141,7 @@ class ToolRulesSolver(BaseModel): def is_terminal_tool(self, tool_name: str) -> bool: """Check if the tool is defined as a terminal tool in the terminal tool rules or required-before-exit tool rules.""" - return any(rule.tool_name == tool_name for rule in self.terminal_tool_rules) or any( - rule.tool_name == tool_name for rule in self.required_before_exit_tool_rules - ) + return any(rule.tool_name == tool_name for rule in self.terminal_tool_rules) def has_children_tools(self, tool_name): """Check if the tool has children tools""" diff --git a/tests/integration_test_agent_tool_graph.py b/tests/integration_test_agent_tool_graph.py index 7698e370..5482bce7 100644 --- a/tests/integration_test_agent_tool_graph.py +++ b/tests/integration_test_agent_tool_graph.py @@ -967,7 +967,7 @@ async def test_required_tools_called_during_normal_flow(server, disable_e2b_api_ tools = [save_data_tool] tool_rules = [ InitToolRule(tool_name="save_data"), - RequiredBeforeExitToolRule(tool_name="send_message"), + RequiredBeforeExitToolRule(tool_name="save_data"), TerminalToolRule(tool_name="send_message"), ]