Back to Homepage
System Architecture

Single & Multi-Agent Systems

YAIFA supports both single-agent and multi-agent systems (MAS). You create autonomous programs that communicate with each other and collaborate to solve complex tasks.

The Single-Agent System

In the single-agent scenario, the entire intelligence and solution method is united in a single software unit.

  • Functionality: The agent receives input data, processes it according to an internal algorithm, and outputs the result directly.
  • Application area: Ideally suited for simple, clearly defined automation tasks with low variance.
  • Limitations: As the complexity of the task increases, the risk of a "Single Point of Failure" rises, and the maintainability of the monolithic code decreases.

The Multi-Agent System (MAS)

Multi-agent systems (MAS) dissolve the monolithic approach by distributing tasks across a network of specialized, autonomous units. The architecture of multi-agent systems offers significant advantages in terms of modularity and stability:

Advantage Description
Structured data flow Information is encapsulated in independent objects, which improves traceability.
Task division Role separation according to permissions and professional domains is possible.
Control logic Clear separation between executing agents (Worker) and controlling agents (Controller).
Network capability Existing agents can be seamlessly integrated into new agent networks.
Reusability Agents can be used as modular components for different application areas.
Organization mapping The software structure can reflect the real organizational and process structure of a company.
Decentralization Autonomous decision units reduce dependencies on central nodes.
Fault tolerance Distribution across multiple units makes the system more resilient to partial failures.
Redundancy Targeted planning of redundancies secures availability in case of hardware or software failures.
Interoperability Networking of different heterogeneous systems via agent interfaces is possible.

YAIFA Multi-Agent System

YAIFA profits from the modular structure of the MAS by breaking down complex business processes into smaller, manageable sub-processes. This allows specific business logic to be developed and tested in isolation before being integrated into the overall system.

YAIFA Multi-Agent System overview
YAIFA Multi-Agent System — specialized agents, relations, data flows, and shared resources (Blackboards, rules)

Agent Communication

A decisive development step lies in the differentiation of communication channels:

  • Internal communication: High-frequency data exchange between agents for process control and synchronization within the closed system environment.
  • External communication: Specialized interface agents act as "Gatekeepers" that securely prepare data, contextualize it, and communicate with external partners or APIs.

While single-agent systems offer a quick, uncomplicated solution for isolated tasks, multi-agent systems enable the construction of scalable, business-critical applications. By mapping the organizational structure in software code, a system emerges that is not only technologically efficient but also adaptable to real corporate requirements.

Technical Realization — Relations

Rather than sending untyped text payloads back and forth, YAIFA defines strict Relations between agents. Relations act as communication channels with built-in BDI-Gates:

Relation Type Code representation Impact on Receiver Return Channel
Information information Updates beliefs only. Does not inject desires or plans automatically. Simple acknowledgement or sensor data stream.
Request request Submits a job. Receiver runs checks, turns it into a Desire, and commits a Plan. Reports status updates and final output results back to sender.
Negotiation negotiation Contract Net Protocol. Bids capacity and cost before job commitment. Offers bid, confirms order, then posts execution updates.

Relations are persistable artifacts stored in Connections/relations.json. They map connections between ports without hardcoding endpoints directly into the agent scripts. YAIFA separates agents into two coupling models:

  • Distributed (Default): Each agent runs in its own OS process (or container), communicating asynchronously via REST/API, MQTT, or MAS Blackboards. This isolates failures and allows scaling across multiple machines.
  • Colocated: Tightly-coupled agents sharing a common Python execution heap. Communication occurs in-memory via a shared variables register, maximizing throughput for high-frequency loops.