# Basic Knowledge: Actions

Actions enrich agents twofold: First they provide further functionality, for example to compute complex calculations which could be implemented better, i.e. simpler, more scalable, in an imperative programming language. Secondly they allow agents to interact with their environment and other agents.

We imagine actions to be the sensors and actuators to perceive and manipulate other objects in the environment.

Actions can be called analogously to functions inside the body or condition of a → plan.

Notes:

Example

!main.
+!main <-
generic/print("this message gets printed by a built-in action");
Colour = myfavouritecolour();  // custom action to get my colour
message/send("Bob", Colour)    // custom action to send my colour to bob
.