Proyecto
FinOps — Asistente multi-agente (en desarrollo)
Asistente multi-agente sobre flujos financieros (en desarrollo): un router clasifica la intención y despacha a agentes especializados, con contratos tipados de request/response, trace IDs y eventos de latencia por paso. La UI en Angular y el esqueleto de enrutado/observabilidad en FastAPI ya están desplegados; las capas de LLM, RAG y tools son lo siguiente — construyo primero trazas y telemetría de costos para que las respuestas del agente salgan medibles desde el día uno.
Proyecto propio construido como estudio de arquitectura, no un sistema en producción. El router, los contratos de API y los eventos de observabilidad están implementados; las respuestas de los agentes siguen siendo stubs a la espera de integrar LLM, RAG y herramientas.
Stack
Impacto
- Entregué una landing y demo chat en Angular desplegable para un asistente multi-agente estilo enterprise.
- Diseñé roles explícitos de agentes (Router/Task/RAG/Tool) para habilitar orquestación segura e integración futura con backend.
- Definí un camino claro de MVP a producción (Firebase Hosting + backend en Cloud Run planeado).
Lo que hice
- Diseñé la topología de agentes —Router, Analista Financiero, RAG de Políticas y Herramientas— con orquestación explícita en lugar de cadenas ocultas.
- Implementé la superficie FastAPI con contratos tipados en Pydantic, un endpoint /v1/chat sin estado y health checks.
- Cada respuesta lleva un trace ID y una lista ordenada de eventos con latencia por paso, de modo que la ruta de enrutamiento es observable desde la UI.
- Estratifiqué el backend por responsabilidad (dominio / servicios / infraestructura / api) para poder reemplazar cada agente y su infraestructura por separado.
- Construí y desplegué la UI en Angular sobre Firebase Hosting, con un chat de demostración que dibuja la traza de agentes.
Arquitectura
- Usuario → Router Agent → agentes de tarea → capa de herramientas → respuesta agregada
- App FastAPI separada en api/v1 (rutas), domain (esquemas), services (agentes) y core (configuración, logging)
- Endpoint de chat sin estado: entra el session ID, sale la respuesta más events/steps/tool_calls/citations
- Hoy el enrutamiento por intención es determinista (clasificación por palabras clave) y es justo la costura donde entra el clasificador con LLM
- Planeado: vector store Chroma para el agente RAG, capa acotada de ejecución de herramientas, imagen Docker y despliegue en Cloud Run
