The Runner interface defines the contract for running agents.
Sync interface for local testing and convenience purpose.
Main entry method to run the agent in this runner asynchronously.