Distributed multi-agent systems have become more mature in recent years, with the growing potential to handle large volumes of data and coordinate the operations of many organizations. However, widespread adoption by industry and government has been blocked in part by concerns about scalability and survivability, especially in unpredictable environments of attacks and system failures. In this paper, we present Cougaar, an open-source Java-based agent architecture that provides a survivable base on which to deploy large-scale, robust distributed applications. We define the challenging problem of the UltraLog project; a distributed logistics application comprised of more than 1000 agents distributed over 100 hosts, which guided the design of the Cougaar architecture to ensure scalability, robustness, and security. We conclude with a survey of Cougaar uses as the preferred agent platform for a variety of applications.