Heat a griddle pan and brush the asparagus with oil, then grill them for a couple of minutes. Set them aside and keep warm.
Cut the courgette into thin ribbons and brush them with oil then grill them. Add the garlic, with the brush, for the last few seconds. Put them aside and keep warm.
Put a pan of water, about 5 cm deep, on the heat and bring to the boil. Add a spoonful of vinegar, make a twirl with a spoon, then add the eggs one-by one (you might want to put them in a small cup first). Cook them for 2 minutes.
While the eggs are cooking, cut the buns in half and lightly toast them. Spread some pesto on the lower half of the toasted buns and add a layer of courgette, then a layer of asparagus. Scatter some chopped herbs on top.
Remove the poached eggs with a slotted spoon and place them on top of the asparagus.
Serve immediately with a pinch of salt and plenty of freshly ground pepper.