From eab8539cad8a4dd58c3c35ab5ab06f0427103ea6 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Thu, 10 Nov 2022 11:36:42 +0100 Subject: [PATCH 1/4] This PRs adds the introduction section - what is the aea framework? section --- docs/index.md | 62 ------------------- .../introduction/what_is_the_aea_framework.md | 15 +++++ mkdocs.yml | 3 +- 3 files changed, 17 insertions(+), 63 deletions(-) delete mode 100644 docs/index.md create mode 100644 docs/introduction/what_is_the_aea_framework.md diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index f852eab46f..0000000000 --- a/docs/index.md +++ /dev/null @@ -1,62 +0,0 @@ - -The AEA framework provides the tools for creating Autonomous Economic Agents (AEA). - -## What are AEAs? - -We define an autonomous economic agent or AEA as: - -> An intelligent agent acting on an owner's behalf, with limited or no interference, and whose goal is to generate economic value for its owner. - - - -An AEA represents an individual, organisation or object and looks after its interests. AEAs act independently of constant input from their owner and autonomously execute actions to achieve their prescribed goals. Their purpose is to create economic value for you, 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 proactiveness 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 decentralised 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..7b9c409de8 --- /dev/null +++ b/docs/introduction/what_is_the_aea_framework.md @@ -0,0 +1,15 @@ +# What is the AEA Framework? + +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 optimise 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 organisations 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 characterised in programming terms by the software components they incorporate, the data with which they are initialised, 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 +* A _desktop app_ to run finished agents. + +The AEA Framework is not the first agent framework. In fact, there have been many frameworks proposed in the literature and multiple implementations exist, but the AEA framework differs from them because of its fully decentralised nature, making it a truly decentralised 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 decentralised 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. diff --git a/mkdocs.yml b/mkdocs.yml index 5f42ec3d1a..5e4c2bffde 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,7 +13,8 @@ theme: 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: From 608d97350a6ece646c8e267c88b40dd3ed88a592 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Thu, 10 Nov 2022 12:06:18 +0100 Subject: [PATCH 2/4] Minor edit to mkdocs.yml --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 5e4c2bffde..d15c64cdaa 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -14,7 +14,7 @@ strict: true nav: - Introduction: - - What is the AEA Framework?: "introduction/what_is_the_aea_framework.md" + - What is the AEA Framework?: 'introduction/what_is_the_aea_framework.md' - Version: 'version.md' - Upgrading: 'upgrading.md' - Concepts: From 26ca64ccf1d79bd9c50ec31a7f1201dd6f973845 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Thu, 10 Nov 2022 13:18:50 +0100 Subject: [PATCH 3/4] Added second section of introduction --- docs/introduction/what_is_the_aea_framework.md | 15 --------------- docs/introduction/who_is_the_aea_framework_for.md | 12 ++++++++++++ mkdocs.yml | 2 +- 3 files changed, 13 insertions(+), 16 deletions(-) delete mode 100644 docs/introduction/what_is_the_aea_framework.md create mode 100644 docs/introduction/who_is_the_aea_framework_for.md diff --git a/docs/introduction/what_is_the_aea_framework.md b/docs/introduction/what_is_the_aea_framework.md deleted file mode 100644 index 7b9c409de8..0000000000 --- a/docs/introduction/what_is_the_aea_framework.md +++ /dev/null @@ -1,15 +0,0 @@ -# What is the AEA Framework? - -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 optimise 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 organisations 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 characterised in programming terms by the software components they incorporate, the data with which they are initialised, 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 -* A _desktop app_ to run finished agents. - -The AEA Framework is not the first agent framework. In fact, there have been many frameworks proposed in the literature and multiple implementations exist, but the AEA framework differs from them because of its fully decentralised nature, making it a truly decentralised 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 decentralised 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. diff --git a/docs/introduction/who_is_the_aea_framework_for.md b/docs/introduction/who_is_the_aea_framework_for.md new file mode 100644 index 0000000000..b1499956cd --- /dev/null +++ b/docs/introduction/who_is_the_aea_framework_for.md @@ -0,0 +1,12 @@ +# Who is the AEA Framework for? + +The AEA Framework is directed towards: + +* Smart contract developers +* Agents-oriented developer +* Researchers (Artificial Intelligence, Machine Learning, Multi-Agent Systems) +* Data scientists and Economists +* Engineers +* Machine learning experts +* Students and academics +* Crypto connoisseurs and enthusiasts diff --git a/mkdocs.yml b/mkdocs.yml index d15c64cdaa..421aa39dcc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -14,7 +14,7 @@ strict: true nav: - Introduction: - - What is the AEA Framework?: 'introduction/what_is_the_aea_framework.md' + - Who is the AEA Framework for?: 'introduction/who_is_the_aea_framework_for.md' - Version: 'version.md' - Upgrading: 'upgrading.md' - Concepts: From 26465b7a4e3affe3ef851dded233dce3cf462624 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Wed, 25 Jan 2023 11:15:29 +0100 Subject: [PATCH 4/4] Edits and submodule update --- docker-images | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-images b/docker-images index ce903f0844..e458302b36 160000 --- a/docker-images +++ b/docker-images @@ -1 +1 @@ -Subproject commit ce903f08447aafc935d62ffbde29d9900d57f2eb +Subproject commit e458302b36451365f10cb4bebd842c3ab1427c03