The MCC InfoSleuth project is developing an architecture and toolkit for deploying agent applications that focus on information gathering and analysis over diverse and dynamic networks of multimedia information sources. In this paper, we present the structure of the layered agent shell that we use for rapid and consistent insertion of agents in the InfoSleuth environment. The shell attempts to aggregate and make available the common functionalities and services found across all classes of agents in our applications. The intent of the shell is to allow developers to concentrate on the unique aspects of each agent while inheriting common, configurable functionality. Two critical findings are highlighted in our presentation of the agent shell. First, KQML can be used for interagent messaging, but progress in agent interactions requires a conversational metaphor to guide conversation policies among agents. Second, there are multiple "semantic levels" at which the same set of agents may want to converse over the lifetime of an application task. These levels are clearly delineated in our shell and can be realized using combinations of the appropriate transfer protocols. The structure of the InfoSleuth layered agent shell provides valuable insight and lessons for the ongoing definition, development, and acceptance of tools for open agent-based systems.