Santiago Espinosa

Construyendo en producción · Medellín

Senior AI Engineer+5 años de experiencia

Agentes de IA · RAG · Evals · AWS

Llevo agentes de IA a produccióny hago que se porten bien.

Agentes que enrutan, llaman herramientas y preguntan antes de actuar. Búsqueda que cita sus fuentes. Evals, topes de costo y guardas para el día en que el modelo se equivoque. Los diseño, los pongo en producción y los opero, de punta a punta, en AWS.

  • LangGraph
  • RAG
  • MCP
  • TypeScript
  • Python
  • AWS
  • Postgres
controli-agent · un turno

user  «¿Qué socios deben marzo?»

  1. supervisorllamada forzada → especialista club_data
  2. policypermitido · solo lectura · validado en el servidor
  3. toolrun_sql en sandbox · rol de solo lectura
  4. guardel lexer bloquea escapes de rol
  5. verifierquita enlaces inventados y marcas de cita

✓ responde con la lista · ofrece redactar recordatorios

◷ espera a una persona antes de enviar▍

Turno ilustrativo. Cada paso existe en el código.
productos que construí y opero, en línea hoy
5
productos que construí y opero, en línea hoy
commits en Controla.Club desde agosto de 2025
2.469
commits en Controla.Club desde agosto de 2025
servicios de AWS detrás de uno de ellos
16
servicios de AWS detrás de uno de ellos
llevando IA a producción desde
2022
llevando IA a producción desde

Proyectos

Productos que diseñé, construí y opero. En producción, no en una presentación.

01

Controla.Club

controla.club ↗

SaaS para clubes deportivos con un agente que trabaja sobre datos reales.

controla.club
Página de Controla.Club: plataforma de gestión de clubes con recordatorios de pago automáticos por WhatsApp.

Fundador e ingeniero · arquitectura, IA, infraestructura

Socios, cobros, control de acceso y entrenamientos para clubes, academias y gimnasios. Los clubes perseguían pagos por WhatsApp y revisaban comprobantes a mano; la plataforma hace las dos cosas, y Controli, su asistente, responde preguntas y actúa sobre los datos del club.

commits
2.469
commits
archivos de pruebas
628
archivos de pruebas
servicios de AWS
16
servicios de AWS
  • Next.js 16
  • LangGraph
  • pgvector
  • Supabase
  • AWS Lambda
  • SQS
  • SST
  • OpenRouter
  • MCP
  • Baileys
  • C# .NET

Lo que construí

  • Controli: un supervisor en LangGraph que enruta cada turno, con una llamada de herramienta forzada, a uno de seis especialistas. Él mismo no tiene herramientas de dominio.
  • RAG híbrido: búsqueda de texto completo en español más pgvector, fusionadas con Reciprocal Rank Fusion, que cae a búsqueda léxica si fallan los embeddings.
  • IA de pagos: un comprobante de WhatsApp pasa por receptor → SQS → worker; un grafo lo clasifica, lee el monto, lo cruza con los cobros pendientes y se detiene para aprobación humana.
  • Club Radar: foto determinista → riesgo de abandono → analizar, criticar, investigar con SQL en sandbox, sintetizar. Validado con zod y con un presupuesto mensual de IA por club.
  • Un servidor MCP que expone herramientas del club, del CRM y de noticias con tokens de alcance limitado.

Lo difícil

Texto a SQL sin escapatoria

El agente ejecuta SQL con un rol de Postgres de solo lectura, detrás de un lexer fiel a Postgres que cierra escapes de rol y funciones SECURITY DEFINER. Ambos tienen sus propias pruebas.

La política la decide el servidor, no el modelo

Las llamadas a herramientas se autorizan con el contexto del servidor y una lista permitida. El riesgo crece con el alcance real: borrar un socio no es borrar cuatrocientos. Lo riesgoso pide confirmación escrita.

Guardas nacidas de incidentes

Después de que el modelo inventó una URL en producción, una guarda revisa y quita cualquier enlace de controla.club que no exista. Un verificador elimina las marcas internas de cita antes de responder.

Un auditor de IA que lee los chats, archivos y calendario de una empresa, y responde con citas.

orviate.com
Página de Orviate: las fuentes del negocio pasan por ingesta, clasificación y agentes de IA que sugieren una decisión.

Fundador e ingeniero · producto, IA, infraestructura

Orviate conecta Google Chat, Drive y Calendar, WhatsApp, Instagram, Messenger y cualquier servidor MCP en una base de conocimiento por empresa. Un chat en streaming responde con fuentes citadas, y el mismo motor redacta respuestas en una bandeja de WhatsApp tipo CRM y ejecuta automatizaciones conversacionales. En cuatro idiomas.

commits
322
commits
pruebas unitarias
137
pruebas unitarias
migraciones, todas con RLS
114
migraciones, todas con RLS
  • React 19
  • Hono
  • Node 22
  • SST v4
  • Lambda URL streaming
  • SQS FIFO
  • EventBridge
  • Supabase
  • Drizzle
  • OpenRouter
  • MCP

Lo que construí

  • Un ciclo de agente con herramientas (search_knowledge, list_items y más), con un máximo de ocho iteraciones, que transmite los pasos y las citas [^n] a la interfaz.
  • Un cliente MCP sin dependencias, para que cualquier sistema de la empresa sea una fuente.
  • Enrutamiento calibrado: un modelo de decisiones tipado hace el triage, valida hallazgos y asigna chats, con umbrales como ≥ 0,93 para asignar solo.
  • Una pasarela de WhatsApp en una EC2 ARM siempre encendida, sin puertos de entrada, manejada por SQS, con bandeja de salida, recuperación y resincronización del historial.
  • Un golden set que se vuelve a correr y califica cada cambio de prompt o de modelo antes de publicarlo.

Lo difícil

Bajar el gasto en IA con evidencia

Quitar una ronda final redundante ahorró el 19% del gasto. Los tokens de razonamiento eran el 26%; limitarlos a 1.024 se validó primero contra el golden set.

Caché de prompts que sí acierta

El prompt de sistema se divide en una parte fija y una variable con cache_control, y el proveedor queda fijo. Antes, hasta el 40% de las llamadas fallaban la caché.

Un incidente en Lambda, resuelto de raíz

Un agotamiento del pool de base de datos en la Lambda de streaming, rastreado al ciclo de eventos que seguía vivo entre invocaciones, corregido y documentado en el contrato del motor.

Un diagnóstico adaptativo que escucha cómo hablas inglés y lee cómo programas.

donavis.com
Página de Donavis: un diagnóstico con puntaje de código, inglés y trabajo en equipo, y una fecha estimada para estar listo para entrevistas.

Fundador e ingeniero · IA, producto, infraestructura

Donavis prepara a hispanohablantes para ser ingenieros de IA contratables en inglés. Empieza con un diagnóstico adaptativo gratuito de código, inglés hablado y escrito, lógica y trabajo en equipo, y convierte el resultado en una ruta personal por 114 cursos.

cursos
114
cursos
lecciones interactivas
129
lecciones interactivas
áreas medidas: código, inglés, equipo
3
áreas medidas: código, inglés, equipo
  • Python 3.12
  • FastAPI
  • LangGraph
  • Whisper
  • Gemini
  • React 19
  • Pyodide
  • Supabase
  • EC2
  • CloudFront

Lo que construí

  • Una máquina de estados en LangGraph (siguiente pantalla → interrupt → aplicar respuesta → calificar) con checkpointer en Postgres: el diagnóstico sobrevive a recargas, cambios de dispositivo y reinicios.
  • Evaluación adaptativa con teoría de respuesta al ítem (2PL, estimación EAP), que se detiene cuando el error estándar es suficientemente bajo.
  • Análisis del habla con marcas de tiempo por palabra: ritmo, pausas, muletillas, errores de pronunciación ubicados en la palabra exacta y un nivel CEFR rápido que adapta la siguiente pregunta mientras el usuario aún responde.
  • Python en el navegador (Pyodide en un Web Worker) para las lecciones de código.

Lo difícil

Interrupts que no se repiten

La generación ocurre antes del checkpoint, así que reanudar un interrupt de LangGraph nunca llama al modelo dos veces.

El audio fuera del camino crítico

El análisis del habla corre en segundo plano mientras la prueba sigue, y la calificación lo espera con un tiempo máximo.

Un candidato simulado como prueba de punta a punta

El QA corre un diagnóstico completo con un candidato sintético cuyas respuestas habladas se sintetizan con acento hispano, y reporta el costo de modelos de la corrida.

Un agente de WhatsApp que reserva canchas, y código que decide qué está libre.

cancha.controla.club/demo
Demo interactiva de Controla Canchas: mapa isométrico de una sede deportiva con canchas, reservas en vivo y estado de pago.

Fundador e ingeniero · producto, diseño, IA

Reservas, pagos y operación diaria para sedes deportivas. Un agente de WhatsApp atiende a los clientes con la voz de la sede y reserva, mueve y cancela; la IA lee los comprobantes de transferencia y los cruza con lo que debe cada cliente; las reservas sin pagar se liberan solas. El dueño maneja el día desde un mapa isométrico de su sede o un panel clásico sobre los mismos datos.

commits
86
commits
reducer, dos interfaces
1
reducer, dos interfaces
países con festivos
14
países con festivos
  • Hono
  • OpenRouter
  • Tool calling
  • React 19
  • Astro
  • Drizzle
  • Supabase
  • PayPal
  • AWS Lambda

Lo que construí

  • El agente de reservas: conoce la sede y al cliente, pero las horas libres, apartados, cambios y cancelaciones los calculan herramientas. El modelo nunca decide la disponibilidad y pasa el chat al equipo cuando duda.
  • Flujo de comprobantes: el modelo lee la foto de la transferencia (monto, banco, referencia, destinatario, señales de edición), el código la cruza con la deuda y el plan de la sede decide si confirma solo o espera a una persona.
  • Aprender del historial: cuando una sede vincula su número, una pasada acotada por sus chats más activos escribe cómo atiende y un perfil de cada cliente habitual.
  • Una demo de todo el negocio en el navegador, con reloj simulado, y un mapa SVG editable de la sede.

Lo difícil

El modelo conversa, el código decide

Precios, disponibilidad y apartados salen de herramientas sobre la agenda real, así que un modelo muy seguro de sí nunca puede reservar dos veces la misma cancha.

Comprobantes con ojo para el fraude

La extracción devuelve una confianza y señales de imagen editada, recortada o reutilizada; lo dudoso va a una persona en vez de confirmar una reserva.

Un reducer, dos interfaces

El mapa interactivo y el panel estándar leen y escriben el mismo estado, así que ninguno puede desfasarse del otro.

Preparación gratuita y open source para certificaciones en la nube, en español.

aprobaya.academy
Página de AprobaYa: preparación gratuita y open source para exámenes de certificación en la nube.

Creador · open source

Una plataforma de estudio para certificaciones de AWS, Azure, GCP y Docker. Teoría organizada por dominio del examen, un simulador realista y explicaciones de por qué cada respuesta incorrecta lo es. Sin registro ni pagos: el progreso se guarda en el navegador y la app funciona sin conexión. Es open source, así que la comunidad puede aportar preguntas y traducciones.

preguntas de práctica
200+
preguntas de práctica
artículos de estudio
64+
artículos de estudio
modos de simulador
3
modos de simulador
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind 4
  • Framer Motion
  • Radix UI
  • Recharts

Lo que construí

  • Un simulador de examen con tres modos (estudio, examen real y por dominio), con temporizador y puntuación oficial.
  • Un módulo de teoría con más de 64 artículos organizados por los dominios del examen.
  • Seguimiento del progreso con estadísticas, rachas de estudio y logros, guardado en el navegador.
  • Una app que funciona sin conexión: una vez cargada, no necesita internet.

Lo difícil

Sin cuenta y sin backend

Todo lo que necesita quien estudia, incluido su progreso, vive en el navegador: no hay que registrarse ni nada que mantener encendido.

Hecha para recibir aportes

Las preguntas y el contenido son abiertos bajo CC BY-NC-SA 4.0, así que quienes preparan el mismo examen pueden corregirlos y ampliarlos.

Enfoque

Cómo construyo IA que no se cae

  1. 01

    Decidir en código lo que el modelo puede hacer

    Permisos, alcances y presupuestos viven en el servidor. El modelo propone, la política decide y una persona aprueba lo riesgoso.

  2. 02

    Medir antes de cambiar un prompt

    Un golden set vuelve a correr casos reales con cada cambio de prompt, modelo o configuración. Un ahorro se publica solo si la calidad se mantiene.

  3. 03

    Saber cuánto cuesta cada respuesta

    Cada llamada registra tokens, latencia y costo. La caché, los topes de razonamiento y los modelos de respaldo se ajustan con ese registro, no a ojo.

  4. 04

    Planear para cuando el modelo se equivoque

    Salidas tipadas, verificadores, reglas de respaldo y degradación controlada, para atrapar una mala respuesta antes de que la vea un cliente.

Trayectoria

Experiencia

  1. Jul 2026 — Hoy

    Medellín

    Product Operations Engineer · Wenia

    Ingeniería de operaciones de producto en la plataforma de activos digitales del Grupo Bancolombia.

    • Fintech
    • Operaciones de producto
  2. Mar 2026 — Jul 2026

    Remoto

    Tech Lead & AI Engineer · Oversai

    Flujos de agentes con LangGraph y LangChain: razonamiento en varios pasos, uso de herramientas y puntos de revisión humana. Integración de varios proveedores de LLM (Claude, OpenAI, Azure OpenAI) detrás de servicios en FastAPI, RAG híbrido y evaluación con RAGAS y Langfuse. Escalé la ingesta de datos e impulsé la adopción de herramientas de IA en los equipos.

    • LangGraph
    • RAG
    • Evals
    • Liderazgo
  3. Jul 2024 — Feb 2026

    Remoto

    Senior AI Engineer · NICE

    Ingeniería de IA para software de contact center: generación aumentada por recuperación (RAG) y funciones con redes neuronales en un producto empresarial global.

    • RAG
    • Redes neuronales
    • Empresarial
  4. Jul 2021 — Jul 2024

    Medellín

    Software Engineer → Senior Software Engineer · Playvox

    AutoScoring y AutoQA: análisis de sentimiento con IA y evaluación automática de las interacciones entre agentes y clientes, donde fui dueño de la interfaz de activación y de la integración con CustomerAI. Funciones de gestión de calidad para clientes empresariales, integraciones con terceros (Kustomer, Zendesk, Salesforce) y la migración de un monolito a microservicios en AWS.

    • Calificación con IA
    • Análisis de sentimiento
    • Serverless
    • Integraciones

Hablemos de agentes que funcionan.

Preguntas sobre algo que construí, una idea para comparar notas o un sistema que se porta mal en producción: escríbeme. En español o en inglés.

  • Me gusta hablar de
  • →Agentes y asistentes que actúan sobre datos reales
  • →RAG con citas, evals y control de costos
  • →Llevar un prototipo de IA a producción en AWS