Intelligent agents (or simply agents) perceive the environment through sensors and act upon that environment through actuators. These actions are based on autonomous or collective decisions made by the agents. 

Simple workflow of an agent

Based on their decision-making strategy, agents are commonly classified as: 

Logic-based agents – which take the decision on what action to perform based on logical deduction

Reactive agents – which make the decision in the form of direct mapping from situation to action

Belief-desire-intention (BDI) agents – which are superficially charaterised by agent’s beliefs, desires and intentions. Beliefs are agent’s belief about the world or the state of the agent; desires represent the objectives of the agent; intentions are what the agent has chosen to do, e.g. plans that are already in execution. 

To support agent implementation, various frameworks have been designed, a few popular examples are: JADEJACKNetLogo, and FLAME. Choosing the right framework is a challenging task as each of these frameworks has its own agent-based capabilities and advantages over the other frameworks. It is up to the user to decide which one to use considering various factors such as support for a particular programming language or operating system, facility to provide distributed multi-agent system, support for hundreds and thousands of agents, low resource requirements, etc.