Software Agents

Agent

software agent is a piece of software that acts (agent: lat. agere - to do, to make) in order to achieve certain goals independently; unlike other computer programs, agents work autonomously, perceive their environment, perform context-relevant actions independently, adapt and pursue (variable) goals; a rational agent acts in such a way that it achieves the best result or - in case of uncertainty - the best expected result. In his famous early essay of 1950, Alan Turing [2] considered programming his intelligent machines by hand. He estimated how much work this would require and concluded: "A quicker method seems desirable". The method he proposed was to build learning machines and then teach them. This is the common method in AI today.

A learning agent, equipped with reasoning, learning and adaptability, is able to operate in an initially unfamiliar environment and become more competent than its initial knowledge alone would allow. Any type of data - such as media or file content, event messages from other systems or network traffic - can serve as a software agent's environment and influence its behavior.

The architectures of autonomous software agents clearly separate them from their environment, with which they interact through observation and action. This leads to a clear separation of responsibilities in workflows and assigns each agent a specific task with a clear goal.

Unlike traditional software programs, which follow predetermined handwritten rules, autonomous agents try to achieve their goal independently, even under changing conditions. They learn and optimize their action sequences in repeated runs and use short or long-term planning horizons. Software agents are based on different paradigms from the field of symbolic AI, connectionist AI or both combined in Neuro-Symbolic AI.

How can the behaviour of autonomous software agents be evaluated?

A software agent generates a sequence of actions from a sequence of observations. If this sequence corresponds to the desired behaviour, the agent performs “well”. The term “desired” is expressed by a performance measure that must be defined and determined individually depending on the environment, use case, and domain.