AI : Nature of Environments

Table of contents
Reading Time: 2 minutes

In the previous posts, we looked at the Rational Agent and the operating environment. In this post we would try to study the nature of the environment.

The environment is the Task Environment (problem) for which the Rational Agent is the solution. Any task environment is characterised on the basis of PEAS.

  1. Performance – What is the performance characteristic which would either make the agent successful or not. For example, as per the previous example clean floor, optimal energy consumption might be performance measures.
  2. Environment – Physical characteristics and constraints expected. For example, wood floors, furniture in the way etc
  3. Actuators – The physical or logical constructs which would take action. For example for the vacuum cleaner, these are the suction pumps
  4. Sensors – Again physical or logical constructs which would sense the environment. From our previous example, these are cameras and dirt sensors.
Agent in a task environment

Rational Agents could be physical agents like the one described above or it could also be a program that operates in a non-physical environment like an operating system. Imagine a bot web site operator designed to scan Internet news sources and show the interesting items to its users, while selling advertising space to generate revenue.

As another example, consider an online tutoring system

Math E learning systemSLA defined score on the testStudent, Teacher, parentsComputer display system for exercises, corrections, feedbackKeyboard, Mouse

Environments can further be classified into various buckets. This would help determine the intelligence which would need to be built in the agent. These are

  • Observable – Full or Partial? If the agents sensors get full access then they do not need to pre-store any information. Partial may be due to inaccuracy of sensors or incomplete information about an environment, like limited access to enemy territory
  • Number of Agents – For the vacuum cleaner, it works in a single agent environment but for driver-less taxis, every driver-less taxi is a separate agent and hence multi agent environment
  • Deterministic – The number of unknowns in the environment which affect the predictability of the environment. For example, floor space for cleaning is mostly deterministic, the furniture is where it is most of the time but taxi driving on a road is non-deterministic.
  • Discrete – Does the agent respond when needed or does it have to continuously scan the environment. Driver-less is continuous, online tutor is discrete
  • Static – How often does the environment change. Can the agent learn about the environment and always do the same thing?
  • Episodic – If the response to a certain precept is not dependent on the previous one i.e. it is stateless (static methods in Java) then it is discrete. If the decision taken now influences the future decisions then it is a sequential environment.

Hence to summarise

  • An agent is something that perceives and acts in an environment.
  • The performance measure evaluates the behaviour of the agent in an environment.
  • A rational agent acts so as to maximise the expected value of the performance measure.
  • A task environment specification includes the PEAS i.e. performance measure, the external environment, the actuators, and the sensors.
  • Task environments vary along several significant dimensions. In designing an agent, the first step must always be to specify the task environment as fully as possible.

Written by 

Vikas is the CEO and Co-Founder of Knoldus Inc. Knoldus does niche Reactive and Big Data product development on Scala, Spark, and Functional Java. Knoldus has a strong focus on software craftsmanship which ensures high-quality software development. It partners with the best in the industry like Lightbend (Scala Ecosystem), Databricks (Spark Ecosystem), Confluent (Kafka) and Datastax (Cassandra). Vikas has been working in the cutting edge tech industry for 20+ years. He was an ardent fan of Java with multiple high load enterprise systems to boast of till he met Scala. His current passions include utilizing the power of Scala, Akka and Play to make Reactive and Big Data systems for niche startups and enterprises who would like to change the way software is developed. To know more, send a mail to or visit