diff --git a/docker-images b/docker-images new file mode 160000 index 0000000000..e458302b36 --- /dev/null +++ b/docker-images @@ -0,0 +1 @@ +Subproject commit e458302b36451365f10cb4bebd842c3ab1427c03 diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index ab90cd3825..0000000000 --- a/docs/index.md +++ /dev/null @@ -1,59 +0,0 @@ -# AEA Framework Documentation - -The AEA framework provides the tools for creating Autonomous Economic Agents (AEA). - -## Autonomous Economic Agents (AEAs) - - - -### What is an AEA? - -!!! info "Definition" - An Autonomous Economic Agent (AEA) is an intelligent agent that acts on its owner's behalf, with limited or no interference, and whose goal is to generate economic value for its owner. - -- **Agent**: An AEA represents an individual, organisation or object and looks after their interests. -- **Autonomous**: AEAs act independently of constant input from their owner and autonomously execute actions to achieve their prescribed goals. -- **Economic**: Their purpose is to create economic value for their owner, in clearly defined domains. - -AEAs have a wide range of application areas and we provide demo guides to highlight examples of their use cases. - -### What is not an AEA - -- Any agent: AEAs' purpose is to generate economic value in a multi-stakeholder environment with competing incentives between agents. They represent humans, organisations or objects. -- APIs or sensors which do not have agency. -- Smart contracts which do not display any proactivity and are purely reactive to external requests (=contract calls and transactions). -- Artificial General Intelligence (AGI). AEAs can have a very narrow, goal directed focus involving some economic gain and can have a very simple logic. - -!!! note - In the rest of the documentation, unless specified otherwise, we use the terms AEA and agent interchangeably to refer to AEA as defined above. - -## What is the AEA Framework? - -The AEA framework is a development suite, currently implemented in Python, which equips you with an efficient and accessible set of tools for building and running AEAs. The framework is modular, extensible, and composable. It attempts to make agent development as straightforward an experience as possible, similar to web development using popular web frameworks. - -AEAs achieve their goals with the help of a search & 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. - -## Why Build with the AEA Framework? - -The AEA framework provides the developer with a number of features, which combined cannot be found anywhere else: - -- The peer-to-peer agent communication network (ACN) allows your AEAs to interact with all other AEAs over the public internet. -- The search and discovery system sOEF allows your AEAs to find other AEAs. -- The AEA registry enables code sharing and re-use by providing a space in which AEAs or their individual components may be shared. -- The framework's crypto and ledger APIs make it possible for AEAs to interact with blockchains. -- The contract packages enable AEAs to interact with smart contracts in Fetch.ai and other third-party decentralized ledgers. - -## Next Steps - -To get started developing your own AEA, check out the getting started section. - -To learn more about some of the distinctive characteristics of agent-oriented development, check out the guide on agent-oriented development. - -If you would like to develop an AEA in a language different to Python then check out our language agnostic AEA definition. - -If you want to run a demo, check out the demo guides. - -## Help us Improve - -!!! note - This developer documentation is a work in progress. If you spot any errors please open an issue on Github or contact us in the developer Discord channel. diff --git a/docs/introduction/what-is-the-aea-framework.md b/docs/introduction/what-is-the-aea-framework.md new file mode 100644 index 0000000000..36b1d12149 --- /dev/null +++ b/docs/introduction/what-is-the-aea-framework.md @@ -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. + + + +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. diff --git a/mkdocs.yml b/mkdocs.yml index 18b93a9e87..d9ab11f948 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -10,7 +10,8 @@ copyright: Copyright © 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: