In the hostile computing environments typical of large, distributed, multi-agent systems, dynamic adaptation to changes in quality of service (QoS) is essential to the survival of the system. To some extent, a society of agents can control its own adaptation to changes in QoS at various levels ndividual, community, society - by the introduction of a new class of QoS-managing agents. But without access to the system infrastructure, such adaptation is of only limited use. By implementing an agent system on a component-based middleware with awareness of resource constraints and effective mechanisms to work around those constraints, the survivability can be significantly enhanced. Cougaar (cognitive agent architecture) is an example of such a middleware. It offers several important robustness methodologies as part of its core structure (e.g., sendees and binders) and also enables others that would otherwise be difficult to implement in modular and maintainable way (e.g., open implementations and aspects). A suite of these methods that has proven to be effective at QoS management is described here, illustrating both the diversity of options as well as the power of combining them. These complementary methods can be configured to match any given fielded environment, trading off the overhead of each adaptation against its benefit. The overhead of these adaptations is discussed in the context of security, failure recovery, and denial of service (DoS) attacks.