Intelligent Agents

In this post, I will try to describe what are Intelligent Agents in computer science. For what are they useful and how they are categorized.

The agent is an entity that can percept and interact with the environment. This may sound strange and might raise an assumption that agent is a robot. This assumption is partially right but the environment doesn't need to be real-world. In fact, the environment can be almost everything even one number representing a position in 1D space. The agent can "see" it's environment by sensors which also doesn't need to be a special electronic device. Agent percepts some state of the environment with some method. Method for percept can be really simple or really complicated like just a getter or convolutional network. For example, if we are playing some computer game we see the screen and interact with keyboard and mouse. State-of-the-art agents are able to learn how to play Atari games with just pixels as input and key press as output.

Russell and Norvig (2003) splited agents into groups by their intelligence and capability:

  • Simple reflex agent
  • model-based reflex agents
  • Goal-based agent
  • utility-based agents
  • learning agents

Simple reflex agent

This type of agent is the simplest one. Agent takes state of environment as an input and maps it directly to action. In this type, agent doesn't remember history of it's moves and don't plan or evaluate actions.
Simple reflex agent will work efficiently only in fully observable environments. If there is only partial information then it can stuck in infinite loops.

Model-based reflex agent

This type can gather informations from world and manages it by creating some kind of structures. This type can operate in partially observable environment.

Goal-based agent

Agent is trying to determine which action will move it closer to the goal.
In strategic games units are finding their way threw the world with A* algorithm. Units like this are exactly this type of agent.

Utility-based agents

Now in this type the next feature that our agent will receive is ability to determine which action from those leading to the goal is the best.

Learning agent

Learning comes in. Agent can gather information from environment, how actions affect world state and learn from those to get better in achieving goal.

Agents are also often used in swarm inteligence. For example simple reflex agent is used in BOIDs algorithm. BOID, from "bird-oid object" is designed to simulate flocking behaviour of birds. It was used i.a. in Half Life.


[1] Russell, Stuart J.; Norvig, Peter (2003), Artificial Intelligence: A Modern Approach (2nd ed.),
[2] Craig W. Reynolds. 1987. Flocks, herds and schools: A distributed behavioral model. In Proceedings of the 14th annual conference on Computer graphics and interactive techniques (SIGGRAPH '87), Maureen C. Stone (Ed.). ACM, New York, NY, USA, 25-34. DOI: