An agent for reset purpose

I have been resetting the DUT from top module so far.
I saw a code containing reset agent recently.
What’s the advantage of using a seperate agent for resetting purpose?

In reply to bachan21:

If you need to apply reset multiple times during the course of your test, it best to treat the reset signal the same as any other input to DUT so you can write sequences and apply reset through a standard sequence/driver/interface agent.