As pointed out by Radouxju this is rather conceptual problem, than technical. So I would just suggest one concept.
For fully automated process the most crucial from my perspective is to define what we consider to be ridge elevation.
This might hugely vary based on the landforming (geology) in your study area, and might need some testing.
For getting the right elevation cutoff for each valley I would suggest following:
Fix your DGM to be depression less (not contain sinks/lakes) - this is crucial if you want to make sure you won't get your valleys as multipolygons, though it is possible to go around it, and filter out possible little extra polygons at the end
Delineate watersheds as polygons from raster each with polygon id
Extract vertices as points keeping polygon ids (for grouping)
Run point sampling on your DEM (DGM)
Look at elevation histograms of some most representative point group
Do you see the ridge (ridges) in it? At what percentile typically? If you see it there, there is your ridge elevation. And you say 90% of it is the value you are looking for
Calculate the elevation value for each group as desired percentile, and through polygon ID assign back to polygons, so now you have your 'valleys' with cut off elevation values
From this moment there are multiple ways how to extract your 90% ridge elevation polygons, I would consider this two:
extract contours as polygons with reasonable elevation interval from your DEM, and clip your watershed polygons by these polygon contours where the elevation is more than your calculated 90% ridge elevation - this might be crazy expensive operation for large areas, especially for dense contour interval
or for each feature in watershed layer clip your raster (DGM), reclasify it to 1 (all values below your polygon cutoff), null rest, and vectorise the '1' area into polygon, which is your final desired polygons
Not very straight forward, is it? But I am not really aware about any one click tool for this. Good luck.