This next generation of computing that we have been discussing involves a degree of agency on the behalf of computers. With machine learning, computers have the capacity to take in large amounts of information, make decisions of some sort and act on that; what is called agency. Autonomous systems use information gathered from sensors to make independent decisions and then act on them using corresponding actuators. An autonomous agent is a “smart” agent operating on an owner’s behalf but without any interference of that ownership entity. A thermostat is an example of a very simple autonomous agent in that it senses the environment and acts to change the heater. An autonomous agent has the capacity to process information within a restricted domain giving it autonomy and then take an action based upon the rules it has been given or learned. Agency derives from the Latin “agere” meaning “to do” autonomous agents are software entities that carry out some set of operations on behalf of a user or another program with some degree of independence or autonomy, and in so doing, employ some understanding or representation of the user’s goals or desires.
An agent is a system situated in, and part of, a technical or natural environment, which senses in some way that environment, and acts on it in pursuit of its own agenda.1 Such an agent acts to change part of the environment and its status in order to evolve towards certain goals. High-frequency trading systems are an example of this, they observe the order flow, they orientate with respect to passed order flows, they decide whether there are some imbalances in that flow, they decide to place a trade or actually place that trade, they observe whether that trade was effective or how it impacted the market and then decide again. Computerized systems can iterate very quickly, because they iterate quickly and because it’s a closed loop they can learn and become better and better over time. So high-frequency trading is a big commercial success of these kinds of systems, as is targeted advertising, as both have a closed loop that can be iterated on and learned from.
Agents are colloquially known as bots – from the term robot. They may be physical systems, as when execution is coupled with a physical robot, or as software such as a chatbot executing on a phone or other computing device, such as Siri on Apple’s iPhone. Software Agents may be autonomous or work together with other agents or people. Software agents interact with people and may possess human-like qualities such as natural language understanding, Honda’s robot Asimo being one example.2 Today, with advances in server-side processing power and improvements in implementing machine learning, bots are starting to provide real value to end-users. The tide has finally turned and these bots are entering the mainstream consciousness, with many of the large IT companies investing heavily in developing their own personal assistance. The first wave of bots were used to automate simple, repetitive tasks based on a well-specified set of rules. Today these agents have advanced to the point where they are explaining frequently asked questions, working in support centers, booking appointments, and making orders. Originally, these tasks required multiple inputs from a human to answer rule-based logic questions. But with advancements in deep/machine learning, bots are now able to perform more complex tasks and may well in the coming years evolve to become the new interface between people and our information systems.
To actively perform their functions, intelligent Agents today are normally gathered in a hierarchical structure containing many “sub-agents”. Intelligent sub-agents process and perform lower level functions. Taken together, the intelligent agent and sub-agents create a complete system that can accomplish difficult tasks or goals with behaviors and responses that display a form of intelligence. The capacities of an autonomous agent are contingent upon its internal complexity. In there book Artificial Intelligence a Modern Approach Russell & Norvig3 group autonomous agents into five classes based on their degree of perceived capability. The most basic kind is called a simple reflex agent, where the agent’s function is based on the condition-action rule: if condition then action. This agent function only succeeds when the environment is fully observable and can get trapped into closed loops. Model-based reflex agents maintain some form of internal model that depends on the perceived history and thereby reflects at least some of the unobserved aspects of the current state. A goal-based agent further expands on the capabilities of the model-based agent, by using “goal” information. Goal information describes situations that are desirable. This allows the agent to choose among multiple possibilities, selecting the one which reaches a goal state.
A utility-based agent chooses the action that maximizes the expected utility of the action outcome – that is, what the agent expects to derive, on average, given the probabilities and utilities of each outcome. A utility-based agent has to model and keep track of its environment, tasks that have involved a great deal of research on perception, representation, reasoning, and learning. Finally, agents may learn. Learning has the advantage that it allows the agent to initially operate in unknown environments and to become more capable than its starting knowledge alone might allow for. The most important distinction is between the learning function, which is responsible for making improvements, and the system’s performance function, which is responsible for selecting the required actions in the environment. The learning element uses feedback on how the agent is doing and determines how the performance element should be modified to optimize outcomes in the future.
A combination of many agents acting in coordination forms a multi-agent system which is a computerized system composed of multiple interacting intelligent agents within an environment. This set of agents form a loosely coupled network of adaptive nodes that interact to solve problems that are beyond the individual capacities or knowledge of each problem solver. One example of these swarm robotic systems might be in logistics to coordinate many autonomous drones towards the transport of goods in remote areas. A multi-agent system of this kind has to efficiently retrieve, filter, and globally coordinate information from sources that are spatially distributed. They can allow for the interconnection and interoperation of multiple existing legacy systems by building an agent wrapper around each component to form a larger complex adaptive system. An MAS provides solutions in situations where resources may be spatially and temporally distributed. Multi-agent systems can be used to solve problems that are difficult or impossible for an individual agent or a monolithic system to solve and can enhance overall system performance, specifically along the dimensions of computational efficiency, reliability and flexibility. In a swarm system there is no single point of failure – if a unit fails, the whole system keeps on going, which makes it very fault-tolerant and robust.4
1. Cs.upc.edu. (2018). [online] Available at: http://www.cs.upc.edu/~bejar/aia/aia-web/ingham99what.pdf [Accessed 13 Feb. 2018].
2. Garden, H. (2007). How ASIMO Works. [online] HowStuffWorks. Available at: https://science.howstuffworks.com/asimo.htm [Accessed 13 Feb. 2018].
3. Web.cecs.pdx.edu. (2018). [online] Available at: http://web.cecs.pdx.edu/~mperkows/CLASS_479/2017_ZZ_00/02__GOOD_Russel=Norvig=Artificial%20Intelligence%20A%20Modern%20Approach%20(3rd%20Edition).pdf [Accessed 13 Feb. 2018].
4. Cs.cmu.edu. (2018). Intelligent Software Agents . [online] Available at: https://www.cs.cmu.edu/~softagents/multi.html [Accessed 13 Feb. 2018].