From fb61a5096008adfaa952ae41bc612b4251ae0caa Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Wed, 7 Dec 2022 17:12:59 +0100 Subject: [PATCH 1/2] Moved proof of representation into Introduction/AEA Framework core concepts/identity --- docs/identity.md | 15 ------------ docs/index.md | 62 ------------------------------------------------ mkdocs.yml | 7 +++--- 3 files changed, 4 insertions(+), 80 deletions(-) delete mode 100644 docs/identity.md delete mode 100644 docs/index.md diff --git a/docs/identity.md b/docs/identity.md deleted file mode 100644 index 82ff28c31d..0000000000 --- a/docs/identity.md +++ /dev/null @@ -1,15 +0,0 @@ -
-

Note

-

This section is incomplete and will soon be updated. -

-
- -The AEAs currently use the addresses associated with their private-public key pairs to identify themselves. - -Keys of an AEA - -To learn how to generate a private-public key pair check out the relevant CLI commands . - -To learn more about public-key cryptography check out Wikipedia. - -An AEA can provide evidence of its identity using third-party solutions. We have implemented a demo using Aries Hyperledger Cloud Agent which is available here and another demo using Yoti which is available here. 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/mkdocs.yml b/mkdocs.yml index 5f42ec3d1a..8a858da1b6 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,7 +13,10 @@ theme: strict: true nav: - - Introduction: 'index.md' + - Introduction: + - AEA Framework core concepts: + - Identity: + - Proof of Representation: 'por.md' - Version: 'version.md' - Upgrading: 'upgrading.md' - Concepts: @@ -22,7 +25,6 @@ nav: - Vision: 'vision.md' - Application areas: 'app-areas.md' - Relation to OEF and Ledger: 'oef-ledger.md' - - Identity: 'identity.md' - Trust minimisation: 'trust.md' - Demos: - Demos: 'demos.md' @@ -70,7 +72,6 @@ nav: - Multi agent manager: 'multi-agent-manager.md' - Debugging: 'debug.md' - Profiling: 'runtime-cost.md' - - Proof of Representation: 'por.md' - Security: 'security.md' - Architecture & component deep-dives: - Design principles: 'design-principles.md' From 88c00a0d74fb69d5e4f2565105dece4452753169 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Wed, 7 Dec 2022 17:16:20 +0100 Subject: [PATCH 2/2] Edits --- docs/por.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/por.md b/docs/por.md index 5a5c6e8acd..125086657d 100644 --- a/docs/por.md +++ b/docs/por.md @@ -1,4 +1,3 @@ - An AEA can use several key pairs. In particular, it can use different keys for securing its communication and for engaging in exchange. In the ACN we make use of this fact. To be able to signal to other agents that the address derived from one key pair is allowed to represent the agent controlling the other key pair, the key pair which is being represented must sign a message to prove that the other key pair is allowed to represent it. The `aea issue-certificates` command allows to create this association. The proof of representation feature is used in the context of the `fetchai/p2p_libp2p` and `fetchai/p2p_libp2p_client` connection. @@ -18,4 +17,4 @@ cert_requests: The `identifier` refers to the environment for which the signature is generated, here `acn`. The `ledger_id` refers to the key pair to be used from the `private_key_paths` specified in `aea-config.yaml` for signing. The `not_after` and `not_before` fields specify constraints on the validity of the signature. The `public_key` can specify either the identifier of the key pair in `connection_private_key_paths` of which the public key is signed or it can contain the to be signed public key in plain text. The `save_path` specifies the path where the certificate is to be saved at. -In the above example, the connection requests a certificate which is a signature of the `fetchai` public key in `connection_private_key_paths` with the `fetchai` key pair in `private_key_paths`. The validity of the signature will be constrained to the year `2021` for the environment `acn`. +In the above example, the connection requests a certificate which is a signature of the `fetchai` public key in `connection_private_key_paths` with the `fetchai` key pair in `private_key_paths`. The validity of the signature will be constrained to the year `2021` for the environment `acn`.