Principles and Practice of Multi-Agent Systems | Synapse