Applying intelligent agent technologies to support human learning activities has been the subject of recent work that reaches across computer science and education disciplines. This article discusses agent-based approaches that have been designed to address a range of pedagogical and/or curricular tasks. Three types of agents are identified in the literature: pedagogical agents, peer-learning agents, and demonstrating agents. Features of each type are considered, as well as the systems in which these agents are incorporated, examining common and divergent goals, system and agent architectures, and evaluation methodologies. Open issues are highlighted, and future directions for this burgeoning interdisciplinary field are suggested.