A software agent is a computer program capable of independent behavior.
Artificial intelligence research defines an agent as software which has the following properties:
Software agents are characterized by knowledge, learning aptitude, the drawing of conclusions and the capacity for behavior modification. Among the different types of software agents (observant software agents, reactive software agents), the so-called cognitive software agents are among the most sophisticated of software agents. Cognitive software agents manage a model of their environment in their own data structure, and also learn and control. This enables both the planning of actions and, ultimately, targeted activity. Cognitive software agents are divided into goal-based and use-based software agents. In situations where several goals are achievable, the use-based software agent is able to decide which actions will of greater use and/or which goals are desirable. This is of particular relevance where it cannot be said with any certainty whether a goal can be achieved. The software agent is then able to carry out a risk assessment as opposed to simply pursuing its main goal.