What is a Template Agent and why would I use one?