In a distributed computing system including a plurality of agents, each agent in the plurality of agents operative for executing a task in furtherance of a goal autonomous from a host system associated with each agent, the goal being a solution to a problem defined by one agent in the plurality of agents or the host system associated with the one agent, a method for enhancing the reliability of an interaction between two agents in the plurality of agents, comprising:
- initiating a session between a first agent in the plurality of agents and a second agent in the plurality of agents, the first agent and the second agent each including a portion of a distributed fault tolerance structure containing data conditioning, testing, and control functions to carry out fault tolerance operations between the first agent and the second agent, the session having the goal;
- providing to the first agent information related to the second agent, the information related to the second agent comprising information that describes an expected behavior of the second agent;
- at the first agent, acceptance testing information related to the session to detect whether the information related to the session is inconsistent with the expected behavior of the second agent, the failure of the acceptance test being indicative of a fault in the session;
- and
- in response to a failure of the acceptance test, initiating a fault tolerance procedure making use of the distributed fault tolerance structure to diagnose a cause of the fault, to create a fault recovery plan, and to execute the fault recovery plan.