The possibility of failure is a fundamental characteristic of distributed applications. The research community in fault tolerance has developed several solutions mainly based on the concept of replication. In this paper, we propose a fault tolerant hybrid approach in multi-agent systems. We have based our strategy on two main concepts: replication and teamwork. Through this work, we have to calculate the criticality of each agent, and then we divide the system into two groups that use two different replication strategies (active, passive). In order to determine the agent criticality, we introduce a multi-level method for criticality evaluation using the agent plans and dependence relations between agents.