Tasks are the actual Actions and Conditions; the what and if happens. In NodeCanvas, Tasks are assigned to nodes instead of a node itself containing the functionality. This allows for a great modularity and flexibility in design, since it decouples the design from the actual implementation as well as allows the same Task to be used for a variety of different reasons, since the functionality is encapsulated within it. This is a core concept of NodeCanvas.
There are a variety of Tasks included with the package, but of course it is also very easy to create your own Tasks, very customizable using an easy API.
With NodeCanvas, you have two broad options for implementing your own functionality, meaning mostly Actions and Conditions: