Lably
Skip to content

Software agent

Computer program acting for a user

  • 11 min read
  • 4 chapters

Related on Lably

Through Computer science, Authority and Robot

The term agent is derived from the Latin agere (to do): an agreement to act on one's behalf. Such "action on behalf of" implies the authority to decide which, if any, action is appropriate. Some agents are colloquially known as bots, from robot. They may be embodied, as when execution is paired with a robot body, or as software such as a chatbot executing on a computer, such as a mobile device, e.g. Siri. Software agents may be autonomous or work together with other agents or people. Software agents interacting with people (e.g. chatbots, human-robot interaction environments) may possess human-like qualities such as natural language understanding and speech, personality or embody humanoid form (see Asimo).

Related and derived concepts include intelligent agents (in particular exhibiting some aspects of artificial intelligence, such as reasoning), autonomous agents (capable of modifying the methods of achieving their objectives), distributed agents (being executed on physically distinct computers), multi-agent systems (distributed agents that work together to achieve an objective that could not be accomplished by a single agent acting alone), and mobile agents (agents that can relocate their execution onto different processors).

Concepts

The basic attributes of an autonomous software agent are that agents:

  • are not strictly invoked for a task, but activate themselves,
  • may reside in wait status on a host, perceiving context,
  • may get to run status on a host upon starting conditions,
  • do not require interaction of user,
  • may invoke other tasks including communication.

The concept of an agent provides a method of describing a complex software entity that is capable of acting with a certain degree of autonomy in order to accomplish tasks on behalf of its host. But unlike objects, which are defined in terms of methods and attributes, an agent is defined in terms of its behavior.

Various authors have proposed different definitions of agents, these commonly include concepts such as:

  • persistence: code is not executed on demand but runs continuously and decides for itself when it should perform some activity;
  • autonomy: agents have capabilities of task selection, prioritization, goal-directed behavior, decision-making without human intervention;
  • social ability: agents are able to engage other components through some sort of communication and coordination, they may collaborate on a task;
  • reactivity: agents perceive the context in which they operate and react to it appropriately.

Distinguishing agents from programs

All agents are programs, but not all programs are agents. Contrasting the term with related concepts may help clarify its meaning. Franklin & Graesser (1997) discuss four key notions that distinguish agents from arbitrary programs: reaction to the environment, autonomy, goal-orientation and persistence.

Intuitive distinguishing agents from objects

  • Agents are more autonomous than objects.
  • Agents have flexible behavior: reactive, proactive, social.
  • Agents have at least one thread of control but may have more.

Distinguishing agents from expert systems

  • Expert systems are not coupled to their environment.
  • Expert systems are not designed for reactive, proactive behavior.
  • Expert systems do not consider social ability.

Distinguishing intelligent software agents from intelligent agents in AI

  • Intelligent agents (also known as rational agents) are not just computer programs: they may also be machines, human beings, communities of human beings (such as firms) or anything that is capable of goal-directed behavior.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication