Context-aware environments must allow adaptive and autonomous access to context information. This multi-agent middleware uses a negotiation protocol and ontology model to make the environment more easily personalized at runtime and adapted and managed at provisioning time. In a pervasive environment, a wide range of devices and resources use heterogeneous networks to perform the tasks involved in spontaneous ad hoc communication. The environment's infrastructure must therefore make available a rich set of computing capabilities and services at all times and in all locations in a transparent, integrated, and convenient way. Context provides perceptual information about the location and status of the people, places, and other devices in the environment.