From 6de3966c5bdb57702e7ccfbf402088615e1bfff4 Mon Sep 17 00:00:00 2001 From: Felix Nicolae Bucsa Date: Mon, 5 Dec 2022 13:01:51 +0100 Subject: [PATCH] Added new introduction section for application areas --- docs/index.md | 62 ----------------- .../framework-application-areas.md | 69 +++++++++++++++++++ mkdocs.yml | 3 +- 3 files changed, 71 insertions(+), 63 deletions(-) delete mode 100644 docs/index.md create mode 100644 docs/introduction/framework-application-areas.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/framework-application-areas.md b/docs/introduction/framework-application-areas.md new file mode 100644 index 0000000000..abfe5a62ca --- /dev/null +++ b/docs/introduction/framework-application-areas.md @@ -0,0 +1,69 @@ +The environment in which agents may operate features the following features: + +* **Decentralization**. +* **Attraction of multiple stakeholders** who are represented by AEAs populating this environment and which: + + - interact autonomously, and + - communicate with one another directly via a P2P network. + +## Areas of application + +We identify a number of application areas for AEA-based solutions. This list is by no means comprehensive. In fact, we are most excited about applications which we have not thought of before. For instance: + +1. **Inhabitants**: agents representing objects in the IoT (Internet of Things) space. + + !!! example + + For example, AEAs paired with real world hardware devices such as drones, laptops, heat sensors, etc. An example is a [thermometer agent](https://docs.fetch.ai/aea/thermometer-skills). + +2. **Interfaces**: facilitation agents which provide the necessary API interfaces for interaction between existing (Web 2.0) and new (Web 3.0) economic models. + + !!! example + + An example is an AEA with [HTTP connection and skill](https://docs.fetch.ai/aea/http-connection-and-skill) who has the capability to communicate using HTTP. + +3. **Pure software**: software agents living in the digital space that interact with interface agents and others. + +4. **Digital data sales agents**: software agents that attach to data sources and sell it via the open economic framework. An example can be found [here](https://docs.fetch.ai/aea/ml-skills). + +5. **Representative**: an agent which represents an individual's activities on the Fetch.ai network. An example can be found [here](https://docs.fetch.ai/aea/tac-skills). + +In the _short-term_, we see AEAs primarily deployed in three main areas: + +1. **Off-load repetitive tasks**: AEAs can automate well-defined processes in different domains such as supply chain, mobility and finance, etc. + +2. **Micro-transactions**: AEAs make it economically viable to execute trades which involve small value transfers. This is particularly relevant in areas where there is a (data) supply side constituted of many small actors and a single demand side. + +3. **Wallet agents**: AEAs can simplify interactions with blockchains for end users. For instance, they can act as "smart wallets" which optimize blockchain interactions on behalf of the user. + +!!! warning + + Multi-agent systems (MAS) enabled by the AEA Framework are technological agent-based solutions to real problems and, although there is some overlap, the Framework is not designed from the outset to be used as an agent-based modeling software where the goal is scientific behavioral observation rather than practical economic gain. + + Moreover, single-agent applications are also supported. In light of such considerations, agent frameworks and MAS have only found limited real-world applications despite being developed in the research community for multiple decades. We hope that the AEA Framework will see adoption in and contributions from the wider MAS community. This Framework can be adopted in various application scenarios considering that the overarching theme encompassing all these application areas is the coding of interactions between different economic entities. + +A more general list of possible applications areas for AEA-based solutions can be the following: + +1. **Automate user interactions with blockchains**: AEAs can be used to automate a user's interactions with the blockchain. The advantage is that the AEA can consistently and efficiently carry out the interactions. + + !!! example + + The Autonomous Hegician, for example, employs an AEA to automate option management. + +2. **Enhance user interactions with blockchains**: users are heavily constrained when using blockchains by the web clients they have access to and their own abilities. An AEA can interact with a blockchain much faster, more securely and with more (on-chain) protocols than a human ever could. + +3. **Abstract ledger specifics for developers**: for developers the framework abstracts away many ledger specifics. It allows developers to reuse plugins for specific ledgers which provide a common interface, thereby making it straightforward to write cross-ledger applications. + +4. **Supply off-chain data to blockchains**: transaction based blockchain systems rely on constant external input to progress. As a result oracles take an important role for many on-chain applications. AEAs can be used to operate oracles. Since AEAs can utilize off-chain protocols they are the ideal framework to develop resilient oracles. + +5. **Bridge different ecosystems**: an AEA can bridge disconnected ecosystems. For instance, it can wrap a public API to serve data to other agents in agent native protocols, or expose its information via a server. + +6. **Enable agent to agent interactions**: AEAs shine when they are used to building multi-stakeholder agent-based solutions. + + !!! example + + Some examples we and other teams worked on include supply chain, mobility and decentralized manufacturing marketplaces. AEAs can also be connected to Layer 2 solutions like state channels (e.g. Perun, State Channels) and rollups (e.g. Optimism, ZkSync) to enable faster and cheaper transactions. + +7. **Simplify protocol development**: a side effect of the AEA's protocol generator is that it allows developers to easily define new interaction protocols. In fact, with some extra effort this tool could be made available to everyone, it will become easier and easier to develop new protocols. + +8. **Simulate multi-stakeholder economies**: although the framework was not developed for simulations and agent-based modeling, it does lend itself under certain scenarios for this purpose. In particular, when no synchronization between agents is required and the simulation is meant to be as-close-to-reality-as-possible then the AEA framework can be used for this purpose. The multi-agent manager lets developers spin up many agents in a programmatic and dynamic way. diff --git a/mkdocs.yml b/mkdocs.yml index 5f42ec3d1a..3c037dc3ae 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,7 +13,8 @@ theme: strict: true nav: - - Introduction: 'index.md' + - Introduction: + - Framework application areas: 'introduction/framework-application-areas.md' - Version: 'version.md' - Upgrading: 'upgrading.md' - Concepts: