In this paper, we discuss an integrated framework of case-based learning (CBL) in an agent that intelligently delivers learning materials to students. The agent customizes its delivery strategy for each student based on the student's background profile and his or her interactions with the graphic user interface (GUI) to our system, and based on the usage history of the learning materials. The agent's decision-making process is powered by case-based reasoning (CBR). To improve its reasoning process, our agent learns the differences between good cases (cases with a good solution for its problem space) and bad cases (cases with a bad solution for its problem space). It also meta-learns adaptation heuristics, the significance of input features of the cases, and the weights of a content graph for symbolic feature values. We have also built a simulation to comprehensively test the learning behavior of our agent.