For the dough, place all the ingredients into a large mixing bowl and mix to a stiff dough. Turn out onto a floured worktop and knead for 10 minutes, or until smooth and elastic. Alternatively use an electric mixer with a dough hook for five minutes.
Divide the dough into 12 equal portions, roll each portion into a neat ball, and place on a floured chopping board. Cover with oiled cling film and set aside to prove for 25 minutes, or until the dough has doubled in size.
When the dough has doubled in size, make a hole in the centre of each ball using a wooden spoon, stretching the hole with your fingers so it doesn’t reseal. Cover the bagels and set aside for 35 minutes, to prove a second time.
Preheat the oven to 230C/450F/Gas 8. Bring a large saucepan of water up to the boil and add the bagels in batches (taking care not to overcrowd the pan) and poach for 1¼ minutes per side. Scoop the bagels out with a slotted spoon and place on a cooling rack to dry slightly. Glaze the bagels with beaten egg and dip one side of each bagel into the plate of crushed walnuts.
Line two large baking trays with parchment paper and grease with oil. Place the poached bagels on the baking trays with plenty of room between them and bake in the preheated oven. After 10 minutes, swap the trays round in the oven (so that the bagels that were at the top are now at the bottom and vice versa) and bake for a further five minutes.
Remove the bagels from the oven, sprinkle over the chopped Gruyère cheese and return to the oven for three minutes or until the cheese has melted.