We introduce an interface for connecting agent platforms to environments. This interface provides generic functionality for executing actions and for perceiving changes in an agent's environment. It also provides support for managing an environment, e.g., for starting, pausing and terminating it. Among the benefits of such an interface are (1) standard functionality is provided by the interface implementation itself, and (2) agent platforms that support the interface can connect to any environment that implements the interface. This significantly reduces effort required from agent and environment programmers as the environment code needed to implement the interface needs to be written only once. We propose that the interface presented may be used as a standard that enables agents to control entities in environments. Our starting point for designing such a generic interface is based on a careful study of the various interfaces used by different agent programming languages to connect agent programs to environments. We discuss several case studies that use our interface (an elevator simulator, the well-known agent contest, and an implementation of the interface to connect agents to bots in Unreal Tournament 2004).