With the vast number of information resources available today, a critical problem is how to locate, retrieve and process information. It would be impractical to build a single unified system that combines all of these information resources. A demore promising approach is to build specialized collaboinformation retrieval agents that provide access to a subset of the information resources and can send requests to other information retrieval agents when needed. In this paper we present an architecture for building such agents that addresses the issues of representation, communication, problem solving, and learning. We also describe how this architecture supports agents that are modular, extensible, flexible and efficient.