In order for a virtual environment to be effective as a training tool, it is not enough to concentrate on the fidelity of the renderings and the accuracy of the simulated behaviors. The environment should help trainees develop an understanding of the task and should provide guidance and assistance as needed. This paper describes a system for developing virtual environments in which pedagogical capabilities are incorporated into autonomous agents that interact with trainees and simulations of objects in the environment. These pedagogical agents can monitor trainee progress and provide guidance and assistance. This paper describes the architectural features of the environment and of the agents that accomplish the instructional objectives within the virtual environment. It also discusses how agent-based instruction is combined with other methods of delivering instruction.