# πŸ”¨ Forja **Forja de agentes IA** β€” plataforma de gobernanza genΓ©rica para agentes de cualquier tipo. CatalogaciΓ³n y versionado (estilo Git) de definiciones, polΓ­ticas y guardrails; ejecuciΓ³n controlada con runtime stateful, Human-in-the-Loop y observabilidad completa. Úsala como plano de control en cualquier proyecto que necesite agentes gobernados. ## Arquitectura Forja es un **ΓΊnico servicio** (FastAPI en :8000) que expone: - API REST completa bajo `/api` (agentes, polΓ­ticas, ejecuciones, aprobaciones, violaciones). - UI embebida moderna (HTMX + Tailwind + Jinja) en rutas amigables (`/agents`, `/run`, `/approvals`, `/history`, `/policies`). ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ forja-core :8000 β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ UI HTMX (navegador humano) β”‚ API REST (/api/*) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ Strategy factories (LLM / Guardrails / Registry) β”‚ β”‚ LangGraph runtime + SQLite checkpoints (HITL real) β”‚ β”‚ Persistencia: YAML versionado + JSONL + SQLite β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` DocumentaciΓ³n viva: - [`ARCHITECTURE.md`](ARCHITECTURE.md) β€” decisiones tΓ©cnicas. - [`docs/explicacion.md`](docs/explicacion.md) β€” explicaciΓ³n didΓ‘ctica completa. - [`docs/componentes.md`](docs/componentes.md) β€” referencia de cableado a bajo nivel. - [`docs/futuro.md`](docs/futuro.md) β€” roadmap. ## Quickstart ```bash cp .env.example .env docker compose up ``` Abre [http://localhost:8000](http://localhost:8000). 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 / Policy Registry | `core/src/forja_core/registry/` | | Versionado Git-like (YAML) | `agents//` + `policies//` | | Guardrails runtime (strategy) | `core/src/forja_core/guardrails/` | | LangGraph + HITL + checkpoints | `core/src/forja_core/runtime/` | | Observabilidad (trace + structlog) | `core/src/forja_core/observability/` | | LLM abstraction | `core/src/forja_core/llm/` | | UI embebida (HTMX) | `core/src/forja_core/web/` (ruta raΓ­z) | | API REST completa | bajo `/api` en forja-core :8000 | ## Variables de entorno Ver [`.env.example`](.env.example). ## Roadmap Ver [`docs/futuro.md`](docs/futuro.md). ## Estructura del repositorio ``` forja/ β”œβ”€β”€ core/ servicio FastAPI ΓΊnico (API + UI HTMX embebida) β”œβ”€β”€ agents/ definiciones de agentes (YAML versionados) β”œβ”€β”€ policies/ polΓ­ticas de guardrails (YAML versionados) β”œβ”€β”€ data/ runtime state (gitignored) β”œβ”€β”€ tests/ └── docs/ (explicacion.md, componentes.md, futuro.md, ARCHITECTURE.md) ``` ## 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).