Cleaned up that divergence idea a little. Any agent class inheriting from skeleton_agent (which they all do at this point) need only to implement has_diverged(self) which returns true/false on that question. Agents are free to check this however they want.