The University of Michigan Digital Library (UMDL) is an open, evolving multiagent system, currently consisting of over a dozen different types of agents, that serves as a production system to real users and as a testbed for research ideas. Our open, evolving system requires a development environment that is also open and evolving. This paper explores the co-evolution of our system and the underlying tools. We divide the agent development environment into two evolving layers--a layer that is supported by the UMDL system developers, called agentware, and a layer that is the set of tools used by agent designers, which falls outside the agentware, called otherware. The agentware layer facilitates the ease of agent design and integration by providing an agent shell, support for agent communication, and other useful libraries and classes. The otherware layer achieves diverse agent capabilities by allowing individual agent designers to use a variety of existing and newly developed tools. Furthermore, the division between the two layers is continually evolving as new types of agents are created in the UMDL. This division balances design flexibility and integration: agent designers can make local decisions to use whatever tools are available, and have a means to easily integrate new agents and services into a larger society of agents.