limit = ToolCallLimitMiddleware(
thread_limit=None,
run_limit=DEFAULT_TOOL_LIMIT,
exit_behavior=DEFAULT_EXIT_BEHAVIOR,
)
def limit_check_node(state: GraphState, runtime):
"""
MUST be placed after tool execution.
This is the only correct place where tool call count is updated.
"""
updates = limit.after_model(state, runtime) or {}
if updates.get("jump_to") == "end":
return {"__end__": True}
return updates