Hi, my name is Ali. My areas of interest are Multi-Agent Systems and Artificial Intelligence in general. At Fetch.AI, I’m currently working on making multi-agent systems a reality. For the uninitiated, let me explain what I mean by agents and multi-agents.
A computational agent is a software system that represents an entity and is capable of autonomous action on its behalf. Each agent is designed to look after the interests of the entity it represents. This could be an individual, a team of people, a whole organisation, or even a government. Agents are typically situated in an environment, and have the means to sense and act in this environment autonomously, i.e., without their owners continually telling them what to do.
The thermostat in your house is an example of a simple agent that looks after your (temperature related) preferences and adjusts the temperature of the house (hopefully!) without you constantly getting up to change the temperature settings. Of course, agents may be much more sophisticated and capable of performing more complex tasks.
In many scenarios, there may be more than one agent in the environment, each representing a different entity with different, often conflicting, interests. Therefore, each agent performs actions that changes the environment to suit its own benefit. One example is the complex world of transportation, where every driver’s personal (read selfish) goal is to get to their own destination as quickly as possible. Also note, that the actions of each driver affects the environment, which subsequently impacts the experience of other drivers. For example, a car joining a motorway from a slip road changes the space available for those already on the motorway, starting with the cars driving on the furthest left lane.
Moreover, many of the goals that an agent sets for itself consist of tasks that the agent may not be able to complete solely on their own. If every driver takes the fastest route to their destination, with no consideration for the intent of other drivers on the road, we can all imagine what the outcome would be; traffic, deadlock, accidents and delays for all.
In the Fetch.AI digital world, many agents co-inhabit an environment. Each agent is designed to look after the interests of the entity they represent and these interests often conflict with one another as they cannot all be fulfilled at the same time. Equally, some of the goals the agents define for themselves to promote their personal interests cannot be achieved in isolation. This scenario is quite similar to a human society. Just as we cooperate and reach agreements with others in everyday life, the agents also need to have the capability to coordinate, cooperate and reach mutually acceptable agreements in order to achieve the outcome sought by the agents and their owners.
Drivers may not be able to achieve their goal of getting to their destinations quickly without coordinating their manoeuvres with other drivers. This coordination could be in the form of a central entity (e.g., a central traffic control unit) introducing all-encompassing regulations (e.g., blocking specific roads at particular times to ease the flow of traffic), or emerge purely out of a peer-to-peer interaction, such as by giving space to a car that is joining your lane.
Much of the research and development work I do at Fetch.AI relates to the problems I described, broadly falling under the following two categories: a) the design of individual intelligent agents capable of acting autonomously on their owner’s behalf, b) the design of technologies that facilitate the cooperation and coordination of autonomous agents, with selfish and often conflicting personal agenda, in a multi-agent environment.
If you’re interested in getting involved in the creation of a decentralised digital world of autonomous agents, please visit the careers page on our community site.