Micro-Agent: Computer Science of Evolution and Intellectual Creation

katoshi
Neo-Cybernetics
Published in
14 min readMar 3, 2024
Photo by BoliviaInteligente on Unsplash

How do living organisms function, and how did life emerge from an inanimate environment? While not fully unraveled, the accumulation of chemical reactions involving the chemical substances that constitute life and the evolution of these substances and organisms themselves are key to understanding life.

As a systems engineer, I am contemplating the fundamental design for a simulation system that aptly mimics these foundational chemical reactions and evolutionary mechanisms. Direct simulation of chemical reactions requires vast knowledge and extensive programming, so I aim to use essentially important abstract models to grasp the overall mechanism and origin of life.

In attempting to design such a simulation system properly, I’ve had an insight while considering the mechanisms of chemical reactions within living organisms.

Viewing from the perspective that chemical substances engage in various chemical reactions within a liquid, contributing to life maintenance and evolution, it becomes clear that these processes advance through a chain of inputs and outputs, much like computer processing. However, while the overarching progression of processing appears similar, the fundamental methods of processing are based on fundamentally different approaches.

The difference lies between the pre-determined processing sequence of computer programs and the chemical circuit processing method, where the output of one chemical reaction triggers the next.

In this article, based on this insight, I analyze the processing method of chemical circuits from a computer science perspective. By reinterpreting it in terms of data and processing relationships, I propose a system fundamental design based on the micro-agent architecture concept. Delving into micro-agent architecture reveals potential applications beyond the initial inspiration of simulating chemical evolution. It suggests a new system development paradigm with flexible adaptability, applications in evolving knowledge systems, new types of artificial intelligence technologies, and automated brainstorming systems.

Although the content has expanded in the writing process, resulting in a lengthy text, let’s delve into the details in the following main body.

Flexibility in Processing Order

In general, programs execute according to a predetermined sequence of operations. If this sequence is altered, in many cases, the result of the process will be completely different.

Typical neural networks have a layered structure, with a fixed sequence from the input layer to the output layer. Changing this sequence would likely disrupt the learned information.

Thus, many systems are structured with a predetermined sequence of operations as dictated externally.

On the other hand, consider a chain of chemical reactions in a liquid solvent containing several different catalysts. The substance produced by a chemical reaction initiated by the first catalyst becomes the material for another chemical reaction triggered by a different catalyst.

In this scenario, the sequence of chemical processes, or chemical treatments, is not structurally determined. Within the liquid solvent, the catalysts are essentially dissolved evenly.

When chemicals that serve as materials for chemical reactions are added, or when energy such as heat or light is introduced externally, one of the chemical reactions will start, leading to a chain of processes.

Inside living cells, many such chains of chemical reactions, known as chemical circuits, occur. While some of these are structured with predetermined sequences due to the cellular organelles or cytoskeleton, others occur flatly within the cytoplasm, which is liquid.

Processing Model of Chemical Circuits in Liquid

The processing model of chemical circuits in liquid can be considered a micro-agent architecture.

Within system architecture, agents are a concept that pairs with services.

The basic flow of a service provided by a server is to be called by a caller, perform the process, and return the result to the caller.

Agents are the entities that call services.

On the service side, there is a concept called microservice architecture, where services are divided into relatively small functional units.

Micro-agents represent the corresponding approach from the caller’s side, breaking down the caller’s program into smaller components.

However, implementing micro-agents in conventional procedural programming is challenging because the relationship between processes is crucial in procedural programming.

While it’s easier to implement microservices, where a single agent calls services in sequence, creating micro-agents that break down the calling agents is more difficult.

If individual agents can execute processes without concern for the sequence with other agents, similar to the chemical circuit model in liquid, then micro-agents can be realized.

Micro-Agent Architecture

Referencing the processing model of chemical circuits in liquid, envisioning two layers makes understanding the micro-agent architecture easier.

One layer is for agents, and the other is for data.

Agents monitor data and process incoming data to produce output data.

In this way, each agent is designed to process individually without having to take over from another agent. They trigger processes by monitoring data, allowing for independent operation without concern for each other’s processing order.

This design enables individual agents to improve their processing accuracy and speed, fix bugs, or extend functionality by adding different inputs or outputs more easily.

If the design allows multiple instances of a type of agent to execute processes in parallel, processing time can be reduced.

This parallels the concept that increasing the number of catalysts in a chemical circuit allows for simultaneous chemical reactions. To achieve this, it’s crucial to design input and output containers to avoid bottlenecks.

If multiple processing entities cannot concurrently access a single file or table packed with data, it becomes a bottleneck.

Data Lake

In the processing model of chemical circuits in a liquid medium, the container for data is what’s commonly referred to as a data lake.

In conventional programming and system design, data of each type is stored in specific variables, files, or tables designated for that type. Usually, homogeneous data is stored in the same container, and numerous such containers are prepared.

Programs and systems extract data from the necessary containers when needed, process it, and save the results in another container.

In contrast, a data lake is a single container that can hold various types of data. Even data of different qualities can be stored flatly within a data lake.

Convection-based Data Processing

Consider numerous micro-agents accessing a data lake filled flatly with various types of data.

In the processing model of chemical circuits in liquid, agents and data meet through convection.

At any given time, each piece of data is accessed by only one agent, and conversely, one agent accesses only one piece of data at a time.

Agents access data in sequence, regardless of whether it is the data they are meant to process. Numerous agents access different pieces of data without overlapping, and once they are done, they move on to the next piece of data without overlapping with each other.

For this to work, agents cannot randomly access data in the queue or access it in different orders.

All agents should follow a common rule of accessing different data while moving to the next data in the same sequence.

This resembles the way chemical substances meet in sequence through convection in a liquid.

Such a platform, where numerous micro-agents access data in the data lake simultaneously and in sequence, will be referred to as convection-based data processing.

Parallel Processing

The same type of data or even identical data can be stored in a data lake. Likewise, micro-agents performing the exact same processing can be operated.

Even with the mechanism of convection-based data processing, this can be utilized to speed up processing by having multiple agents perform the same processing in parallel, or slow it down by reducing the number of agents.

Ring-shaped Linked List

By placing the results processed by micro-agents back into the data lake, other micro-agents capable of processing that data will eventually access and process it.

In convection-based data processing, setting up a mechanism to centrally manage the data access and processing sequence in the data lake will create a bottleneck. Therefore, it is appropriate to organize each piece of data into a ring-shaped linked list, linking to the previous and next data.

This allows for the distributed execution of inserting processed results into the data lake at the current access point or deleting processed data.

Exclusive Processing

The processing time for a single piece of data varies for each agent. As a result, even when multiple micro-agents process data in the same sequence, there may be cases where they access the same data.

Therefore, micro-agents need to lock the data when accessing it and unlock it once processing is complete.

If an agent attempts to access data that is locked, it will skip it without waiting for the processing to finish. Otherwise, all agents would be forced to process at the pace of the slowest agent.

Micro-Agents as Operators

In programming terminology, an operator refers to relatively simple operations like addition and subtraction, which correspond to machine language instructions at the processor level.

Micro-agents can ultimately be decomposed down to the level of individual operators.

The number of data items an operator processes can range from a single item to multiple items. For example, an operator that inverts the sign of a number processes only a single numeric data item, while addition and subtraction involve two numeric data items.

Handling of Processed Data and Results

When micro-agents process data, considerations must be made regarding what to do with the original data and how to handle the result data.

It’s common to delete the original data after processing. The result data, on the other hand, is typically stored anew in the data lake.

Structuring

Rather than relying on a single data lake, a system could employ multiple data lakes within a micro-agent architecture.

In this scenario, some micro-agents are tasked with placing processed result data into another data lake.

This approach allows for the movement of some data to another data lake. If the process involves moving data from one data lake to another, it can facilitate workflow-like processing.

Additionally, copying data can serve as a means to backup a data lake. This allows for the original data lake to serve as long-term storage, while processing occurs in a working data lake, ensuring that data is not lost.

Geographically distributed data collection lakes can streamline data collection and centralize data by copying it to a common data lake.

Efficiency of Processing

In large data lakes, the efficiency of convection processing by micro-agents may be low. Therefore, moving data to smaller data lakes can improve processing efficiency.

This approach involves surrounding a large data lake with smaller ones, assigning each moving or copying micro-agent to a specific small data lake.

If many similar data items are placed in a small data lake with corresponding micro-agents circulating, this can be leveraged for parallel processing of the same type of data.

By distributing different data across different small data lakes, data can be categorized for more efficient processing.

Live Data Branching

Copying data to another data lake enables the development and experimentation with new systems without adversely affecting the original data or system. This is similar to the process of creating a working branch from a source code repository during software development.

When copying a data lake using micro-agents, any addition of data to the original data lake is automatically reflected in the branch data lake as well. This can be referred to as a live data branch.

Live System Branching

If there is a system developed on a live data branch, it is also possible to copy the entire system in a manner similar to branching.

By copying all micro-agents related to that branch, including those copying data from the original data lake, and connecting them to the original data lake, this can be achieved.

This allows for the addition of features, improvements, and bug fixes to the system without negatively impacting the original data or system.

This could be called a live system branch.

From Chemical Circuits to Biological Systems

The inspiration drawn from chemical circuits and organized into the micro-agent architecture, which facilitates live system branching, offers a perspective back to the field of chemistry. It suggests that live system branching mirrors the mechanisms of growth and evolution found in biology.

Multicellular organisms develop and grow from a single embryonic or egg cell through cell division. During this process, the chemical circuit operations within each cell never cease. Cells may divide into identical copies or differentiate into cells with distinct characteristics and roles.

This phenomenon closely resembles the mechanism of live system branching.

DNA as a Collection of Operator Codes

New organisms inherit genetic information from their parents through DNA, which may undergo changes due to mutations or breeding, diverging in part from the parental genetic information. These changes through breeding and mutations drive evolution.

This is analogous to modifying a live system branch created by copying all micro-agents from the original system. In this context, DNA serves as a collection of source codes for all micro-agents. Proteins, which trigger various chemical reactions, are produced from this DNA.

These proteins act as operators in the chemical circuits.

Micro-Agent Architecture in Biology

When humans modify systems, they intelligently decide what needs to be preserved and improved without damaging the original mechanisms. Even minor changes in sequence or errors in traditional procedural programs could cause system-wide malfunctions, which was acceptable under controlled adjustments.

However, breeding and mutations in biology are random. A system where minor changes could disrupt the whole, as in procedural programming, would make reproduction and evolution difficult to coexist.

The micro-agent architecture is well-suited for this environment.

In a micro-agent architecture, the sequence of operations is not hardcoded into the program but determined by the state of data within the data lake. Thus, program modifications do not lead to inconsistencies between data states and processing sequences.

Even if random changes cause some micro-agents to malfunction, others continue to operate. Moreover, because multiple types of micro-agents coexist and process concurrently, several similar micro-agents performing nearly identical functions can coexist.

This means that even if one micro-agent becomes dysfunctional due to random changes, others that perform similar functions can continue processing, avoiding total system failure.

Furthermore, the emergence of new types of micro-agents might not impede critical processes. The distributed and parallel processing by other agents allows for the continuation of standard operations, even if new micro-agents could potentially disrupt everything.

From these perspectives, the micro-agent architecture is robust against random changes, making it suitable for the processes of reproduction and evolution in biological systems.

Micro-Agent Architecture in Chemical Evolution

The fact that micro-agent architecture, modeled after chemical circuits, can explain the properties of biological systems provides an even more intriguing perspective: chemical evolution.

Evolution is generally understood as the phenomenon arising from the self-replication and variation of genetic structures through DNA and the natural selection of such genetic information. This describes biological evolution.

However, chemical substances can also evolve through replication, variation, and natural selection. This is chemical evolution.

As previously explained, from the perspective of micro-agent architecture, biological evolution is based on the processing of a collection of operator codes (DNA) and the operators (proteins) produced from it.

Thus, from the viewpoint of micro-agent architecture, evolution is facilitated by the processing of codes and operators.

This suggests that even in non-living entities, as long as there are roles for codes and operators and an environment for micro-agent architecture processing, evolution can proceed.

Chemical substances meet these conditions. Micro-agent architecture originally models the chain reactions of chemical substances in a liquid.

DNA or RNA as codes, and proteins or RNA as operators, are chemical substances. Moreover, other chemical substances can also partially function as codes or operators.

Applications of Micro-Agent Architecture

This indicates that micro-agent architecture is likely well-suited for simulating chemical evolution.

The challenge in designing simulations of chemical evolution lies in mimicking the part where newly formed chemical substances initiate new chemical reactions in succession.

In the simulation, substances that trigger new chemical reactions must be represented as a kind of operator. It’s not just about processing chemical substances as data; the processed data must also act as operators.

This is difficult to achieve with the conventional procedural programming mindset.

With micro-agent architecture, it’s easier to treat newly added data in the data lake both as data and as operators. It’s also suitable for scaling up processing through distributed parallel simulation.

Furthermore, during the process of chemical evolution, chemical substances may be temporarily sequestered or isolated from other substances, such as being enclosed within a lipid membrane to undergo chemical reactions. This can also be simulated through the structuring of multiple data lakes.

Thus, successfully simulating chemical evolution using micro-agent architecture could potentially lead to the observation of systems resembling pseudo-organisms.

Logical Evolution

Chemical and biological evolution are concrete examples of self-evolving systems. If this can be replicated with micro-agent architecture, we might gain an understanding of a more abstract mechanism of evolution, which could be termed logical evolution.

If the principles of abstract logical evolution become clear, it may allow us to observe logical evolutionary phenomena within rules that are independent of real-world physical laws or chemical properties, yet share similar characteristics with chemical and biological evolution.

Artificial Intelligence Beyond Logical Evolution

Applying this concept could clarify the conditions necessary for evolution in terms of laws and principles. Like how life thrives in Earth’s scientific environment, it might be possible to create systems that self-evolve and flourish on various datasets or knowledge domains.

This could be considered a form of artificial intelligence.

However, unlike current artificial intelligence, which is influenced by the brain’s learning mechanisms and based on neural networks, this approach is based on the mechanisms of biological and chemical evolution, marking a distinct approach.

While neural networks learn existing data or knowledge patterns, the micro-agent architecture evolves on top of those data or knowledge, representing a significant difference in approach.

The essence of learning is imitation, and current artificial intelligence can be seen as highly advanced in imitating human behavior. On the other hand, evolution is fundamentally about creation. Given an environment identical to Earth, it’s likely that a different path of evolution would be followed, leading to a different ecosystem and organisms.

This suggests that artificial intelligence could either replicate human-like thought processes and knowledge through learning or develop fundamentally different systems of knowledge and ways of thinking.

Application to Brainstorming

The mechanism discussed could be particularly useful in fields where new ideas are sought over existing concepts, such as in creative writing like novels, devising new academic approaches, or considering new businesses and products.

In such cases, it is desirable to gather knowledge and ideas from diverse backgrounds in one place for examination. It’s also important to incorporate newly generated knowledge and ideas into subsequent deliberations alongside existing ones.

This is the well-known method of idea examination called brainstorming. In this context, knowledge and ideas could be in the form of text, diagrams, illustrations, or photographs.

Thus, brainstorming fits well with the micro-agent architecture. Keeping knowledge and ideas in a data lake facilitates the collection of data from different sources into the data lake and the storage of outcomes from deliberations in the same data lake.

The collected multitude of knowledge and ideas can be overviewed as a whole or focused on in parts to delve deeper into the ideas. Such tasks can be performed in no particular order and in parallel by different entities, allowing for distributed processing in a micro-agent manner.

The process of generating new proposals from existing knowledge and ideas typically involves multiple people. However, if the rules for idea examination are expressed in various prompts, conversational AI using large language models can be utilized. Implementing a mechanism that feeds data lake data to conversational AI with a single prompt as a micro-agent allows for brainstorming using numerous micro-agents simultaneously.

If prompts themselves are stored in the data lake as knowledge and different prompts or knowledge are provided to many agents as system prompts, occasionally changing system prompts or devising new prompts during deliberations can create a system that automatically continues brainstorming.

Without management, the data lake could overflow with both useful and meaningless knowledge, ideas, and prompts. Also, as the number of micro-agents increases, so does the processing cost. Therefore, a mechanism to adjust the number of agents while maintaining diversity is necessary. Periodically, aggregating and organizing data and agents will be essential.

There will be times when knowledge and ideas emerge actively and times when they become monotonous. In such cases, introducing random changes to stimulate or incorporating new knowledge and ideas from outside is necessary.

Evaluating situations and implementing aggregation, organization, random changes, or introducing new knowledge as micro-agents are all feasible.

In Conclusion

Exploring the origins of life and the essence of intelligence, including artificial intelligence, has become a personal research theme for me.

The micro-agent architecture could potentially serve as a foundational computer system architecture that adeptly reflects certain aspects of life and intelligence.

Complex systems possess multifaceted characteristics, making it crucial not just to choose a single architecture but to integrate multiple architectures in alignment with their multifaceted nature. In this sense, when existing architectures fall short in handling certain aspects, it’s important to devise new architectures. Then, rather than completely replacing everything with the new architecture, the approach involves adding subsystems based on this new architecture.

Attempting to handle all system aspects solely with micro-agent architecture might lead to inefficiency. Focusing its application on areas requiring the simulation of distributed complex systems, evolution, or creative mechanisms can add new dimensions to existing systems. This, I believe, is where the true value of micro-agent architecture lies.

--

--

katoshi
Neo-Cybernetics

Software Engineer and System Architect with a Ph.D. I write articles exploring the common nature between life and intelligence from a system perspective.