Making these functions allows us to cleanup how an agent is initialized. They only make use of a config and a logger, so they do not need to be agent methods. Also cleanup the testing to use t.Run and require.
In preparation for turning them into functions. To reduce the scope of Agent, and refactor how Agent is created and started.