Introducing Autonomous Economic Agents

Joshua Croft
Fetch.ai
Published in
5 min readSep 20, 2018

--

Autonomous Economic Agents are adaptive, independent programs that work for you, for an entity, or themselves for whatever reason they’re tasked. Fetch is a distributed network comprised of nodes which act as a service and directory for Autonomous Economic Agents (agents). Each install of Fetch (for example, you wish to run Fetch at home) is regarded as a node. This post is a rework of our introduction to agents from our technical introduction.

Fetch creates a world where industries can be linked by interconnected dynamic agents, which can trade, organise and schedule based on activity and predicted activity; a world where your journey can be booked with precision, with real-time updates from start to finish, no matter how complicated.

Fetch allows, low-powered devices to connect to a distributed, decentralised system; a system where an agent on a sensor measuring air composition in a remote laboratory can send a message to an agent controlling air mixing to increase oxygen and decrease carbon dioxide. The same agent can send a message to all relevant agents, locally and on the network requesting additional oxygen, or alert the personal agents of people nearby that someone left a window open.

Agents can work together to solve complex problems. Agents can buy data from agents representing data, allowing the purchasing agent to build models on whatever subject it wishes to, or has been instructed to do. The agent could then sell the results of the model to other agents; the agent would be selling predictions. This exchange is conducted using Fetch tokens via the agent’s “wallet”.

Agents are autonomous, meaning that they can act in ways that aren’t explicitly specified by a human. Effectively, they can act on their own behalf, not just on someone else’s behalf. As agents are allowed and designed for autonomy, they have an essential need to be unique and identifiable therefore every agent has a unique identifier.

On the Fetch network, agents are able to be connected to more than one node at a time. They can do this for security and redundancy reasons and also to be in more than one place at once. For example, an agent that is able to perform any kind of data analytics may want to be known across the network, not just on a single node.

To transact with other agents, an agent must register on a node and pay a deposit we refer to as a trolley token, this deposit is a mechanism to encourage good behaviour. This deposit is refunded in one of two ways: a graceful unregister with no pending/in-progress transactions; or the node fails.

Agents can present themselves in different contexts and environments. This allows agents to find each other easily depending on what they’re looking for. To explain this more simply agents can present themselves on a different ‘layer’ within Fetch, allowing an agent to search using different parameters, such as direction, proximity or attribute.

An agent that uses its geographic location can be better positioned to serve data from an area; perhaps this is an agent for a local restaurant — the agent’s declared geographic location is very important when a food ordering agent is searching on the behalf of a user. Geographic location is very useful when an agent is searching the network for services within a radius, or direction. For example “Find me any public bathrooms within 2 miles in the direction i’m travelling”.

Economic position allows an agent to be ‘near’ agents with similar or related economic interests, such as its customers or competitors. Their geographic location is irrelevant; as they’re linked by economic proximity. For example, an agent which represents solar panels will be relevant to agents representing wind power. This allows an agent that requires energy to efficiently search for other agents that can fulfil its requirements.

Agents representing elements in a hotel such as agents for booking/food/customisation could also be linked only by economic location as their geographic location does not need to be anywhere near the establishment, however there can be crossover.

Finally, agents can exist in network space, where geographic and economic position have no meaning; any digital service such as an agent that can translate voice from one language to another does not need to have a presence in the geographic layer or a specific economic layer.

Agents are not all the same, but we do envisage at least five types of agent. It’s very possible there will be multiple types of the same agent, and there are likely to be more categories we haven’t yet considered.

1. Inhabitants — these are agents paired to hardware that exists in the real world. These could be agents in cars, drones, sensors, cameras, mobile phones or computers. Agents do not control these devices, they exist “inside” them; for example, an agent in a self-driving car does not drive the car, it tells the car where to drive.

2. Interfaces — these provide an interface between the old and the new economy. We call these API agents or facilitation agents. They allow agents to work with and leverage elements of the conventional economy. Agents that sell tickets to an event can be thought of as facilitation agents.

3. Pure software — these are agents that exist in the digital space only. They explore, negotiate with, and find new ways of serving their stakeholders. These are teams of entities that work to organise, schedule and arrange other agents attached to hardware and interfaces to provide complete solutions.

4. Digital data sales agents — these are a specific class of pure software agents that attach to data sources in data marketplaces and go out into the Fetch world to extract value from that data. This is a solution to what is seen as the number one problem of the data industry: data does not sell itself.

5.Representative — agents that represent an individual and act as their interface to the Fetch network, acting as a “digital butler”. Their learning systems are tasked with understanding their owners’ preferences and initiating autonomous requests to fulfil the requests from the owner.

Agents are the front facing, problem-solving, life-changing aspect of Fetch that I lead development on. Agents are the malleable part of Fetch where you and I can create the future; where our agents will be working together to create an easier journey in your day, or save you twenty Fetch tokens on your electricity bill. Over the forthcoming weeks, I’ll be sharing a lot more information on what an agent is, and how they will work in your life, in the digital world, industries and the physical world too. I’ll be finishing this post series with development posts, and code examples. This is an exciting time as the capabilities of Fetch agents are rapidly progressing.

If you have any questions, comment here, contact me on Telegram or just send an email.

Josh@Fetch.ai

--

--

Joshua Croft
Fetch.ai

Lead Application developer at Fetch.AI. Also not bad at riding a bike.