Design Patterns for Multi-Agent Programming | AMiner