# Dynamic Storage Optimization for Communication between AI Agents
## 1 Introduction  
There is enormous potential for innovation and disruptive influence across industries due to the widespread deployment of blockchain networks and AI technology [1]. Despite the hype, today and for the foreseeable future, AI is primarily narrow AI and not artificial general intelligence (AGI) [2]. In contrast to AGI, narrow AI is characterized by having a single capability [3], performing a single task. To automatically perform more complex, real-world tasks, multiple narrow AI agents can be interconnected in multi-agent architectures [4; 5; 6]. Thus, an efficient AI-to-AI communication paradigm is necessary to achieve the full potential of contemporary AI technologies. We can boost creativity, promote information exchange and cross-organizational collaboration, and accelerate the development and application of AI technologies by addressing the interoperability barrier [7; 8; 9]. Blockchain networks' decentralized structure provides transparency, immutability, and security, making it an excellent foundation for organizing and connecting AI agents [10]. However, the broad acceptance and effective application of AI within these networks are hampered by the absence of standardized protocols and smooth integration mechanisms. A decentralized ontology versioning paradigm would allow efficient communication and collaboration among AI agents in a decentralized environment [11; 12]. For this, three prerequisites need to be fulfilled. Firstly, the message structure must be declared to facilitate interaction between the AI agents. Secondly, an intuitive approach should be available for software engineers to create linkages between agents according to their inputs and outputs. Lastly, it is essential to specify the operational environment for these agents,ensuring a setting where the agents can be implemented together with their input-output specifications (see [11] for details). The first two of these prerequisites are illustrated in Figures 1 and 2. Figure 1 illustrates the modular architecture governing the exchange of messages between AI agents. The data exchanged among agents adhere to a flexible structure, allowing them to specify their inputs and outputs. This messaging framework is defined by ontology concepts, organized into layers as depicted in Figure 1, where the data represent an actual instance of an ontology concept. The model's versatility stems from its layered architecture, which facilitates the operation of multiple agents on different levels of data without requiring the transmission of the entire dataset. Each layer serves a distinct purpose:  
**Template Layer**: Optional. Offers partial views of the concept's fields, enabling its use for various purposes where only subsets of fields are necessary. **Versioning Layer**: Optional. Manages requests for evolving the concept's structure. **Instruction Layer**: Optional. Provides information on the concept's purpose and usage. Figure 1: Message layers optimized for machine-to-machine interaction. Figure 2: Algorithm composition. **Naming Layer**: Optional. Offers user-friendly labels for concept fields. **Restriction Layer**: Core. Contains cross-field validation rules for a concept. **Validation Layer**: Core. Stores rules to determine whether a given value can be stored in a particular field. **Defaults Layer**: Core. Provides default values for the concept's fields, ensuring consistency. **Encoding Layer**: Core. Specifies how the fields of a concept are encoded, guiding AI agents on data parsing or encoding during transmission. **Connection Layer**: Core. Stores addresses of complex concepts declared in the structural layer, enabling retrieval of definitions from decentralized storage. **Structural Layer**: Core. Defines the fields of a message, including their names and data types, which may be primitive (e.g., string, number) or complex (e.g., another concept). Only the core layers are needed in agent-to-agent interactions, even though a full ontology characterization calls for defining all layers (see Figure 1).