How would you design a multi-agent system, and when is it preferable to a single agent?

Situational