Design

The AEA framework is designed as an actor-like asynchronous message passing system. As such, it allows for a high degree of modularity and components largely communicate via messages. The framework can be divided into two parts: the core developed by the authors and external contributors, and packages implementing agent-specific business logic. These can be developed by anyone using the framework. There are four types of packages that can be readily added to the framework: – Skills: primary business logic modules (CPU bound), – Protocols: messages and dialogue rules, – Connections: networking related (I/O bound) logic and translations between AEA and third-party protocols, – Contracts: wrappers for smart contract logic. Furthermore, the framework allows straightforward inclusion of additional APIs to third-party DLTs via framework plugins and supports the use of readily available soft- ware packages in the target programming language. From the perspective of the framework, packages consist of code and configuration. The framework loads the specified packages and then places them with respect to each other and executes them where appropriate (cf. inversion of control). Before we explore the packages in turn, we discuss the core framework components

Last updated