Can agents be implemented with machine learning algorithms/models other than neural networks? If so, how do I train an agent with some predefined rules? Can we use python programming for representing those rules?