An agent is considered adaptive if it is capable of responding to other agents and/or its environment to some degree. At a minimum, this means that an agent must be able to react to a simple stimulus to make a direct, predetermined response to a particular event or environmental signal. Thermostats, robotic sensors, and simple search bots fall into this category.
Beyond the simple reactive agent is the agent that can reason. Reasoning agents react by making inferences and include patient diagnosis agents and certain kinds of data-mining agents.
More advanced forms of adaptation include the capacity to learn and evolve. These agents can change their behavior based on experience. Common software techniques for learning are neural networks, Bayesian rules, credit assignments, and classifier rules. Examples of learning agents would be agents that can approve credit applications, analyze speech, and recognize and track targets. A primary technique for agent evolution usually involves genetic algorithms and genetic programming. Here, agents can literally be bred to fit specific purposes. For example, operation plans, circuitry, and software programs can prove to be more optimal that any product that a human can make in a reasonable amount of time.
An agent that can not respond to its environment or to other agents is another kind of agent whose usefulness is questionable for developing agent-based systems. Therefore, adaptation is considered by FIPA and the OMG's Agents Working Group to be a required property of agents.
Adaptive Agents, in more detail
An adaptive agent is an agent that responds to its environment. There are four primary ways of adapting:
- reaction - a direct, predetermined response to a particular event or an environmental signal.
- reasoning - ability to make inferences.
- learning - change that occurs during the lifetime of an agent.
- evolution - change that occurs over successive generations of agents.
In its simplest form, an agent can react with a direct, predetermined response to a particular event or environmental signal. Typically, the behavior of a reactive agents is expressed in the form: WHEN event, IF condition(s), THEN action. Examples of such agents are thermostats, robotic sensors, and washing machines that use fuzzy logic. While these kinds of agents may seem primitive, they are capable of achieving significant results. For example, the ant colony simulation, above [missing content?
], consists of purely reactive agents yet a whole colony is fed. The majority of the agents in our IT systems will consist of such agents.
A reasoning agent can follow a chain of rules. While these kinds of agents are often reactive, they have the added capability of making inferences. Reasoning agents can perform tasks such as network diagnosis or data mining. Reasoning is not a new capability. Expert systems have been around for quite a while. The difference here is that expert system rules can be encapsulated within agents. Furthermore, the agent can be designed to be proactive in its use of reasoning. For example, an agent does not have wait for a report of a supply chain problem to perform diagnosis, it could perform preventive maintenance, as well.
Some agents can their change behavior based on their experiences. In other words, these agents can learn. Learning agents don't have to have big brains, they just need the capacity to modify their actions as a way to improve their performance. This can be accomplished by simply programming them to weight their decisions. Another common technique is to use neural networks, another device from the AI era that can be applied within agent-based systems.
In agents systems, changes can occurs over successive generations of agents. For example, Darwinian-style evolution is a common technique. Here, agents can be bred using genetic algorithms and then compete in a survival-of-the-fittest mode. In Lamarckian-style evolution, features acquired and information learned by an agent can be passed on to its offspring. The use of memes, or culturally transmitted information, is also a popular technique.
The four primary forms of adaptive agents described above can be used singly or in any combination. For example, a reactive agent's neural network could have been bred using genetic algorithms, or a proactive reasoning agent could learn by placing weights on certain decision points in its rules. At a minimum, however, the agent must be able to react to external stimulus.
Reactive and reasoning agents are fairly easy to construct and understand. However, learning and evolving agents take more work to design; but the greatest drawback is that they can be very difficult, even impossible, to understand their decisions. Once a neural network has been trained to solve certain kinds of problems, there is almost no way to ask it how it came up with its solution to a particular problem. A similar problem exists with genetic algorithms. Here, an agent's program code can be cross bred with other agents' code until it can successfully accomplish a given task. Eventually, it may perform its tasks perfectly; but understanding how and why it works can be close to impossible, particularly for agents with thousands of lines of code that have been bred over thousands of generations.
In short, we can literally "teach" and "breed" agents now. The good news it that such a process can generate results faster and usually better than any human. The possibly scary news is that the results can occur without human intervention. In other words, we will be building agents that seem to have a "life" of their own. They can learn to buy, sell, bargain, fabricate, and make decisions for us, making us feel "out of control." We delegate to human agents all the time, but delegating to software agents can take time to get used to, even though it is inevitable.