Back to Homepage
Connectivity

Interfaces & Connectivity

Integrate agents directly with your existing IT and industrial shopfloor systems through built-in support for industry-standard protocols.

Concept & Purpose

Agents cannot operate in a vacuum. To perform real-world tasks, they must pull data from sensors, query IT databases, or write setpoints to machine controllers.

YAIFA abstracts these communication paths into **Ports**. An agent's ports are structured gateways that translate external signals into internal agent Beliefs, or turn agent Actions into external system commands.

Supported Interface Protocols

YAIFA supports the most important enterprise and operational technology (OT) interfaces out of the box:

Protocol / Interface Primary Use Case Description
OPC-UA Industrial Automation (OT) Read/write sensor values, machine states, and safety logs directly from PLCs.
MQTT IoT & Pub/Sub Brokers Asynchronous message streams for telemetry, status reporting, and event triggers.
REST API Cloud & IT Systems Standard HTTP integration for ERP, MES, CRM, and third-party web services.
SQL & MongoDB Database Storage Structured relational databases (PostgreSQL, MySQL) and document stores (MongoDB).
CSV & Python Local Files & Scripts Flat files for batch import/export, or direct function calls via Python scripts.
MAS Blackboard Inter-Agent Exchange Shared blackboard space enabling asynchronous coordination between agents in a flow.

Technical Realization

Ports are configured declaratively in the agent's `agent.json` file. Each port has a specific `source_type` and its corresponding `source_config`:

// Example of an OPC-UA observer port definition
{
  "id": "port_sensor_temperature",
  "name": "Line 1 Temperature Sensor",
  "scope": "input",
  "source_type": "opcua",
  "source_config": {
    "endpoint_url": "opc.tcp://192.168.12.100:4840",
    "node_namespace_index": 2,
    "node_identifier": "Line1.TempSensor.Value",
    "poll_interval_ms": 1000
  }
}

During code generation, YAIFA reads this configuration and links the port to its respective transport protocol client. The developer only writes standard Python logic using the structured payload, without handling socket protocols or raw network connections.