Add BaseAgent class