Skip to main content

Framework Experimental para Integracion de Datos (FEID) - Multi-Agent Systems

Project description

FEID-MAS: Enterprise-Grade Multi-Agent System Framework

Language / Idioma: English (README) | Español (README_ES)

FEID-MAS (Framework for Enterprise Intelligent Distributed - Multi-Agent System) is a production-ready Python framework for building professional, scalable, and fault-tolerant autonomous agents.

Overview

FEID-MAS provides a solid foundation for creating intelligent agents that can:

  • Process high-volume task queues with priority handling and backpressure management
  • Tolerate failures through circuit breakers, automatic retries, and exponential backoff
  • Scale horizontally with rate limiting, metrics collection, and health probes
  • Communicate across protocols (FIPA, KQML, JSON-RPC, SIMPLE)
  • Persist events with automatic rotation and external handler callbacks
  • Maintain audit trails with structured logging and incident tracking
  • Enforce security policies with sandboxing and whitelist/denylist controls
  • Monitor performance with real-time metrics, latency tracking, and error rates

Quick Start (2 Minutes)

Installation

pip install -e .

Your First Agent

from feid.agent import AgenteMaestroNASA

class MyAgent(AgenteMaestroNASA):
    def _technical_work(self, task):
        """Implement your business logic here"""
        return f"Processed: {task}"

# Create and use agent
agent = MyAgent("MyAgent")
agent.send_task("Hello World", priority=1)
agent.graceful_shutdown()

Use Factory Profiles (Pre-configured)

from feid.agent import AgenteFactory, AgenteMaestroNASA

# Quick profile: lightweight, testing
agent = AgenteFactory.quick(AgenteMaestroNASA, name="LightAgent")

# Standard profile: balanced, general-purpose
agent = AgenteFactory.standard(AgenteMaestroNASA, name="StandardAgent")

# Industrial profile: maximum features, production
agent = AgenteFactory.industrial(AgenteMaestroNASA, name="ProductionAgent")

Key Features

Feature Benefit Use Case
Priority Queue Control task execution order Emergency/VIP task handling
Circuit Breaker Prevent cascading failures Fault tolerance
Retry Strategy Automatic recovery Transient errors
Rate Limiting Control request flow API integration
Metrics & Monitoring Real-time visibility Production observability
Audit Logging Complete event trail Compliance
Multi-Protocol FIPA, KQML, JSON-RPC Enterprise integration
Security Sandbox Prevent malicious tasks Untrusted input
Health Probes Kubernetes-compatible Container orchestration

Agent Profiles

🚀 Quick Profile

  • Best for: Testing, prototyping
  • Queue: 50 items | Workers: 1 | Retries: 1
  • Minimal features

⚡ Standard Profile

  • Best for: General-purpose applications
  • Queue: 500 items | Workers: 4 | Retries: 3
  • Full features (metrics, audit, rate limiting)

🏭 Industrial Profile

  • Best for: Production, high-volume
  • Queue: 10,000 items | Workers: 8 | Retries: 5
  • Maximum features (circuit breaker, anti-starvation, security)

System Architecture

AgenteMaestroNASA (Orchestrator)
├── ProtocolAdapter (Multi-protocol)
├── EventSink (Persistence)
├── QueueManager (Validation & backpressure)
├── TaskProcessor (Execution & retry)
├── AgentRuntime (Lifecycle)
├── Facades (Simplified APIs)
│   ├── MetricsFacade
│   ├── SecurityFacade
│   └── HealthFacade
└── Enterprise
    ├── CircuitBreaker
    ├── RetryStrategy
    ├── RateLimiter
    └── Security

Documentation

Start here: Documentation Index (EN) | Índice de Documentación (ES)

English

Español

Typical Workflow

# 1. Create agent
agent = MyAgent("WorkerAgent")

# 2. Send tasks
task_id = agent.send_task("process data", priority=1, ttl=30)

# 3. Monitor
metrics = agent.metrics.get_all()
print(f"Success rate: {1 - agent.metrics.get_error_rate():.2%}")

# 4. Graceful shutdown
stats = agent.graceful_shutdown(timeout=30)
print(f"Processed {stats['successful_tasks']} tasks")

Testing

All 131 tests passing:

pytest tests/ -v

Includes:

  • Unit tests (maestro, backlog features)
  • Integration tests (multi-protocol communication)
  • Stress tests (1000+ tasks, concurrent processing)

Requirements

  • Python 3.10+
  • No external dependencies (stdlib only)

FEID-MAS: Enterprise intelligent agents, simplified.

Enviar tarea con correlation ID (distributed tracing)

m_id = agente.enviar_orden( "procesar-datos", correlation_id="req-2024-001" )

Monitorear salud (incluye estado de circuit breaker y estrategia)

salud = agente.monitorear_salud()


## Documentación

- [Enterprise Features Guide](docs/enterprise_features.md) - Correlation IDs, Circuit Breaker, Retry Strategies
- [Handler Development](docs/handler_guide.md) - Integración con sistemas externos
- [Contributing](CONTRIBUTING.md) - Guía para contribuidores

## Ejemplos

Ver [examples/enterprise_demo.py](examples/enterprise_demo.py) para demostración completa de features.

```bash
python examples/enterprise_demo.py

Estado

Proyecto experimental (v0.1.0). Ver BACKLOG para roadmap y próximos pasos.

Autor

Leon Alberne Torres Restrepo

Disclaimer

Proyecto de desarrollo personal realizado en tiempo personal con equipos personales. No afiliado ni respaldado por empleadores anteriores o actuales. Proveido "como esta", sin garantias.

Licencia

MIT License - Ver LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

feid_mas-0.1.1a1.tar.gz (70.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

feid_mas-0.1.1a1-py3-none-any.whl (59.9 kB view details)

Uploaded Python 3

File details

Details for the file feid_mas-0.1.1a1.tar.gz.

File metadata

  • Download URL: feid_mas-0.1.1a1.tar.gz
  • Upload date:
  • Size: 70.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for feid_mas-0.1.1a1.tar.gz
Algorithm Hash digest
SHA256 365463bba1c9a9508123cf690d31581af2a5e550aae5be35d574afef444cb051
MD5 e0e0ccd720704f5b38b0d651beede459
BLAKE2b-256 2594904cd2952e814f0cd2d38955babb9c251dda95e667d18f2227139fd403a1

See more details on using hashes here.

File details

Details for the file feid_mas-0.1.1a1-py3-none-any.whl.

File metadata

  • Download URL: feid_mas-0.1.1a1-py3-none-any.whl
  • Upload date:
  • Size: 59.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for feid_mas-0.1.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 be49b97c24d84bfe79d1457e3d2663da2fb75119401c8ec0a6f1a7633fcff42e
MD5 3ac760911af6d074911e35c7c8b2ee2b
BLAKE2b-256 d7be9b62c210111b164abef95e3564b59a107b6ff04e3644ce03d7e4765a0c12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page