Software agents usually take a passive approach to learning, acquiring information about a task from watching passively what the user does. Examples are the only information that the user and the learner exchange. The induction task left to the agent is only possible with pre-defined learning biases. Determining a priori the language needed to represent the necessary criteria for performing a task may not always be possible, especially if these criteria must be customizable. The focus of trainable software agents is on acquiring learning biases dynamically from users, being active in asking questions when it is not clear what to learn. The user’s input to the learning process goes beyond concrete examples, providing a more cooperative framework for the learner.