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:
- A list of already → built-in actions can be found on the next page.
- An elegant way to handle failing plans is explained in the article about → explicit repair actions.
- For developers: See our → tutorial about actions for a practical guide on how to use and create new actions.
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
.