A rational agent is a computer program capable of making autonomous decisions to accomplish desired goals. Such programs can collect information about their environment to gather as much data as possible to support their decisions. They can also evaluate the outcome to determine whether the ultimate choice was a good one, and how they could improve results in the future. Designing rational agents requires a knowledge of computer programming and the ability to develop models and preferences within a program.
The level of complexity involved can depend on the kind of tasks a program needs to accomplish. Some rational agents are simple and can rely heavily on a very basic model. For example, the rational agent might be responsible for checking outgoing mail to make sure mailing information is complete, to reduce the risk of items returned to sender. It can use a model of what addresses should look like to check against an optical scan and either accept or reject items for mailing.
More complex agents may need to make multiple decisions to act on their environments, or could require complex models to help them identify specific issues in a given situation. The goal of the rational agent is to select the most optimal outcome, given an array of options and a specific situation. It can measure success by response, and may be able to learn from this to adjust behaviors in the future. A rational agent at a nuclear plant responsible for controlling temperatures in the reactor, for instance, knows what affects core temperatures and how it can adjust them if temperatures rise or fall outside an established range.
Success is not always possible, because rational agents are not omniscient. They cannot predict every possible outcome, and may not be able to compensate for events outside of their control. When a problem does arise, the agent may evaluate it to find out what happened and if it could have been predicted. If the instruments on a weather balloon were hit by a meteor, for instance, the automated program that selected a launch site and launched the balloon couldn’t possibly have accounted for this in its calculations. The launch may have failed, but not because of anything the rational agent did.
Computer programming courses sometimes include discussions on rational agents, along with simple programming assignments to allow students to create their own. More complex programs may be developed in information technology, science, medicine, and other fields where automated actors may be necessary. The more complexity, the greater the functionality.