What is an Agent? By James Odell, CSC
The opinions expressed by this blogger and those providing comments are theirs alone, this does not reflect the opinion of Automated Trader or any employee thereof. Automated Trader is not responsible for the accuracy of any of the information supplied by this article.
<p><em><span>Part 4 in a series by James Odell on agent technologies and event processing. Part 1 covered <a title="JO on Why Agent Technology for Event Processing, Mar10" href="http://tibcoblogs.com/2010/03/16/why-agent-technology-for-event-processing-by-james-odell-csc/" target="_blank">Why Agent Technology for Event Processing</a>, Part 2 was on the <a title="JO on The Relationship Between Agents and Events, Apr10" href="http://tibcoblogs.com/2010/04/12/what-is-the-relationship-between-agents-and-events-by-james-odell-csc/" target="_blank">Relationship between Agents and Events</a>, and Part 3 was on <a title="Previous post on What Goes On Inside An Agent by James Odell, May10" href="http://tibcoblogs.com/cep/2010/05/06/what-goes-on-inside-an-agent-by-james-odell-csc/" target="_blank">What goes on inside an Agent?</a> …<br /> </span></em></p> <p>Conventional software objects can be thought of as passive, because they wait for a message before performing an operation. Once invoked, they execute their “method” and “rest” until the next message. A current trend in software architecture is to design objects that not only react to events but are also proactive. In UML 2.0, these are known as active objects; in the agent community, they are known as agents. Whether they are called active objects or agents, this new direction is radically changing how we design systems.</p> <p><strong>The Basic Properties of Agents</strong></p> <div><a href="http://tibcoblogs.com/cep/wp-content/uploads/2010/06/agent-autonomy-adaptivity-interactivity.png"><img class="size-full wp-image-1570" title="agent-autonomy-adaptivity-interactivity" src="http://tibcoblogs.com/cep/wp-content/uploads/2010/06/agent-autonomy-adaptivity-interactivity.png" alt="Figure 1 - Agents have degrees of autonomy, interactivity, and adaptivity" width="300" height="204" /></a><p>Figure 1 - Agents have degrees of autonomy, interactivity, and adaptivity</p></div> <p>At a system level, an agent can be a person, a machine, a piece of software, or a variety of other things. The basic dictionary definition of agent is something that acts (c.f. an actor in some use case). However, for developing business and IT systems, such a definition may be too general. While an industry-standard definition of agent has yet to emerge, most agree that agents in an IT context are not useful without the following three important properties:</p> <ul> <li> Autonomous - capability to act without direct external intervention. It has some degree of self-control over its internal state and actions based on its own knowledge or rules.</li> <li>Interactive - communicates with the environment and other agents, typically via sensors or interfaces and events.</li> <li>Adaptive - capable of responding to other agents and/or its environment during interactions. An agent can also modify its behavior based on past events.</li> </ul> <p>In short, a basic working definition useful for IT purposes is:<br /> <em> An agent is an autonomous entity that can adapt to and interact with its environment.</em></p> <p>As illustrated in Fig. 1, agents can be autonomous, interactive, and adaptive - to various degrees. It is important to note that these are not “all or nothing” characteristics - there is no “agent minimum specification” qualification list! These three key agent properties will be discussed in more detail below.</p> <p><strong>Agents are Autonomous</strong></p> <div><a href="http://tibcoblogs.com/cep/wp-content/uploads/2010/06/agent-degrees-of-autonomy.png"><img class="size-full wp-image-1572" title="agent-degrees-of-autonomy" src="http://tibcoblogs.com/cep/wp-content/uploads/2010/06/agent-degrees-of-autonomy.png" alt="Figure 2 - Degrees of autonomy" width="320" height="94" /></a><p>Figure 2 - Degrees of autonomy</p></div> <p>Agents can be thought of as autonomous because each is capable of governing its own behavior (to some extent). Autonomy is best characterized by degrees. At one extreme, an agent could be completely self-governing and self-contained. However, an agent that is fully self-sufficient and does not require the resources of, or interaction with, other entities is very rare-primarily because it would be unmanageably large and unnecessarily complex for any common role. At the other extreme, an agent that is barely able to perform the simplest self-management is of limited use in complex systems. Even traditional objects have some degree of autonomy within their methods.</p> <p>An agent’s level of autonomy can be designed depending on its role. For example in Fig. 2, conventional objects are not completely dependent on outside resources-having some state and behavior of their own. However, they are traditionally simple in that they are far from being completely independent. Because a “supply-chain agent” is able to reach certain conclusions and make decisions on its own, it has more autonomy than an “object”. By their very nature, supply-chain agents require interactions with other entities to enable a fully functional supply-chain system, since one agent can not adequately support an entire organization’s supply-chain processing - interactions are also a characteristic for the class of agents called event processing agents (EPA). Even more autonomous are manager agents, because their role can involve a high degree of internal decision making through activities such as monitoring and delegation, which depend on outside resources.</p> <p><strong>Agents are Interactive</strong></p> <div><a href="http://tibcoblogs.com/cep/wp-content/uploads/2010/06/degrees-of-interaction-in-agents.png"><img class="size-full wp-image-1575" title="degrees-of-interaction-in-agents" src="http://tibcoblogs.com/cep/wp-content/uploads/2010/06/degrees-of-interaction-in-agents.png" alt="Figure 3 - Degrees of interaction in Agents" width="308" height="66" /></a><p>Figure 3 - Degrees of interaction in Agents</p></div> <p>Interaction implies the ability to communicate with the environment and other entities. As illustrated in Fig. 3, interaction can also be expressed in degrees.</p> <p>On one end of the scale, method invocations can be seen as the most basic form of interaction. More sophisticated would include those agents that can react to observable events within the environment. For example, food-gathering ants do not invoke methods on each other. Their interaction is indirect through the direct physical effects of their pheromones on the environment. Even more complex interactions are found where agents derive information - complex events - from multiple events over time. Here agents begin to act with “intelligence”. And then there are multiagent systems (MAS) where agents engage in multiple, parallel interactions with other agents. Here agents begin to act as a society.</p> <p>Finally, the ability to interact becomes most complex when systems involving many heterogeneous agents can coordinate cooperatively and/or competitively through such mechanisms as negotiation and planning.</p> <p><strong>Agents are Adaptive</strong></p> <p>An agent is considered adaptive if it can respond to other agents and/or its environment. Entities that fail to adapt to the ever-changing world become extinct: organisms die, companies go out of business, and so forth. For an organization, adaptation enables the system to react effectively to changes in areas such as the market and business environment. For IT systems, adaptation enables systems to react appropriately to enable such effects as system balancing, integrity assurance, and self-healing. The goals and motivations for adaptation are around remaining competitive and useful, and deriving value. When designed properly, individual parts of systems can be empowered to change based on their environment and market conditions.</p> <p>The primary forms of adaptivity include:</p> <ul> <li><em>Simple reaction rules</em> - 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. Such a response is usually expressed by an IF-THEN form. Thermostats, robotic sensors, and simple events can fall into this category. From atoms to ants, the reactive mode is quite evident. A carbon atom has a rule that states in effect, “If I am alone, I will only bond with oxygen atoms.” Simple reactions can also include business decision rules - such as event-condition-action (ECA) rules.</li> <li><em>Inference rules</em> - Beyond the simple reactive agent is the agent that can appear to reason by following chains of rules. For example, agents can react by making inferences and include patient-diagnosis agents, certain kinds of data-mining agents, and identifying complex events. Such inferences are computed by following a chain of inference rules, which can be described as goal-directed or data and event-driven.</li> <li><em>Learning</em> - Learning is change that occurs during the lifetime of an agent and can take many forms. Popular learning techniques employ reinforcement learning include “credit assignment”, Bayesian and classifier rules, and neural networks. Examples of learning agents would be agents that can approve credit applications, analyze speech, or recognize and track targets.</li> <li><em>Evolution</em> - Evolution is change that occurs over successive generations of agents. A primary technique for agent evolution usually involves genetic algorithms and genetic programming. Here, agents’ adaptive mechanisms 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.</li> </ul> <p><strong>Other Agent Properties</strong></p> <p>In the sections above, three key agent properties were discussed: autonomy, interactivity, and adaptivity. These properties are important because they are essential for agents deployed by IT systems. However, agents may possess various combinations of other properties whose usefulness depends on the application requirements and the agent designer. Here, agent characteristics may include being:</p> <ul> <li><strong>Sociable </strong>- interaction that is marked by friendliness or pleasant social relations, that is, where the agent is affable, companionable, or friendly.</li> <li><strong>Mobile </strong>- able to transport itself from one environment to another, and geo-aware.</li> <li><strong>Proxy </strong>- may act on behalf of someone or something, that is, acting in the interest of, as a representative of, or for the benefit of some other entity.</li> <li><strong>Intelligent </strong>- state is formalized by knowledge (e.g., beliefs, goals, plans, assumptions) and interacts with other agents using symbolic language.</li> <li><strong>Rational </strong>- able to choose an action based on internal goals and the knowledge that a particular action will bring it closer to its goals.</li> <li><strong>Temporally continuous</strong> - is a continuously running process.</li> <li><strong>Credible </strong>- believable personality and emotional state.</li> <li><strong>Transparent and accountable</strong> - must be transparent when required, yet must provide a log of its activities upon demand.</li> <li><strong>Coordinative </strong>- able to perform some activity in a shared environment with other agents. Activities are often coordinated via plans, workflows, or some other process management mechanism.</li> <li><strong>Cooperative </strong>- able to coordinate with other agents to achieve a common purpose; non-antagonistic agents that succeed or fail together. (Collaboration is another term used synonymously with cooperation.)</li> <li><strong>Competitive </strong>- able to coordinate with other agents such that the success of one agent implies the failure of others (the opposite of cooperative).</li> <li><strong>Rugged </strong>- able to deal with errors and incomplete data robustly.</li> <li><strong>Trustworthy </strong>- adheres to Laws of Robotics and is truthful.</li> </ul> <a href="http://www.addtoany.com/share_save?&linkurl=http%3A%2F%2Ftibcoblogs.com%2Fcep%2F2010%2F06%2F18%2Fwhat-is-an-agent-by-james-odell-csc%2F&linkname=What%20is%20an%20Agent%3F%20By%20James%20Odell%2C%20CSC"><img src="http://tibcoblogs.com/cep/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Save/Bookmark" /></a> <p>Related posts:<ol><li><a href="http://tibcoblogs.com/cep/2010/05/06/what-goes-on-inside-an-agent-by-james-odell-csc/" rel="bookmark" title="Permanent Link: What Goes On Inside An Agent? By James Odell, CSC">What Goes On Inside An Agent? By James Odell, CSC</a></li><li><a href="http://tibcoblogs.com/cep/2010/03/16/why-agent-technology-for-event-processing-by-james-odell-csc/" rel="bookmark" title="Permanent Link: Why Agent Technology for event processing? by James Odell, CSC">Why Agent Technology for event processing? by James Odell, CSC</a></li><li><a href="http://tibcoblogs.com/cep/2010/04/12/what-is-the-relationship-between-agents-and-events-by-james-odell-csc/" rel="bookmark" title="Permanent Link: What is the Relationship between Agents and Events? by James Odell, CSC">What is the Relationship between Agents and Events? by James Odell, CSC</a></li></ol></p><img src="http://feeds.feedburner.com/~r/ComplexEventProcessing/~4/aLnKlWIhu4w" height="1" width="1" />