Preheat oven to 400°F and line a baking sheet with parchment paper.
Trim asparagus ends; toss with olive oil, salt, and pepper.
Mix cream cheese, garlic, lemon zest, and half of the Gruyère.
Roll puff pastry to 10x12 inches; score a 1-inch border.
Spread cheese mixture inside border and layer asparagus.
Sprinkle remaining cheeses on top.
Beat egg with water; brush pastry border with egg wash.
Bake for 20–25 minutes until golden brown and puffed.
Let cool 5 minutes before slicing; garnish with herbs.