# πŸ›‘οΈ AgentForge Plataforma profesional de **gobernanza de agentes IA**: catalogaciΓ³n, versionado de prompts y polΓ­ticas, guardrails runtime, ejecuciΓ³n stateful con Human-in-the-Loop, observabilidad y trazabilidad end-to-end. ## ΒΏPor quΓ©? Poner agentes IA en producciΓ³n sin una capa de gobierno produce sistemas opacos: prompts que cambian sin historial, validaciones inconsistentes, acciones de alto impacto sin supervisiΓ³n, sin auditorΓ­a de decisiones. AgentForge aporta el plano de control mΓ­nimo que un equipo de plataforma necesita antes de operar agentes con impacto real. ## Arquitectura ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ docker-compose ──────────────────────────┐ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” HTTP/JSON β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ agentforge-dashboardβ”‚ ────────────────► β”‚ agentforge-core β”‚ β”‚ β”‚ β”‚ Streamlit :8501 β”‚ ◄──────────────── β”‚ FastAPI :8000 β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ Strategy pattern (Protocol) para LLMProvider, GuardrailEngine, β”‚ β”‚ AgentRegistry. Persistencia mixta: YAML (definiciones), JSON β”‚ β”‚ (registry), JSONL (logs append-only), SQLite (checkpoints). β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` Detalles completos en [`ARCHITECTURE.md`](ARCHITECTURE.md). Para una explicaciΓ³n didΓ‘ctica de extremo a extremo (conceptos, recorrido por todos los mΓ³dulos y sus interrelaciones, y el viaje de una peticiΓ³n de principio a fin), ver [`docs/explicacion.md`](docs/explicacion.md). ## Quickstart ```bash cp .env.example .env docker compose up ``` Abre [http://localhost:8501](http://localhost:8501). Funciona out-of-the-box (`LLM_PROVIDER=mock`, sin API keys). Si quieres usar Azure OpenAI real, edita `.env`. ## Demo guiada (3 pasos) 1. **Registro** β†’ ver `incident_analyzer` y comparar `v1` vs `v2`. 2. **Ejecutar** β†’ seleccionar el escenario `01_sip_registration_drop` y pulsar *Invocar*. VerΓ‘s el grafo recorrer validate_input β†’ llm_reason β†’ validate_output β†’ propose_actions β†’ approve_gate y pausarse en HITL. 3. **Aprobaciones** β†’ revisar las acciones propuestas (con risk_score y rollback_plan), aprobar las seguras y comprobar que la ejecuciΓ³n completa. ## Capacidades implementadas | Feature | UbicaciΓ³n | |---|---| | Agent Registry | `core/src/agentforge_core/registry/repository.py` | | Versionado tipo Git | `agents//versions/` + `registry/versioning.py` | | Guardrails runtime | `core/src/agentforge_core/guardrails/` | | LangGraph stateful + checkpointing | `core/src/agentforge_core/runtime/` | | Human-in-the-Loop | nodo `approve_gate` + endpoints `/approve` y `/reject` | | Observabilidad | `observability/logging.py` (structlog + trace_id) | | LLM provider abstraction | `core/src/agentforge_core/llm/` | | PolΓ­tica versionada | `policies/default/versions/v1.yaml` | ## Variables de entorno Ver [`.env.example`](.env.example). ## Roadmap Ver [`docs/futuro.md`](docs/futuro.md). ## Estructura del repositorio ``` agentforge/ β”œβ”€β”€ core/ servicio FastAPI β”œβ”€β”€ dashboard/ servicio Streamlit β”œβ”€β”€ agents/ definiciones declarativas (YAML) β”œβ”€β”€ policies/ polΓ­ticas de guardrails β”œβ”€β”€ data/ estado runtime (gitignored) β”œβ”€β”€ tests/ pytest unit + integration └── docs/ documentaciΓ³n adicional ``` ## Tests ```bash make install make test # solo unit make test-all # unit + integration make lint # ruff + mypy make smoke # docker-compose + curl health ``` ## Licencia MIT (a confirmar).