Cut off the stem ends from the asparagus and discard. Cut the spears on a diagonal into ¼ inch pieces. Set aside.
In a heavy saucepan, combine the milk and butter and bring to a boil over medium heat. Sift together flour, salt, and cayenne pepper together into a small bowl. As soon as the milk reaches a boil and the butter has melted, remove from the heat and add the flour mixture all at once. Using a wooden spoon, beat the mixture vigorously until the mixture thickens and pulls away from the sides of the pan, about a minute. Transfer to bowl. Add the eggs, one at a time, beating well after each egg. Let cool for 10 minutes. Preheat oven to 400°F. Line two baking sheets with parchment paper and lightly butter the paper. Add the asparagus, Parmigiano, and Gruyere to the cooled dough and stir to combine. Using a teaspoon, scoop rounded spoonfuls of dough and place on the baking sheet. Space each round about one inch apart. Bake for 20-25 minutes until golden brown. Remove from the oven, transfer to a serving plate and serve.