This work attempts to utilize software agents to provide supportive services for learners to facilitate and assist them to build knowledge in constructivist ways. The services include: •providing access to appropriate learning resources and learning strategies; •fostering meaningful interactions with content, teachers, and fellow learners; •supporting personalized learning for individual learners; •facilitating collaborative learning among learners in groups; and •aiding to timely evaluate learning outcomes. The services are provided in non-intrusive ways. Learners can autonomously control their learning. Meanwhile, they are offered services through suggestion or advice. The services are dynamically generated based on actual learning scenes. A learning process specification language is developed. Three classes of agents, personal assistant agent, planning agent, and managing agent, have been incorporated into the learning processes to provide support for learners. They work in the background, monitor and evaluate individual learner''s learning, and provide supportive services for them whenever necessary. Together they play a role of “constructivist teacher”.