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.
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.