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/7] 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/7] 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 e700ef28333964ec0c5556c0459341479319ec39 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Thu, 10 Nov 2022 12:30:44 +0100 Subject: [PATCH 3/7] Edits --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index d15c64cdaa..5e4c2bffde 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 0f7eacb05730b8f7df34c16932fc1a78cf62d647 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Thu, 10 Nov 2022 14:27:48 +0100 Subject: [PATCH 4/7] Minor changes --- 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 f5adf97a5000d576174495578e40c3fad35f3a62 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Mon, 14 Nov 2022 10:16:27 +0100 Subject: [PATCH 5/7] Edits and solved conflicts --- docs/index.md | 60 +++++++++++++++++++ .../introduction/what_is_the_aea_framework.md | 15 ----- mkdocs.yml | 3 +- 3 files changed, 61 insertions(+), 17 deletions(-) create mode 100644 docs/index.md delete mode 100644 docs/introduction/what_is_the_aea_framework.md diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000000..b1f4cab268 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,60 @@ +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 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/mkdocs.yml b/mkdocs.yml index d15c64cdaa..5f42ec3d1a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,8 +13,7 @@ theme: strict: true nav: - - Introduction: - - What is the AEA Framework?: 'introduction/what_is_the_aea_framework.md' + - Introduction: 'index.md' - Version: 'version.md' - Upgrading: 'upgrading.md' - Concepts: From 06238ddf7b6b40b1381357c4f4b3a2ef045eb574 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Mon, 5 Dec 2022 12:37:37 +0100 Subject: [PATCH 6/7] added intro section --- docs/index.md | 60 ------------------- .../introduction/what-is-the-aea-framework.md | 29 +++++++++ mkdocs.yml | 5 +- 3 files changed, 32 insertions(+), 62 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 b1f4cab268..0000000000 --- a/docs/index.md +++ /dev/null @@ -1,60 +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..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 5f42ec3d1a..c73ed99b28 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: @@ -32,7 +33,7 @@ nav: - Gym skill: 'gym-skill.md' - ML skills: 'ml-skills.md' - Oracle skills: 'oracle-demo.md' - - Aggegation skill: 'aggregation-demo.md' + - Aggregation skill: 'aggregation-demo.md' - TAC skills: 'tac-skills.md' - TAC skills ledger-based: 'tac-skills-contract.md' - TAC external app: 'tac.md' From 933d5469cbe0eb45c3de14f8678092f618bdf098 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Wed, 25 Jan 2023 11:42:41 +0100 Subject: [PATCH 7/7] edits --- docker-images | 1 + 1 file changed, 1 insertion(+) create mode 160000 docker-images 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