Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docker-images
Submodule docker-images added at e45830
59 changes: 0 additions & 59 deletions docs/index.md

This file was deleted.

29 changes: 29 additions & 0 deletions docs/introduction/what-is-the-aea-framework.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
The **Autonomous Economic Agent (AEA) Framework** is a software development toolkit which provides an efficient and accessible set of tools to build and run AEAs out of different components. The framework tries to make agent development as easy as possible, similar to web development using popular web frameworks. The aim is to pursue a goal or optimize an internal utility function. This is because an AEA is an intelligent agent acting on the owner's behalf. This can happen with limited or no interference and the goal is to generate economic value for its owner, thanks to AEAs having the ability to interact and participate in different types of economic exchange with other AEAs, individuals, and organizations on their own. To accomplish this, an agent usually needs to connect to and communicate with many other services and other agents. Distributed Ledger Technologies (DLT) support the primary settlement and commitment layer. AEAs are characterized in programming terms by the software components they incorporate, the data with which they are initialized, and the wallet they govern. Cryptographic key-pairs are kept in their wallet and are used to sign transactions and messages.

The AEA Framework also offers auxiliary tools and services, including a command line interface (CLI), a protocol generator to generate protocols' code from their specifications, test tools, a registry for Framework packages, and a desktop app to run finished agents.

!!! note

The AEA Framework is not the first agent framework. There have been many frameworks proposed in the literature and multiple implementations exist, but the AEA framework differs from them because of its fully decentralized nature, making it a truly decentralized multi-stakeholder environment with native support for DLT, developers and users of agents.

The AEA framework is modular, extensible, and composable and is currently implemented in Python. AEAs achieve their goals with the help of a search and discovery service for AEAs, the simple Open Economic Framework (sOEF), a decentralized agent communication system, the Agent Communication Network (ACN), and using Fetch.ai's blockchain as a financial settlement and commitment layer. AEAs can also be integrated with third-party blockchains, such as Ethereum.

<iframe width="560" height="315" src="https://www.youtube.com/embed/xpJA4IT5X88" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

It is important to highlight that AEAs are not:

* **Artificial General Intelligence (AGI)**: AEAs have a narrow goal with a directed focus that involves some economic gain.

* **Application Program Interface (API)**: APIs have no agency and are not separate economic entities.

* **Smart contracts**: Smart contracts allow for credible transactions to occur without third parties on blockchains. Like APIs, they require user input in the form of transactions and are therefore not autonomous agents.

Agents can present themselves in different contexts and environments. This allows agents to find each other easily depending on what they are 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.

!!! example

Perhaps consider 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. 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 are 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 fulfill its requirements.

For instance, 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.

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.
3 changes: 2 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ copyright: Copyright &copy; 2018 - 2023 Fetch.ai # Copyright notice in footer
strict: true

nav:
- Introduction: 'index.md'
- Introduction:
- What is the AEA Framework: 'introduction/what-is-the-aea-framework.md'
- Version: 'version.md'
- Upgrading: 'upgrading.md'
- Concepts:
Expand Down