Hi all, how do we generate multiple clocks for a testbench environment using a clock agent?

I saw that, inorder to generate multiple clocks in the same environment, we can either create a module for clock generation and instantiate it whenever needed; or we can create a clock agent and use it to configure the parameters. How can we do so? And what is the advantage of generating clock using agent over module clock generation?

In reply to Yadu:
Using a clock agent lets you configure/control clock generation just like any other interface to the DUT via sequence.

https://verificationacademy.com/forums/uvm/how-generate-clock-driver#reply-49792