Provide a common interface to write an agent.