feid-mas 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- feid_mas-0.1.0/LICENSE +21 -0
- feid_mas-0.1.0/PKG-INFO +104 -0
- feid_mas-0.1.0/README.md +90 -0
- feid_mas-0.1.0/pyproject.toml +25 -0
- feid_mas-0.1.0/setup.cfg +4 -0
- feid_mas-0.1.0/src/feid/__init__.py +9 -0
- feid_mas-0.1.0/src/feid/agent/__init__.py +51 -0
- feid_mas-0.1.0/src/feid/agent/maestro.py +2042 -0
- feid_mas-0.1.0/src/feid_mas.egg-info/PKG-INFO +104 -0
- feid_mas-0.1.0/src/feid_mas.egg-info/SOURCES.txt +14 -0
- feid_mas-0.1.0/src/feid_mas.egg-info/dependency_links.txt +1 -0
- feid_mas-0.1.0/src/feid_mas.egg-info/top_level.txt +1 -0
- feid_mas-0.1.0/tests/test_backlog_features.py +1215 -0
- feid_mas-0.1.0/tests/test_basic.py +14 -0
- feid_mas-0.1.0/tests/test_maestro.py +438 -0
- feid_mas-0.1.0/tests/test_stress.py +477 -0
feid_mas-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Leon Alberne Torres Restrepo
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
feid_mas-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: feid-mas
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Framework Experimental para Integracion de Datos (FEID) - Multi-Agent Systems
|
|
5
|
+
Author-email: Leon Alberne Torres Restrepo <albernetorres@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/albernetr
|
|
8
|
+
Project-URL: Repository, https://github.com/albernetr/feid
|
|
9
|
+
Keywords: multi-agent,agents,mas,fipa,kqml,feid
|
|
10
|
+
Requires-Python: >=3.10
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Dynamic: license-file
|
|
14
|
+
|
|
15
|
+
# FEID - Framework para Multi-Agent Systems (MAS)
|
|
16
|
+
|
|
17
|
+
Framework ligero y **educativo** para construir sistemas multi‑agente en Python con setup mínimo y foco en prototipado rápido.
|
|
18
|
+
|
|
19
|
+
## ¿Para quién es?
|
|
20
|
+
|
|
21
|
+
- 🎓 **Educación**: enseñar MAS sin complejidad de JADE/infraestructura pesada.
|
|
22
|
+
- 🧪 **Investigación**: validar algoritmos rápidamente y reproducir resultados.
|
|
23
|
+
- 🤖 **Edge/IoT**: agentes en dispositivos con recursos limitados.
|
|
24
|
+
- 💡 **Prototipado**: validar arquitecturas MAS en días, no semanas.
|
|
25
|
+
|
|
26
|
+
## Lo que hace bien
|
|
27
|
+
|
|
28
|
+
✅ **Base MAS simple**: subclases mínimas y boilerplate bajo.
|
|
29
|
+
✅ **Multi‑protocolo**: FIPA ACL, KQML, JSON‑RPC, texto simple.
|
|
30
|
+
✅ **Percepción proactiva**: hook opcional para comportamiento autónomo.
|
|
31
|
+
✅ **Zero dependencies**: solo stdlib de Python.
|
|
32
|
+
✅ **Extensible**: handlers externos, logs rotativos, métricas básicas.
|
|
33
|
+
✅ **Resiliencia**: reintentos configurables, circuit breaker y Dead Letter Queue.
|
|
34
|
+
✅ **Testeado**: 131 tests pasando (incluye stress tests con 1k-5k tareas).
|
|
35
|
+
|
|
36
|
+
## Lo que NO intenta ser
|
|
37
|
+
|
|
38
|
+
❌ No es Celery/Airflow (no es orquestación ni broker).
|
|
39
|
+
❌ No compite con JADE como plataforma completa.
|
|
40
|
+
❌ Estado actual: **v0.1.0 experimental** (ideal para POC/educación/edge).
|
|
41
|
+
|
|
42
|
+
## Instalacion (editable para desarrollo)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install -e .
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Uso rapido
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
from feid.agent import AgenteMaestroNASA, ExponentialBackoffStrategy
|
|
52
|
+
|
|
53
|
+
class MiAgente(AgenteMaestroNASA):
|
|
54
|
+
def _trabajo_tecnico(self, tarea):
|
|
55
|
+
return f"Procesado: {tarea}"
|
|
56
|
+
|
|
57
|
+
# Crear agente con opciones de resiliencia
|
|
58
|
+
agente = MiAgente(
|
|
59
|
+
"productor",
|
|
60
|
+
retry_strategy=ExponentialBackoffStrategy(),
|
|
61
|
+
circuit_breaker_threshold=5,
|
|
62
|
+
max_workers=4
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# Enviar tarea con correlation ID (distributed tracing)
|
|
66
|
+
m_id = agente.enviar_orden(
|
|
67
|
+
"procesar-datos",
|
|
68
|
+
correlation_id="req-2024-001"
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# Monitorear salud (incluye estado de circuit breaker y estrategia)
|
|
72
|
+
salud = agente.monitorear_salud()
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Documentación
|
|
76
|
+
|
|
77
|
+
- [Enterprise Features Guide](docs/enterprise_features.md) - Correlation IDs, Circuit Breaker, Retry Strategies
|
|
78
|
+
- [Handler Development](docs/handler_guide.md) - Integración con sistemas externos
|
|
79
|
+
- [Contributing](CONTRIBUTING.md) - Guía para contribuidores
|
|
80
|
+
|
|
81
|
+
## Ejemplos
|
|
82
|
+
|
|
83
|
+
Ver [examples/enterprise_demo.py](examples/enterprise_demo.py) para demostración completa de features.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
python examples/enterprise_demo.py
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Estado
|
|
90
|
+
Proyecto experimental (v0.1.0). Ver [BACKLOG](BACKLOG.md) para roadmap y próximos pasos.
|
|
91
|
+
|
|
92
|
+
## Autor
|
|
93
|
+
**Leon Alberne Torres Restrepo**
|
|
94
|
+
- GitHub: [albernetr](https://github.com/albernetr)
|
|
95
|
+
- LinkedIn: [leon-alberne-torres-restrepo](https://www.linkedin.com/in/leon-alberne-torres-restrepo/)
|
|
96
|
+
- Email: albernetorres@gmail.com
|
|
97
|
+
|
|
98
|
+
## Disclaimer
|
|
99
|
+
Proyecto de desarrollo personal realizado en tiempo personal con equipos personales.
|
|
100
|
+
No afiliado ni respaldado por empleadores anteriores o actuales.
|
|
101
|
+
Proveido "como esta", sin garantias.
|
|
102
|
+
|
|
103
|
+
## Licencia
|
|
104
|
+
MIT License - Ver [LICENSE](LICENSE)
|
feid_mas-0.1.0/README.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# FEID - Framework para Multi-Agent Systems (MAS)
|
|
2
|
+
|
|
3
|
+
Framework ligero y **educativo** para construir sistemas multi‑agente en Python con setup mínimo y foco en prototipado rápido.
|
|
4
|
+
|
|
5
|
+
## ¿Para quién es?
|
|
6
|
+
|
|
7
|
+
- 🎓 **Educación**: enseñar MAS sin complejidad de JADE/infraestructura pesada.
|
|
8
|
+
- 🧪 **Investigación**: validar algoritmos rápidamente y reproducir resultados.
|
|
9
|
+
- 🤖 **Edge/IoT**: agentes en dispositivos con recursos limitados.
|
|
10
|
+
- 💡 **Prototipado**: validar arquitecturas MAS en días, no semanas.
|
|
11
|
+
|
|
12
|
+
## Lo que hace bien
|
|
13
|
+
|
|
14
|
+
✅ **Base MAS simple**: subclases mínimas y boilerplate bajo.
|
|
15
|
+
✅ **Multi‑protocolo**: FIPA ACL, KQML, JSON‑RPC, texto simple.
|
|
16
|
+
✅ **Percepción proactiva**: hook opcional para comportamiento autónomo.
|
|
17
|
+
✅ **Zero dependencies**: solo stdlib de Python.
|
|
18
|
+
✅ **Extensible**: handlers externos, logs rotativos, métricas básicas.
|
|
19
|
+
✅ **Resiliencia**: reintentos configurables, circuit breaker y Dead Letter Queue.
|
|
20
|
+
✅ **Testeado**: 131 tests pasando (incluye stress tests con 1k-5k tareas).
|
|
21
|
+
|
|
22
|
+
## Lo que NO intenta ser
|
|
23
|
+
|
|
24
|
+
❌ No es Celery/Airflow (no es orquestación ni broker).
|
|
25
|
+
❌ No compite con JADE como plataforma completa.
|
|
26
|
+
❌ Estado actual: **v0.1.0 experimental** (ideal para POC/educación/edge).
|
|
27
|
+
|
|
28
|
+
## Instalacion (editable para desarrollo)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install -e .
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Uso rapido
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
from feid.agent import AgenteMaestroNASA, ExponentialBackoffStrategy
|
|
38
|
+
|
|
39
|
+
class MiAgente(AgenteMaestroNASA):
|
|
40
|
+
def _trabajo_tecnico(self, tarea):
|
|
41
|
+
return f"Procesado: {tarea}"
|
|
42
|
+
|
|
43
|
+
# Crear agente con opciones de resiliencia
|
|
44
|
+
agente = MiAgente(
|
|
45
|
+
"productor",
|
|
46
|
+
retry_strategy=ExponentialBackoffStrategy(),
|
|
47
|
+
circuit_breaker_threshold=5,
|
|
48
|
+
max_workers=4
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# Enviar tarea con correlation ID (distributed tracing)
|
|
52
|
+
m_id = agente.enviar_orden(
|
|
53
|
+
"procesar-datos",
|
|
54
|
+
correlation_id="req-2024-001"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
# Monitorear salud (incluye estado de circuit breaker y estrategia)
|
|
58
|
+
salud = agente.monitorear_salud()
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Documentación
|
|
62
|
+
|
|
63
|
+
- [Enterprise Features Guide](docs/enterprise_features.md) - Correlation IDs, Circuit Breaker, Retry Strategies
|
|
64
|
+
- [Handler Development](docs/handler_guide.md) - Integración con sistemas externos
|
|
65
|
+
- [Contributing](CONTRIBUTING.md) - Guía para contribuidores
|
|
66
|
+
|
|
67
|
+
## Ejemplos
|
|
68
|
+
|
|
69
|
+
Ver [examples/enterprise_demo.py](examples/enterprise_demo.py) para demostración completa de features.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
python examples/enterprise_demo.py
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Estado
|
|
76
|
+
Proyecto experimental (v0.1.0). Ver [BACKLOG](BACKLOG.md) para roadmap y próximos pasos.
|
|
77
|
+
|
|
78
|
+
## Autor
|
|
79
|
+
**Leon Alberne Torres Restrepo**
|
|
80
|
+
- GitHub: [albernetr](https://github.com/albernetr)
|
|
81
|
+
- LinkedIn: [leon-alberne-torres-restrepo](https://www.linkedin.com/in/leon-alberne-torres-restrepo/)
|
|
82
|
+
- Email: albernetorres@gmail.com
|
|
83
|
+
|
|
84
|
+
## Disclaimer
|
|
85
|
+
Proyecto de desarrollo personal realizado en tiempo personal con equipos personales.
|
|
86
|
+
No afiliado ni respaldado por empleadores anteriores o actuales.
|
|
87
|
+
Proveido "como esta", sin garantias.
|
|
88
|
+
|
|
89
|
+
## Licencia
|
|
90
|
+
MIT License - Ver [LICENSE](LICENSE)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "feid-mas"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Framework Experimental para Integracion de Datos (FEID) - Multi-Agent Systems"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Leon Alberne Torres Restrepo", email = "albernetorres@gmail.com"}
|
|
14
|
+
]
|
|
15
|
+
keywords = ["multi-agent", "agents", "mas", "fipa", "kqml", "feid"]
|
|
16
|
+
|
|
17
|
+
[project.urls]
|
|
18
|
+
Homepage = "https://github.com/albernetr"
|
|
19
|
+
Repository = "https://github.com/albernetr/feid"
|
|
20
|
+
|
|
21
|
+
[tool.setuptools]
|
|
22
|
+
package-dir = {"" = "src"}
|
|
23
|
+
|
|
24
|
+
[tool.setuptools.packages.find]
|
|
25
|
+
where = ["src"]
|
feid_mas-0.1.0/setup.cfg
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""FEID - Framework Experimental para Integracion de Datos.
|
|
2
|
+
|
|
3
|
+
Framework experimental para la construccion de sistemas multi-agente.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
__version__ = "0.1.0"
|
|
7
|
+
__author__ = "Leon Alberne Torres Restrepo"
|
|
8
|
+
__email__ = "albernetorres@gmail.com"
|
|
9
|
+
__github__ = "https://github.com/albernetr"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""Agent package for FEID."""
|
|
2
|
+
|
|
3
|
+
from .maestro import (
|
|
4
|
+
AgenteMaestroNASA,
|
|
5
|
+
CorrelationTracker,
|
|
6
|
+
CircuitBreaker,
|
|
7
|
+
CircuitBreakerState,
|
|
8
|
+
RetryStrategy,
|
|
9
|
+
ExponentialBackoffStrategy,
|
|
10
|
+
LinearBackoffStrategy,
|
|
11
|
+
FixedDelayStrategy,
|
|
12
|
+
LifecycleHooks,
|
|
13
|
+
EventoSchema,
|
|
14
|
+
ValidadorPayload,
|
|
15
|
+
RateLimiter,
|
|
16
|
+
ColectorMetricas,
|
|
17
|
+
PoliticaCola,
|
|
18
|
+
GestorColaPolitica,
|
|
19
|
+
AuditorEstructurado,
|
|
20
|
+
ConfigAgente,
|
|
21
|
+
PoliticaError,
|
|
22
|
+
GestorPoliticasError,
|
|
23
|
+
GestorAntiInanicion,
|
|
24
|
+
SandboxSeguridad,
|
|
25
|
+
SondeoSalud,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
__all__ = [
|
|
29
|
+
"AgenteMaestroNASA",
|
|
30
|
+
"CorrelationTracker",
|
|
31
|
+
"CircuitBreaker",
|
|
32
|
+
"CircuitBreakerState",
|
|
33
|
+
"RetryStrategy",
|
|
34
|
+
"ExponentialBackoffStrategy",
|
|
35
|
+
"LinearBackoffStrategy",
|
|
36
|
+
"FixedDelayStrategy",
|
|
37
|
+
"LifecycleHooks",
|
|
38
|
+
"EventoSchema",
|
|
39
|
+
"ValidadorPayload",
|
|
40
|
+
"RateLimiter",
|
|
41
|
+
"ColectorMetricas",
|
|
42
|
+
"PoliticaCola",
|
|
43
|
+
"GestorColaPolitica",
|
|
44
|
+
"AuditorEstructurado",
|
|
45
|
+
"ConfigAgente",
|
|
46
|
+
"PoliticaError",
|
|
47
|
+
"GestorPoliticasError",
|
|
48
|
+
"GestorAntiInanicion",
|
|
49
|
+
"SandboxSeguridad",
|
|
50
|
+
"SondeoSalud",
|
|
51
|
+
]
|